diff options
36 files changed, 175 insertions, 103 deletions
diff --git a/Data/DefaultContent/Libraries/GameLab/Class.lua b/Data/DefaultContent/Libraries/GameLab/Class.lua index 0b424a6..005a7ce 100644 --- a/Data/DefaultContent/Libraries/GameLab/Class.lua +++ b/Data/DefaultContent/Libraries/GameLab/Class.lua @@ -1,4 +1,5 @@ --- GameLab内置class模块
+-- Declare class
+
-- 保留方法名:New, Ctor, Is
-- 保留字段:_type, _base
diff --git a/Data/DefaultContent/Libraries/GameLab/Debug/init.lua b/Data/DefaultContent/Libraries/GameLab/Debug/init.lua index 0b6bd7c..b2079a7 100644 --- a/Data/DefaultContent/Libraries/GameLab/Debug/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Debug/init.lua @@ -1,5 +1,4 @@ -local Debug = GameLab.Debug or {}
-GameLab.Debug = Debug
+local Debug = GameLab.Package("GameLab.Debug")
local c_log = GameLab.Debug.Log
local c_log_editor = GameLab.Debug.LogEditor
diff --git a/Data/DefaultContent/Libraries/GameLab/Delegate.lua b/Data/DefaultContent/Libraries/GameLab/Delegate.lua new file mode 100644 index 0000000..baa8e86 --- /dev/null +++ b/Data/DefaultContent/Libraries/GameLab/Delegate.lua @@ -0,0 +1,38 @@ +local delegate = {} + +delegate.__index = delegate + +delegate.Add = function(self, action) + table.insert(self.actions, action) + return self +end + +delegate.Remove = function(self, action) + table.remove(self.actions, action) + return self +end + +delegate.Invoke = function(self, ...) + for _, f in ipairs(self.actions) do + if f then + f(...) + end + end +end + +delegate.__call = function(self, ...) + self:Invoke(...) +end + +local mt = {} +mt.__call = function() + local d = {} + d.actions = {} + setmetatable(d, delegate) + return d +end +setmetatable(delegate, mt) + +GameLab.Delegate = delegate + +return delegate
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Animation/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Animation/init.lua index 032f42d..e774739 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Animation/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Animation/init.lua @@ -1,6 +1,3 @@ -GameLab.Animation = GameLab.Animation or {}
-local m = GameLab.Animation
+local animation = GameLab.Package("GameLab.Animation")
-
-
-return m
\ No newline at end of file +return animation
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GL/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GL/init.lua index f69d1f6..411d73e 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/GL/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GL/init.lua @@ -1,10 +1,9 @@ -local GL = GameLab.Engine.GL or {} -GameLab.Engine.GL = GL +local GL = GameLab.Package("GameLab.Engine.GL") local Matrix44 = GameLab.find("GameLab.Engine.Math.Matrix44") GL.LoadPixelMatrix = function(l, r, b, t) - local ortho = Matrix44.New() + local ortho = Matrix44() ortho:SetOrtho(l, r, b, t, 0.1, 10) GL.MatrixMode(GL.EMatrixMode.Projection) GL.LoadIdentity() diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua index 4c10780..6b324d3 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/IMGUI.lua @@ -15,7 +15,6 @@ GUI.GetControlID = function() return imgui.currentId
end
--- 每次调用OnGUI(无论是哪个事件)都要重新调用BeginOnGUI方法进行重置
GUI.BeginOnGUI = function()
imgui.currentId = 0
end
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua index d8bd558..b77a695 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/GUI/init.lua @@ -1,6 +1,4 @@ -local GUI = GameLab.Engine.GUI or {}
-GameLab.Engine.GUI = GUI
-
+local GUI = GameLab.Package("GameLab.Engine.GUI")
local import = GameLab.import(...)
import("imgui")
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Quaternion.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Quaternion.lua index 4d690e3..67761d7 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Quaternion.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Quaternion.lua @@ -1,4 +1,4 @@ -local Quaternion = {} +local Quaternion = GameLab.GlobalClass("GameLab.Engine.Math.Quaternion") Quaternion.Ctor = function(self) self.x = 0 diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua index 5284cf9..e7f29c6 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua @@ -22,12 +22,12 @@ Rect.Set = function(self, rect) end
Rect.GetPosition = function(self)
- local v = GameLab.Engine.Math.Vector2.New(self.x, self.y)
+ local v = GameLab.Engine.Math.Vector2(self.x, self.y)
return v
end
Rect.GetSize = function(self)
- local v = GameLab.Engine.Math.Vector2.New(self.width, self.height)
+ local v = GameLab.Engine.Math.Vector2(self.width, self.height)
return v
end
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua index eb4c14b..4706423 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua @@ -1,20 +1,24 @@ local Vector2 = GameLab.GlobalClass("GameLab.Engine.Math.Vector2")
-Vector2.Ctor = function(self, x, y)
+function Vector2:Ctor(x, y)
self.x = x or 0
self.y = y or 0
end
-Vector2.__add = function(self, other)
+function Vector2:__add(other)
self.x = self.x + other.x
self.y = self.y + other.y
return self
end
-Vector2.Add = function(self, other)
+function Vector2:Add(other)
self.x = self.x + other.x
self.y = self.y + other.y
return self
end
+function Vector2:__tostring()
+ return string.format("%0.3f,%0.3f", self.x, self.y)
+end
+
return Vector2
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua index 8203b1f..3fcf60b 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua @@ -1,6 +1,6 @@ local Vector3 = GameLab.GlobalClass("GameLab.Engine.Math.Vector3")
-Vector3.Ctor = function(self, x, y, z)
+function Vector3:Ctor(x, y, z)
self.x = x or 0
self.y = y or 0
self.z = z or 0
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua index ecfc9ff..c50fd69 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua @@ -1,41 +1,41 @@ local Vector4 = GameLab.GlobalClass("GameLab.Engine.Math.Vector4")
-Vector4.Ctor = function (self, x, y, z, w)
+function Vector4:Ctor(x, y, z, w)
self.x = x or 0
self.y = y or 0
self.z = z or 0
self.w = w or 0
end
-Vector4.Magnitude = function (self)
+function Vector4:Magnitude()
end
-Vector4.Normalized = function (self)
+function Vector4:Normalized()
end
-Vector4.SqrMagnitude = function (self)
+function Vector4:SqrMagnitude()
end
-Vector4.Distance = function (self, to)
+function Vector4:Distance(to)
end
-Vector4.Dot = function(self, v)
+function Vector4:Dot(v)
end
-Vector4.Lerp = function(self, v, t)
+function Vector4:Lerp(v, t)
end
-Vector4.Project = function (self, v)
+function Vector4:Project(v)
end
-Vector4.Scale = function(self, scale)
+function Vector4:Scale(scale)
end
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua index 68934e5..4180e5f 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua @@ -1,5 +1,4 @@ -local m = GameLab.Engine.Math or {}
-GameLab.Engine.Math = m
+local math = GameLab.Package("GameLab.Engine.Math")
local import = GameLab.import(...)
@@ -14,16 +13,16 @@ import("Rect") GameLab.Debug.Log("GameLab.Engine.Math loaded")
-m.Max = function(a, b)
+math.Max = function(a, b)
return a >= b and a or b
end
-m.Min = function(a, b)
+math.Min = function(a, b)
return a <= b and a or b
end
-m.Clamp = function(v, min, max)
- return m.Min(m.Max(v, min), max)
+math.Clamp = function(v, min, max)
+ return math.Min(math.Max(v, min), max)
end
-return m
\ No newline at end of file +return math
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua index 5ef75e5..6601fda 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua @@ -1,4 +1,4 @@ --- Image在texture基础上增加了一些元数据
+-- Image在texture基础上增加了一些数据
local Image = GameLab.GlobalClass("GameLab.Engine.Rendering.Image")
Image.Ctor = function(self, texture)
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/init.lua index 5469297..a5b277f 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/init.lua @@ -1,5 +1,4 @@ -local m = GameLab.Engine.Rendering or {} -GameLab.Engine.Rendering = m +local m = GameLab.Package("GameLab.Engine.Rendering") local import = GameLab.import(...) diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Resource/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Resource/init.lua index 4942131..2b7d0ef 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/Resource/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/Resource/init.lua @@ -1,5 +1,4 @@ -local m = GameLab.Engine.Resource or {} -GameLab.Engine.Resource = m +local m = GameLab.Package("GameLab.Engine.Resource") local import = GameLab.import(...) ---------------------------------------------------------------------------------- diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/init.lua index f6f46a4..fe1347c 100644 --- a/Data/DefaultContent/Libraries/GameLab/Engine/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Engine/init.lua @@ -1,5 +1,4 @@ -GameLab.Engine = GameLab.Engine or {} - +local engine = GameLab.Package("GameLab.Engine") local import = GameLab.import(...) -return GameLab.Engine
\ No newline at end of file +return engine
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Node.lua b/Data/DefaultContent/Libraries/GameLab/Entity.lua index c5d43e9..4da28f9 100644 --- a/Data/DefaultContent/Libraries/GameLab/Node.lua +++ b/Data/DefaultContent/Libraries/GameLab/Entity.lua @@ -1,7 +1,11 @@ --https://stackoverflow.com/questions/27897714/whats-the-distinction-between-an-entity-and-a-game-object -- 游戏中的实体 -local Node = GameLab.GlobalClass("GameLab.Node") +local Entity = GameLab.GlobalClass("GameLab.Entity") +Entity.Ctor = function(self) + self.m_Components = {} +end -return Node
\ No newline at end of file + +return Entity
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Enum.lua b/Data/DefaultContent/Libraries/GameLab/Enum.lua index 1db5e89..52c2beb 100644 --- a/Data/DefaultContent/Libraries/GameLab/Enum.lua +++ b/Data/DefaultContent/Libraries/GameLab/Enum.lua @@ -6,20 +6,21 @@ local unmodified = { __newindex = function(t, k, val) Debug.LogError("Enum is readonly. key=" .. k) end, + __index = function(t, k, val) Debug.LogError("Invalid key " .. k) end } local Enum = function(tb) - local enum = {} + local e = {} for i, v in ipairs(tb) do - enum[v] = i + e[v] = i end - setmetatable(enum, unmodified) - return enum + setmetatable(e, unmodified) + return e end GameLab.Enum = Enum -return Enum +return Enum
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Events/init.lua b/Data/DefaultContent/Libraries/GameLab/Events/init.lua index 2448676..f84dba6 100644 --- a/Data/DefaultContent/Libraries/GameLab/Events/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Events/init.lua @@ -1,9 +1,6 @@ -local Events = GameLab.Events or{}
-GameLab.Events = Events
-
+local Events = GameLab.Package("GameLab.Events")
local import = GameLab.import(...)
import("Event")
-
return Events
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua b/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua index bc3b451..b34a957 100644 --- a/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua +++ b/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua @@ -1,20 +1,20 @@ -local Enum = GameLab.Enum or require("GameLab.Enum") +local enum = GameLab.Enum or require("GameLab.Enum") --- 声明类的同时添加到G表 -local GlobalEnum = function(enumName, tb) - local enum = Enum(tb) +local genum = function(name, tb) + local e = enum(tb) - local shortName = string.match(enumName, "%.*(%w+)$") + local short = string.match(name, "%.*(%w+)$") + local pkgs = string.gmatch(name, "%.*(%w+)%.") local t = _G - for pkg in string.gmatch(enumName, "%.*(%w+)%.") do + for pkg in pkgs do t[pkg] = t[pkg] or {} t = t[pkg] end - t[shortName] = enum + t[short] = e - return enum + return e end -GameLab.GlobalEnum = GlobalEnum +GameLab.GlobalEnum = genum -return GlobalEnum
\ No newline at end of file +return genum
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/GlobalTable.lua b/Data/DefaultContent/Libraries/GameLab/GlobalTable.lua index 10e3811..4e6e1fb 100644 --- a/Data/DefaultContent/Libraries/GameLab/GlobalTable.lua +++ b/Data/DefaultContent/Libraries/GameLab/GlobalTable.lua @@ -1,13 +1,13 @@ -local GlobalTable = function(tbName)
+local GlobalTable = function(name)
local tb = {}
- local shortName = string.match(tbName, "%.*(%w+)$")
+ local short = string.match(name, "%.*(%w+)$")
local t = _G
- for pkg in string.gmatch(tbName, "%.*(%w+)%.") do
+ for pkg in string.gmatch(name, "%.*(%w+)%.") do
t[pkg] = t[pkg] or {}
t = t[pkg]
end
- t[shortName] = tb
+ t[short] = tb
return tb
end
diff --git a/Data/DefaultContent/Libraries/GameLab/Package.lua b/Data/DefaultContent/Libraries/GameLab/Package.lua new file mode 100644 index 0000000..5eba68b --- /dev/null +++ b/Data/DefaultContent/Libraries/GameLab/Package.lua @@ -0,0 +1,13 @@ +local package = function (name) + local t = _G + local pkgs = string.gmatch(name, "%.*(%w+)%.*") + for pkg in pkgs do + t[pkg] = t[pkg] or {} + t = t[pkg] + end + return t +end + +GameLab.Package = package + +return package
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/Utils/init.lua b/Data/DefaultContent/Libraries/GameLab/Utils/init.lua index 0ca5131..51f6938 100644 --- a/Data/DefaultContent/Libraries/GameLab/Utils/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/Utils/init.lua @@ -1,4 +1,3 @@ -local utils = GameLab.Utils or {}
-GameLab.Utils = utils
+local utils = GameLab.Package("GameLab.Utils")
return uitls
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/GameLab/init.lua b/Data/DefaultContent/Libraries/GameLab/init.lua index df0e19a..1c86c3d 100644 --- a/Data/DefaultContent/Libraries/GameLab/init.lua +++ b/Data/DefaultContent/Libraries/GameLab/init.lua @@ -22,13 +22,12 @@ GameLab.find = function(fullName) return require(fullName)
end
--- classes
-GameLab.Class = require("GameLab.Class")
+GameLab.Package = require("GameLab.Package")
+GameLab.Class = require("GameLab.Class")
GameLab.GlobalClass = require("GameLab.GlobalClass")
-
-GameLab.Enum = require("GameLab.Enum")
-GameLab.GlobalEnum = require("GameLab.GlobalEnum")
-
+GameLab.Enum = require("GameLab.Enum")
+GameLab.GlobalEnum = require("GameLab.GlobalEnum")
GameLab.GlobalTable = require("GameLab.GlobalTable")
+GameLab.Delegate = require("GameLab.Delegate")
return GameLab
\ No newline at end of file diff --git a/Data/DefaultContent/Libraries/strict.lua b/Data/DefaultContent/Libraries/strict.lua new file mode 100644 index 0000000..6f67fc0 --- /dev/null +++ b/Data/DefaultContent/Libraries/strict.lua @@ -0,0 +1,30 @@ +local mt = getmetatable(_G) +if mt == nil then + mt = {} + setmetatable(_G, mt) +end + +__STRICT = true +mt.__declared = {} + +mt.__newindex = function (t, n, v) + if __STRICT and not mt.__declared[n] then + local w = debug.getinfo(2, "S").what + if w ~= "main" and w ~= "C" then + error("assign to undeclared variable '"..n.."'", 2) + end + mt.__declared[n] = true + end + rawset(t, n, v) +end + +mt.__index = function (t, n) + if not mt.__declared[n] and debug.getinfo(2, "S").what ~= "C" then + error("variable '"..n.."' is not declared", 2) + end + return rawget(t, n) +end + +function global(...) + for _, v in ipairs{...} do mt.__declared[v] = true end +end
\ No newline at end of file diff --git a/Data/Libraries/GameLab/Editor/EditorWindow.lua b/Data/Libraries/GameLab/Editor/EditorWindow.lua index 94a7464..e9df099 100644 --- a/Data/Libraries/GameLab/Editor/EditorWindow.lua +++ b/Data/Libraries/GameLab/Editor/EditorWindow.lua @@ -1,15 +1,12 @@ -local EditorWindowManager = require("EditorGUI.EditorWindowManager") +local delegate = require("GameLab.Delegate") --- EditorWindow是应用级别的逻辑窗口 --- ContainerWindow --- |- SplitWindow --- |- GUIWindow --- |- EditorWindow local EditorWindow = GameLab.GlobalClass("GameLab.Editor.EditorWindow") EditorWindow.Ctor = function(self, title) self.title = title -- 编辑器名称 - self.guiWindow = nil -- 绑定的GUIWindow + self.guiWindow = nil -- 绑定的GUIWindow + + self.onUpdate = delegate() end EditorWindow.OnGUI = function(self) diff --git a/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua index 4b6f1bc..4852b16 100644 --- a/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/ContainerWindow.lua @@ -40,7 +40,7 @@ ContainerWindow.OnSizeChanged = function(self) return end local pos = self:GetSize() - local position = Rect.New() + local position = Rect() position.x = 0 position.y = 0 position.width = pos.x diff --git a/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua index bbd368e..6e15c9d 100644 --- a/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/GUIWindow.lua @@ -37,7 +37,7 @@ GUIWindow.Ctor = function(self) self.m_Native = NativeGUIWindow.New(self)
self.m_ContainerWindow = nil
self.m_SplitWindow = nil -- parent window
- self.m_Position = Rect.New(0,0,0,0) -- 在父ContainerWindow中的位置和大小
+ self.m_Position = Rect(0,0,0,0) -- 在父ContainerWindow中的位置和大小
self.m_EditorWindows = {} -- 编辑器脚本
i = i + 1
@@ -50,7 +50,7 @@ GUIWindow.SetContainerWindow = function(self, containerWindow) end
GUIWindow.AddEditorWindow = function(self)
-
+
end
GUIWindow.SetPosition = function(self, pos)
diff --git a/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua index 9a398c2..1419d34 100644 --- a/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua +++ b/Data/Libraries/GameLab/Editor/Window/SplitWindow.lua @@ -26,7 +26,9 @@ local SplitState = { } -- 抽象的窗口,用来处理布局 -local SplitWindow = GameLab.GlobalClass("GameLab.Editor.Window.SplitWindow", function(self, mode, splitter) +local SplitWindow = GameLab.GlobalClass("GameLab.Editor.Window.SplitWindow") + +SplitWindow.Ctor = function(self, mode, splitter) self.m_ControlID = nil self.m_ContainerWindow = nil self.m_SplitMode = mode @@ -40,7 +42,7 @@ local SplitWindow = GameLab.GlobalClass("GameLab.Editor.Window.SplitWindow", fun table.insert(self.m_Splitter, sp) end end -end) +end -- 布局,设置GUIWindow的大小 SplitWindow.DoSplit = function(self, event) @@ -51,7 +53,7 @@ SplitWindow.DoSplit = function(self, event) self.m_ControlID = GUI.GetControlID() if event.type == EEventType.MouseDown then - for i, sp in ipairs(self.m_Splitter) do + for _, sp in ipairs(self.m_Splitter) do local rect = Rect() if self.m_SplitMode == ESplitMode.Horizontal then local x = sp.value * self.m_Position.width + self.m_Position.x - sp.size / 2 diff --git a/Data/Libraries/GameLab/Editor/Window/init.lua b/Data/Libraries/GameLab/Editor/Window/init.lua index 430e8f9..6d526e9 100644 --- a/Data/Libraries/GameLab/Editor/Window/init.lua +++ b/Data/Libraries/GameLab/Editor/Window/init.lua @@ -1,6 +1,4 @@ -GameLab.Editor.Window = GameLab.Editor.Window or {}
-local m = GameLab.Editor.Window
-
+local m = GameLab.Package("GameLab.Editor.Window")
local import = GameLab.import(...)
import("ContainerWindow")
diff --git a/Data/Libraries/GameLab/Editor/init.lua b/Data/Libraries/GameLab/Editor/init.lua index c151aab..8ddf079 100644 --- a/Data/Libraries/GameLab/Editor/init.lua +++ b/Data/Libraries/GameLab/Editor/init.lua @@ -1,6 +1,4 @@ -local m = GameLab.Editor or {}
-GameLab.Editor = m
-
+local m = GameLab.Package("GameLab.Editor")
local import = GameLab.import(...)
m.AssetManager = import("AssetManager")
diff --git a/Data/Scripts/Editor/AssetBrowser.lua b/Data/Scripts/Editor/AssetBrowser.lua index 6d02579..866eb62 100644 --- a/Data/Scripts/Editor/AssetBrowser.lua +++ b/Data/Scripts/Editor/AssetBrowser.lua @@ -27,7 +27,7 @@ AssetBrowser.OnGUI = function(self) shader = Engine.Rendering.Shader.CreateFromFile("./Resources/Shaders/Editor-Text.glsl")
end
- local ortho = Matrix44.New()
+ local ortho = Matrix44()
ortho:SetOrtho(0, 400, 400, 0, 0.1, 10)
Debug.Log("AssetBrowser.OnGUI()")
diff --git a/Data/Scripts/EditorApplication.lua b/Data/Scripts/EditorApplication.lua index c8d3d99..5614e2a 100644 --- a/Data/Scripts/EditorApplication.lua +++ b/Data/Scripts/EditorApplication.lua @@ -10,6 +10,7 @@ local Rendering = GameLab.Engine.Rendering local Debug = GameLab.Debug local Window = GameLab.Editor.Window local GL = GameLab.Engine.GL +local delegate = GameLab.Delegate local app = GameLab.Editor.EditorApplication.New() @@ -34,9 +35,9 @@ EditorWindowManager.TestGUIWindow() -- guiWindow2:SetContainerWindow(mainWindow) -- guiWindow2:SetPosition({400,0, 400, 400}) -local v = GameLab.Engine.Math.Vector4.New(1,2,3,4) +local v = GameLab.Engine.Math.Vector4(1,2,3,4) -local c = Engine.Rendering.Color.New(1,1,1,1) +local c = Engine.Rendering.Color(1,1,1,1) GL.ClearColor({1,1,1,1}) GL.Clear(GL.EBufferType.ColorBuffer) @@ -62,6 +63,8 @@ local request = Engine.Resource.LoadImageDataAsync("./Resources/Images/brickwall local font = Engine.GUI.Font.New("./Resources/Font/msyh.ttc", {512, 512}, 5, 5) _G["default_font"] = font +local v = GameLab.Engine.Math.Vector2(10.002, 2.334) + while true do app:OnStep() diff --git a/Data/Scripts/EditorGUI/EditorWindowManager.lua b/Data/Scripts/EditorGUI/EditorWindowManager.lua index 56083df..c28379a 100644 --- a/Data/Scripts/EditorGUI/EditorWindowManager.lua +++ b/Data/Scripts/EditorGUI/EditorWindowManager.lua @@ -65,7 +65,7 @@ EditorWindowManager.TestGUIWindow = function() guiWindow3.m_SplitWindow = splitWnd2
local mainWindowSize = EditorWindowManager.mainWindow:GetSize()
- local position = Rect.New()
+ local position = Rect()
position.x = 0
position.y = 0
position.width = mainWindowSize.x
diff --git a/Data/boot.lua b/Data/boot.lua index f6eeea9..091aff0 100644 --- a/Data/boot.lua +++ b/Data/boot.lua @@ -36,7 +36,7 @@ require "GameLab.Editor" require "GameLab.Editor.Window"
-- debugging
-require("LuaPanda").start("127.0.0.1",8818)
+--require("LuaPanda").start("127.0.0.1",8818)
-- launch editor
dofile("./Scripts/EditorApplication.lua")
|