summaryrefslogtreecommitdiff
path: root/Data/DefaultContent/Libraries
diff options
context:
space:
mode:
Diffstat (limited to 'Data/DefaultContent/Libraries')
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix33.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua9
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua13
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color32.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Material.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Engine/Resource/ImageDataRequest.lua2
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Entity.lua6
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Enum.lua22
-rw-r--r--Data/DefaultContent/Libraries/GameLab/GlobalClass.lua20
-rw-r--r--Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua20
-rw-r--r--Data/DefaultContent/Libraries/GameLab/InternalClass.lua12
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Node.lua7
-rw-r--r--Data/DefaultContent/Libraries/GameLab/Object.lua5
-rw-r--r--Data/DefaultContent/Libraries/GameLab/init.lua15
20 files changed, 94 insertions, 55 deletions
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix33.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix33.lua
index 8cb7e72..ec263d0 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix33.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix33.lua
@@ -1,4 +1,4 @@
-local Matrix33 = GameLab.Class("GameLab.Engine.Math.Matrix33")
+local Matrix33 = GameLab.GlobalClass("GameLab.Engine.Math.Matrix33")
Matrix33.Ctor = function(self)
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua
index 2347207..9386daf 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua
@@ -1,4 +1,4 @@
-local Matrix44 = GameLab.Class("GameLab.Engine.Math.Matrix44")
+local Matrix44 = GameLab.GlobalClass("GameLab.Engine.Math.Matrix44")
Matrix44.Ctor = function(self)
for r = 0, 3 do
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua
index 2aeb0f7..f603ed5 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Rect.lua
@@ -1,4 +1,4 @@
-local Rect = GameLab.Class("GameLab.Engine.Math.Rect")
+local Rect = GameLab.GlobalClass("GameLab.Engine.Math.Rect")
Rect.Ctor = function(self, x, y, width, height)
self.x = x or 0
@@ -7,4 +7,11 @@ Rect.Ctor = function(self, x, y, width, height)
self.height = height or 0
end
+Rect.Set = function(self, rect)
+ self.x = rect.x or rect[1]
+ self.y = rect.y or rect[2]
+ self.z = rect.z or rect[3]
+ self.w = rect.w or rect[4]
+end
+
return Rect \ No newline at end of file
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua
index 822537f..9a0e0a3 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua
@@ -1,4 +1,4 @@
-local Vector2 = GameLab.Class("GameLab.Engine.Math.Vector2")
+local Vector2 = GameLab.GlobalClass("GameLab.Engine.Math.Vector2")
Vector2.Ctor = function(self, x, y)
self.x = x or 0
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua
index e383bf0..8203b1f 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua
@@ -1,4 +1,4 @@
-local Vector3 = GameLab.Class("GameLab.Engine.Math.Vector3")
+local Vector3 = GameLab.GlobalClass("GameLab.Engine.Math.Vector3")
Vector3.Ctor = function(self, x, y, z)
self.x = x or 0
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua
index e232c93..3655184 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua
@@ -1,4 +1,4 @@
-local Vector4 = GameLab.Class("GameLab.Engine.Math.Vector4")
+local Vector4 = GameLab.GlobalClass("GameLab.Engine.Math.Vector4")
Vector4.Ctor = function (self, x, y, z, w)
self.x = x or 0
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua
index eb75db7..5131b07 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Math/init.lua
@@ -4,12 +4,13 @@ GameLab.Engine.Math = m
local import = GameLab.import(...)
import("Math")
-m.Vector2 = import("Vector2")
-m.Vector3 = import("Vector3")
-m.Vector4 = import("Vector4")
-m.Matrix44 = import("Matrix44")
-m.Matrix33 = import("Matrix33")
-m.Quaternion = import("Quaternion")
+import("Vector2")
+import("Vector3")
+import("Vector4")
+import("Matrix44")
+import("Matrix33")
+import("Quaternion")
+import("Rect")
GameLab.Debug.Log("GameLab.Engine.Math loaded")
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color.lua
index bf908a4..2785bdf 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color.lua
@@ -1,4 +1,4 @@
-local Color = GameLab.Class("GameLab.Engine.Rendering.Color")
+local Color = GameLab.GlobalClass("GameLab.Engine.Rendering.Color")
Color.Ctor = function(self, r, g, b, a)
self.r = r
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color32.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color32.lua
index d108dfb..48902b6 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color32.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Color32.lua
@@ -1,4 +1,4 @@
-local Color32 = GameLab.Class("GameLab.Engine.Rendering.Color32")
+local Color32 = GameLab.GlobalClass("GameLab.Engine.Rendering.Color32")
Color32.Ctor = function(self, r, g, b, a)
self.r = r
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua
index b209425..5ef75e5 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Image.lua
@@ -1,5 +1,5 @@
-- Image在texture基础上增加了一些元数据
-local Image = GameLab.Class("GameLab.Engine.Rendering.Image")
+local Image = GameLab.GlobalClass("GameLab.Engine.Rendering.Image")
Image.Ctor = function(self, texture)
self.texture = texture -- "atlas"
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Material.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Material.lua
index 872d7e1..7993f33 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Material.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Rendering/Material.lua
@@ -1,4 +1,4 @@
-local Material = GameLab.Class("GameLab.Engine.Rendering.Material")
+local Material = GameLab.GlobalClass("GameLab.Engine.Rendering.Material")
Material.Ctor = function(self)
self.shader = nil -- 绑定的shader
diff --git a/Data/DefaultContent/Libraries/GameLab/Engine/Resource/ImageDataRequest.lua b/Data/DefaultContent/Libraries/GameLab/Engine/Resource/ImageDataRequest.lua
index f7d7bbe..c35d35a 100644
--- a/Data/DefaultContent/Libraries/GameLab/Engine/Resource/ImageDataRequest.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Engine/Resource/ImageDataRequest.lua
@@ -1,4 +1,4 @@
-local ImageDataRequest = GameLab.Class("GameLab.Engine.Resource.ImageDataRequest")
+local ImageDataRequest = GameLab.GlobalClass("GameLab.Engine.Resource.ImageDataRequest")
ImageDataRequest.Ctor = function(self)
self.isDone = false
diff --git a/Data/DefaultContent/Libraries/GameLab/Entity.lua b/Data/DefaultContent/Libraries/GameLab/Entity.lua
deleted file mode 100644
index 27769f3..0000000
--- a/Data/DefaultContent/Libraries/GameLab/Entity.lua
+++ /dev/null
@@ -1,6 +0,0 @@
--- 游戏中的实体
-local Entity = GameLab.Class("GameLab.Entity")
-
-
-
-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 d1a1ae0..1db5e89 100644
--- a/Data/DefaultContent/Libraries/GameLab/Enum.lua
+++ b/Data/DefaultContent/Libraries/GameLab/Enum.lua
@@ -1,9 +1,25 @@
-- Declare enum
+local Debug = GameLab.Debug
-local Enum = function()
+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
+}
-end
+local Enum = function(tb)
+ local enum = {}
+ for i, v in ipairs(tb) do
+ enum[v] = i
+ end
+ setmetatable(enum, unmodified)
+ return enum
+end
+GameLab.Enum = Enum
-GameLab.Enum = Enum \ No newline at end of file
+return Enum
diff --git a/Data/DefaultContent/Libraries/GameLab/GlobalClass.lua b/Data/DefaultContent/Libraries/GameLab/GlobalClass.lua
new file mode 100644
index 0000000..dcb5fba
--- /dev/null
+++ b/Data/DefaultContent/Libraries/GameLab/GlobalClass.lua
@@ -0,0 +1,20 @@
+local Class = GameLab.Class or require("GameLab.Class")
+
+-- 声明类的同时添加到G表
+local GlobalClass = function(className)
+ local cls = Class(className)
+
+ local shortName = string.match(className, "%.*(%w+)$")
+ local t = _G
+ for pkg in string.gmatch(className, "%.*(%w+)%.") do
+ t[pkg] = t[pkg] or {}
+ t = t[pkg]
+ end
+ t[shortName] = cls
+
+ return cls
+end
+
+GameLab.GlobalClass = GlobalClass
+
+return GlobalClass \ No newline at end of file
diff --git a/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua b/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua
new file mode 100644
index 0000000..4a160fa
--- /dev/null
+++ b/Data/DefaultContent/Libraries/GameLab/GlobalEnum.lua
@@ -0,0 +1,20 @@
+local Enum = GameLab.Enum or require("GameLab.Enum")
+
+-- 声明类的同时添加到G表
+local GlobalEnum = function(enumName)
+ local enum = Enum(enumName)
+
+ local shortName = string.match(enumName, "%.*(%w+)$")
+ local t = _G
+ for pkg in string.gmatch(enumName, "%.*(%w+)%.") do
+ t[pkg] = t[pkg] or {}
+ t = t[pkg]
+ end
+ t[shortName] = enum
+
+ return enum
+end
+
+GameLab.GlobalEnum = GlobalEnum
+
+return GlobalEnum \ No newline at end of file
diff --git a/Data/DefaultContent/Libraries/GameLab/InternalClass.lua b/Data/DefaultContent/Libraries/GameLab/InternalClass.lua
deleted file mode 100644
index 36ad568..0000000
--- a/Data/DefaultContent/Libraries/GameLab/InternalClass.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local Class = GameLab.Class or require("GameLab.Class")
-
--- 声明类的同时添加到G表
-local InternalClass = function(className)
- local cls = Class(className)
- _G[className] = className
- return cls
-end
-
-GameLab.InternalClass = InternalClass
-
-return InternalClass \ No newline at end of file
diff --git a/Data/DefaultContent/Libraries/GameLab/Node.lua b/Data/DefaultContent/Libraries/GameLab/Node.lua
new file mode 100644
index 0000000..c5d43e9
--- /dev/null
+++ b/Data/DefaultContent/Libraries/GameLab/Node.lua
@@ -0,0 +1,7 @@
+--https://stackoverflow.com/questions/27897714/whats-the-distinction-between-an-entity-and-a-game-object
+-- 游戏中的实体
+local Node = GameLab.GlobalClass("GameLab.Node")
+
+
+
+return Node \ No newline at end of file
diff --git a/Data/DefaultContent/Libraries/GameLab/Object.lua b/Data/DefaultContent/Libraries/GameLab/Object.lua
deleted file mode 100644
index 94d4154..0000000
--- a/Data/DefaultContent/Libraries/GameLab/Object.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-local Object = GameLab.Class("GameLab.Object")
-
-
-
-return Object \ No newline at end of file
diff --git a/Data/DefaultContent/Libraries/GameLab/init.lua b/Data/DefaultContent/Libraries/GameLab/init.lua
index c87ace3..8f61b05 100644
--- a/Data/DefaultContent/Libraries/GameLab/init.lua
+++ b/Data/DefaultContent/Libraries/GameLab/init.lua
@@ -12,17 +12,6 @@ GameLab.import = function(packageName)
return _import
end
--- 用于相对路径包含
--- GameLab.require = function(className)
--- local packageName = (type(className) == "string") and string.match(className, "^(.+)%.%w+$") or ""
--- local _require = function(path)
--- local name = packageName .. "." .. path
--- local m = require(name)
--- return m
--- end
--- return _require
--- end
-
GameLab.find = function(fullName)
if _G[fullName] ~= nil then
return _G[fullName]
@@ -35,7 +24,9 @@ end
-- classes
GameLab.Class = require("GameLab.Class")
+GameLab.GlobalClass = require("GameLab.GlobalClass")
-GameLab.InternalClass = require("GameLab.InternalClass")
+GameLab.Enum = require("GameLab.Enum")
+GameLab.GlobalEnum = require("GameLab.GlobalEnum")
return GameLab \ No newline at end of file