summaryrefslogtreecommitdiff
path: root/Resources
diff options
context:
space:
mode:
Diffstat (limited to 'Resources')
-rw-r--r--Resources/DefaultContent/Libraries/GameLab/Class.lua33
-rw-r--r--Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua5
-rw-r--r--Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua5
-rw-r--r--Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua45
-rw-r--r--Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua5
-rw-r--r--Resources/DefaultContent/Libraries/GameLab/init.lua8
-rw-r--r--Resources/Libraries/GameLab/Editor/GUI/EditorWindow.lua10
-rw-r--r--Resources/Libraries/GameLab/Editor/GUI/init.lua10
-rw-r--r--Resources/Libraries/GameLab/Editor/init.lua2
-rw-r--r--Resources/Scripts/EditorApplication.lua8
-rw-r--r--Resources/boot.lua13
11 files changed, 133 insertions, 11 deletions
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