From 998a13b08c43b0813d1d4d38692ea7f8bd31c936 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 21 Oct 2021 16:11:45 +0800 Subject: *misc --- .../DefaultContent/Libraries/GameLab/Class.lua | 33 ++++++++++++++-- .../Libraries/GameLab/Engine/Math/Vector2.lua | 5 +++ .../Libraries/GameLab/Engine/Math/Vector3.lua | 5 +++ .../Libraries/GameLab/Engine/Math/Vector4.lua | 45 ++++++++++++++++++++++ .../Libraries/GameLab/Engine/Math/init.lua | 5 ++- .../DefaultContent/Libraries/GameLab/init.lua | 8 ++-- .../Libraries/GameLab/Editor/GUI/EditorWindow.lua | 10 +++++ Resources/Libraries/GameLab/Editor/GUI/init.lua | 10 +++++ Resources/Libraries/GameLab/Editor/init.lua | 2 + Resources/Scripts/EditorApplication.lua | 8 ++++ Resources/boot.lua | 13 ++++++- 11 files changed, 133 insertions(+), 11 deletions(-) create mode 100644 Resources/Libraries/GameLab/Editor/GUI/EditorWindow.lua create mode 100644 Resources/Libraries/GameLab/Editor/GUI/init.lua (limited to 'Resources') diff --git a/Resources/DefaultContent/Libraries/GameLab/Class.lua b/Resources/DefaultContent/Libraries/GameLab/Class.lua index 346d807..8f74d10 100644 --- a/Resources/DefaultContent/Libraries/GameLab/Class.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Class.lua @@ -1,5 +1,32 @@ --- GameLab Class -local Class = {} -GameLab.Class = Class +local _class = function (className, pkg) + local class = {} + class._type = { -- 类型元数据,GameLab的类型都会包含这些 + mode = "lua", + name = className, + package = pkg, + } + class.__index = class + class.New = function(...) + local instance = {} + setmetatable(instance, class) + instance:Ctor(...) + return instance + end + return class +end +local Class = function(className, pkg) + local cls = _class(className, pkg) + cls.Extend = function(childName, childPkg) + local child = _class(childName, childPkg) + if cls then + setmetatable(child, cls) + child._base = cls + end + return child + end + return cls +end +GameLab.Class = Class +return Class \ No newline at end of file diff --git a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua index e69de29..dc961b2 100644 --- a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua @@ -0,0 +1,5 @@ +local Vector2 = GameLab.Class("Vector2", "GameLab.Engine.Math") + + + +return Vector2 \ No newline at end of file diff --git a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua index e69de29..f355a65 100644 --- a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua @@ -0,0 +1,5 @@ +local Vector3 = GameLab.Class("Vector3", "GameLab.Engine.Math") + + + +return Vector3 \ No newline at end of file diff --git a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua index e69de29..84a114f 100644 --- a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua @@ -0,0 +1,45 @@ +local Vector4 = GameLab.Class("Vector4", "GameLab.Engine.Math") + +Vector4.Ctor = function (self, 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) + +end + +Vector4.Normalized = function (self) + +end + +Vector4.SqrMagnitude = function (self) + +end + +Vector4.Distance = function (self, to) + +end + +Vector4.Dot = function(self, v) + +end + +Vector4.Lerp = function(self, v, t) + +end + +Vector4.Project = function (self, v) + +end + +Vector4.Scale = function(self, scale) + +end + +Vector4.one = Vector4.New(1,1,1,1) +Vector4.zero = Vector4.New(0,0,0,0) + +return Vector4 \ No newline at end of file diff --git a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua index ade8fca..0cf945e 100644 --- a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua @@ -1,12 +1,13 @@ -GameLab.Math = GameLab.Math or {} +GameLab.Engine.Math = GameLab.Engine.Math or {} local Debug = GameLab.Debug -local m = GameLab.Math +local m = GameLab.Engine.Math local require = GameLab.require(...) m.Vector2 = require("Vector2") m.Vector3 = require("Vector3") +m.Vector4 = require("Vector4") m.Matrix4x4 = require("Matrix4x4") m.Matrix3x3 = require("Matrix3x3") m.Quaternion = require("Quaternion") diff --git a/Resources/DefaultContent/Libraries/GameLab/init.lua b/Resources/DefaultContent/Libraries/GameLab/init.lua index abc6e9a..9245165 100644 --- a/Resources/DefaultContent/Libraries/GameLab/init.lua +++ b/Resources/DefaultContent/Libraries/GameLab/init.lua @@ -1,16 +1,16 @@ GameLab = GameLab or {} +-- methods GameLab.require = function(packageName) local _require = function(path) - return packageName .. "." .. path + return require(packageName .. "." .. path) end return _require end -GameLab.Debug.Log("GameLab") - local require = GameLab.require(...) ---GameLab.Class = require("Class") +-- classes +GameLab.Class = require("Class") return GameLab \ No newline at end of file diff --git a/Resources/Libraries/GameLab/Editor/GUI/EditorWindow.lua b/Resources/Libraries/GameLab/Editor/GUI/EditorWindow.lua new file mode 100644 index 0000000..99d242d --- /dev/null +++ b/Resources/Libraries/GameLab/Editor/GUI/EditorWindow.lua @@ -0,0 +1,10 @@ +local EditorWindow = GameLab.Class("EditorWindow", "GameLab.Editor.GUI") + +EditorWindow.Ctor = function(self, ...) +end + +EditorWindow.SetGUIWindow = function(self) + print("SetGUIwidow") +end + +return EditorWindow \ No newline at end of file diff --git a/Resources/Libraries/GameLab/Editor/GUI/init.lua b/Resources/Libraries/GameLab/Editor/GUI/init.lua new file mode 100644 index 0000000..a9c6ac9 --- /dev/null +++ b/Resources/Libraries/GameLab/Editor/GUI/init.lua @@ -0,0 +1,10 @@ +GameLab.Editor.GUI = GameLab.Editor.GUI or {} +local m = GameLab.Editor.GUI + +local require = GameLab.require(...) + +m.EditorWindow = require("EditorWindow") + + + +return m \ No newline at end of file diff --git a/Resources/Libraries/GameLab/Editor/init.lua b/Resources/Libraries/GameLab/Editor/init.lua index e69de29..99a8091 100644 --- a/Resources/Libraries/GameLab/Editor/init.lua +++ b/Resources/Libraries/GameLab/Editor/init.lua @@ -0,0 +1,2 @@ + + diff --git a/Resources/Scripts/EditorApplication.lua b/Resources/Scripts/EditorApplication.lua index 89efb0d..cb4bcb0 100644 --- a/Resources/Scripts/EditorApplication.lua +++ b/Resources/Scripts/EditorApplication.lua @@ -25,6 +25,14 @@ Debug.Log(GameLab.Path.GetRootDirectory()) Debug.Log(inspect{foo=1,2,3,4}) +local wnd = GUI.EditorWindow.New() +Debug.Log(inspect(mainWindow._type)) + +local v = GameLab.Engine.Math.Vector4.New(1,2,3,4) +Debug.Log(inspect(v)) + +local V4 = GameLab.Engine.Math.Vector4.Extend("V4", "GameLab.Engine.Math") + while true do app:PullMessage() diff --git a/Resources/boot.lua b/Resources/boot.lua index 2c8ef45..9fdf4a9 100644 --- a/Resources/boot.lua +++ b/Resources/boot.lua @@ -8,13 +8,22 @@ local engineCLibs = "./DefaultContent/Libraries/?.dll" local editorCLibs = "./Libraries/?.dll" package.cpath=package.cpath .. ";" .. engineCLibs .. ";" .. editorCLibs +-- debugging +require("LuaPanda").start("127.0.0.1",8818) + -- redirect print = GameLab.Debug.Log --- setup gamelab modules +-- "macros" +GAMELAB_PROFILE = true +GAMELAB_DEBUG = true + +-- load gamelab modules require "GameLab" require "GameLab.Engine" require "GameLab.Engine.Math" require "GameLab.Editor" +require "GameLab.Editor.GUI" -require("LuaPanda").start("127.0.0.1",8818) \ No newline at end of file +-- launch editor +dofile("./Scripts/EditorApplication.lua") \ No newline at end of file -- cgit v1.1-26-g67d0