diff options
author | chai <chaifix@163.com> | 2021-10-19 19:52:29 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-10-19 19:52:29 +0800 |
commit | 922495098aea1ca569369da664dddb9780d07768 (patch) | |
tree | df775754873304358369fba6c0f8f2dc36177b48 | |
parent | 52049bfada8d51c4320a203e487af971447b561e (diff) |
*misc
37 files changed, 106 insertions, 22 deletions
diff --git a/Documents/Lua.xlsx b/Documents/Lua.xlsx Binary files differnew file mode 100644 index 0000000..33d6bec --- /dev/null +++ b/Documents/Lua.xlsx diff --git a/Editor/EditorMain.cpp b/Editor/EditorMain.cpp index 88f7513..182a2c4 100644 --- a/Editor/EditorMain.cpp +++ b/Editor/EditorMain.cpp @@ -31,11 +31,8 @@ void InitLuaState() std::string workingDir = Win::GetCurrentWorkingDirectory();
Win::SetDllSearchDirectory(workingDir);
- // set search path
- state.DoString(R"(package.path=package.path .. ";" .. ".\\Libraries\\?.lua")");
- state.DoString(R"(package.cpath=package.cpath .. ";" .. ".\\Libraries\\?.dll")");
-
- state.DoFile(".\\Scripts\\EditorApplication.lua", ErrorHandle);
+ state.DoFile("./boot.lua", ErrorHandle);
+ state.DoFile("./Scripts/EditorApplication.lua", ErrorHandle);
}
#ifdef GAMELAB_DEBUG
diff --git a/Editor/Scripting/Editor/EditorApplication.bind.cpp b/Editor/Scripting/Editor/EditorApplication.bind.cpp index 33d73f7..184870a 100644 --- a/Editor/Scripting/Editor/EditorApplication.bind.cpp +++ b/Editor/Scripting/Editor/EditorApplication.bind.cpp @@ -3,7 +3,7 @@ LUA_BIND_REGISTRY(EditorApplication) { LUA_BIND_REGISTER_METHODS(state, - {"New", EditorApplication::_New}, + { "New", _New}, { "SetMainWindow", _SetMainWindow }, { "PullMessage", _PullMessage } ); diff --git a/Editor/Scripting/EditorScripting.cpp b/Editor/Scripting/EditorScripting.cpp index bb53848..26509e0 100644 --- a/Editor/Scripting/EditorScripting.cpp +++ b/Editor/Scripting/EditorScripting.cpp @@ -3,6 +3,7 @@ extern int luaopen_GameLab_Debug(lua_State* L); // GameLab.Debug extern int luaopen_GameLab_IO(lua_State* L); // GameLab.IO +extern int luaopen_GameLab_Path(lua_State* L); // GameLab.Path extern int luaopen_GameLab_Engine(lua_State* L); // GameLab.Engine extern int luaopen_GameLab_Engine_Rendering(lua_State* L); // GameLab.Engine.Rendering @@ -31,7 +32,8 @@ bool SetupGameLabEditorScripting(lua_State* L) { log_info("Scripting", "SetupGameLabEditorScripting()"); - openlib(luaopen_GameLab_Debug); + openlib(luaopen_GameLab_Debug); + openlib(luaopen_GameLab_Path); openlib(luaopen_GameLab_Editor); openlib(luaopen_GameLab_Editor_GUI); diff --git a/Projects/VisualStudio/Editor/Editor.vcxproj b/Projects/VisualStudio/Editor/Editor.vcxproj index ab1a930..8d8afbe 100644 --- a/Projects/VisualStudio/Editor/Editor.vcxproj +++ b/Projects/VisualStudio/Editor/Editor.vcxproj @@ -87,7 +87,7 @@ <Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
- <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;GAMELAB_DEBUG;GAMELAB_EDITOR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>GAMELAB_WIN;_CRT_SECURE_NO_WARNINGS;GAMELAB_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\;$(SolutionDir)..\..\ThirdParty\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
@@ -134,6 +134,7 @@ <SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>GAMELAB_WIN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -156,7 +157,6 @@ <ClCompile Include="..\..\..\Editor\GUI\WindowUtil.cpp" />
<ClCompile Include="..\..\..\Editor\GUI\WinUtils.cpp" />
<ClCompile Include="..\..\..\Editor\IMGUI\GUIButton.cpp" />
- <ClCompile Include="..\..\..\Editor\Path.cpp" />
<ClCompile Include="..\..\..\Editor\Resource\ResourceManager.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\ContainerWindow.bind.cpp" />
<ClCompile Include="..\..\..\Editor\Scripting\EditorGUI\EditorGUI.bind.cpp" />
@@ -170,6 +170,7 @@ <ClCompile Include="..\..\..\Editor\Utils\HelperFuncs.cpp" />
<ClCompile Include="..\..\..\Editor\Win\Win.cpp" />
<ClCompile Include="..\..\..\Runtime\Debug\Log.cpp" />
+ <ClCompile Include="..\..\..\Runtime\FileSystem\Path.cpp" />
<ClCompile Include="..\..\..\Runtime\Graphics\OpenGL.cpp" />
<ClCompile Include="..\..\..\Runtime\Lua\LuaBind\LuaBindCFunctions.cpp" />
<ClCompile Include="..\..\..\Runtime\Lua\LuaBind\LuaBindClass.cpp" />
@@ -184,7 +185,9 @@ <ClCompile Include="..\..\..\Runtime\Math\Vector2.cpp" />
<ClCompile Include="..\..\..\Runtime\Math\Vector3.cpp" />
<ClCompile Include="..\..\..\Runtime\Scripting\Debug\Debug.bind.cpp" />
+ <ClCompile Include="..\..\..\Runtime\Scripting\FileSystem\FileSystem.bind.cpp" />
<ClCompile Include="..\..\..\Runtime\Scripting\GL\GL.bind.cpp" />
+ <ClCompile Include="..\..\..\Runtime\Scripting\Path.bind.cpp" />
<ClCompile Include="..\..\..\Runtime\Utilities\Base64.cpp" />
<ClCompile Include="..\..\..\Runtime\Utilities\Utf8.cpp" />
</ItemGroup>
@@ -197,13 +200,13 @@ <ClInclude Include="..\..\..\Editor\GUI\MenuManager.h" />
<ClInclude Include="..\..\..\Editor\GUI\Rect.h" />
<ClInclude Include="..\..\..\Editor\GUI\WinUtils.h" />
- <ClInclude Include="..\..\..\Editor\Path.h" />
<ClInclude Include="..\..\..\Editor\Resource\ResourceManager.h" />
<ClInclude Include="..\..\..\Editor\Scripting\EditorScripting.h" />
<ClInclude Include="..\..\..\Editor\Shaders\BuiltinShaders.h" />
<ClInclude Include="..\..\..\Editor\Utils\HelperFuncs.h" />
<ClInclude Include="..\..\..\Editor\Win\Win.h" />
<ClInclude Include="..\..\..\Runtime\Debug\Log.h" />
+ <ClInclude Include="..\..\..\Runtime\FileSystem\Path.h" />
<ClInclude Include="..\..\..\Runtime\Graphics\OpenGL.h" />
<ClInclude Include="..\..\..\Runtime\Lua\LuaBind\LuaBind.h" />
<ClInclude Include="..\..\..\Runtime\Lua\LuaBind\LuaBindCFunctions.h" />
diff --git a/Projects/VisualStudio/Editor/Editor.vcxproj.filters b/Projects/VisualStudio/Editor/Editor.vcxproj.filters index fd17b7d..8ee4621 100644 --- a/Projects/VisualStudio/Editor/Editor.vcxproj.filters +++ b/Projects/VisualStudio/Editor/Editor.vcxproj.filters @@ -79,6 +79,12 @@ <Filter Include="Editor\Serialize">
<UniqueIdentifier>{34aaae68-c302-4827-917f-671b0279e8c6}</UniqueIdentifier>
</Filter>
+ <Filter Include="Runtime\FileSystem">
+ <UniqueIdentifier>{78c0524a-9039-474a-9a2e-fa243e84d60e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Runtime\Scripting\FileSystem">
+ <UniqueIdentifier>{350338b7-1176-4edc-9cc7-553a02d69895}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Editor\GUI\Dock.cpp">
@@ -213,8 +219,14 @@ <ClCompile Include="..\..\..\Editor\Win\Win.cpp">
<Filter>Editor\Win</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\Editor\Path.cpp">
- <Filter>Editor</Filter>
+ <ClCompile Include="..\..\..\Runtime\FileSystem\Path.cpp">
+ <Filter>Runtime\FileSystem</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Runtime\Scripting\FileSystem\FileSystem.bind.cpp">
+ <Filter>Runtime\Scripting\FileSystem</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Runtime\Scripting\Path.bind.cpp">
+ <Filter>Runtime\Scripting</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
@@ -350,8 +362,8 @@ <ClInclude Include="..\..\..\Editor\Win\Win.h">
<Filter>Editor\Win</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\Editor\Path.h">
- <Filter>Editor</Filter>
+ <ClInclude Include="..\..\..\Runtime\FileSystem\Path.h">
+ <Filter>Runtime\FileSystem</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
diff --git a/Resources/DefaultContent/Libraries/Framework/Class.lua b/Resources/DefaultContent/Libraries/Framework/Class.lua deleted file mode 100644 index 78c577c..0000000 --- a/Resources/DefaultContent/Libraries/Framework/Class.lua +++ /dev/null @@ -1,3 +0,0 @@ -function Class() - -end
\ No newline at end of file diff --git a/Resources/DefaultContent/Libraries/Framework/Math/Quaternion.lua b/Resources/DefaultContent/Libraries/Framework/Math/Quaternion.lua deleted file mode 100644 index e69de29..0000000 --- a/Resources/DefaultContent/Libraries/Framework/Math/Quaternion.lua +++ /dev/null diff --git a/Resources/DefaultContent/Libraries/Framework/init.lua b/Resources/DefaultContent/Libraries/Framework/init.lua deleted file mode 100644 index 8b96176..0000000 --- a/Resources/DefaultContent/Libraries/Framework/init.lua +++ /dev/null @@ -1,2 +0,0 @@ ---Jin游戏框架 ---可选,用户可以自行决定是否使用此框架 diff --git a/Resources/DefaultContent/Libraries/GameLab/Class.lua b/Resources/DefaultContent/Libraries/GameLab/Class.lua new file mode 100644 index 0000000..346d807 --- /dev/null +++ b/Resources/DefaultContent/Libraries/GameLab/Class.lua @@ -0,0 +1,5 @@ +-- GameLab Class
+local Class = {}
+GameLab.Class = Class
+
+
diff --git a/Resources/DefaultContent/Libraries/Framework/Animation/Animation.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Animation/Animation.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Libraries/Framework/Animation/Animation.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Animation/Animation.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Core/Camera.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Camera.lua index 5fcfbe7..5fcfbe7 100644 --- a/Resources/DefaultContent/Libraries/Framework/Core/Camera.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Camera.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Core/Component.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Component.lua index 00bf2ca..00bf2ca 100644 --- a/Resources/DefaultContent/Libraries/Framework/Core/Component.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Component.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Core/Game.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Game.lua index 51ce25f..51ce25f 100644 --- a/Resources/DefaultContent/Libraries/Framework/Core/Game.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Game.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Core/GameObject.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/GameObject.lua index ee0d143..ee0d143 100644 --- a/Resources/DefaultContent/Libraries/Framework/Core/GameObject.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/GameObject.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Core/Sprite.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Sprite.lua index 47cb50d..47cb50d 100644 --- a/Resources/DefaultContent/Libraries/Framework/Core/Sprite.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Core/Sprite.lua diff --git a/Resources/DefaultContent/Scripts/Math/Euler.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Euler.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Scripts/Math/Euler.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Euler.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Math/Matrix44.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua index b572f74..b572f74 100644 --- a/Resources/DefaultContent/Libraries/Framework/Math/Matrix44.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Matrix44.lua diff --git a/Resources/DefaultContent/Scripts/Math/Matrix4x4.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Matrix4x4.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Scripts/Math/Matrix4x4.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Matrix4x4.lua diff --git a/Resources/DefaultContent/Scripts/Math/Quaternion.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Quaternion.lua index 4c71f52..4c71f52 100644 --- a/Resources/DefaultContent/Scripts/Math/Quaternion.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Quaternion.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Math/Vector2.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Libraries/Framework/Math/Vector2.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector2.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Math/Vector3.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Libraries/Framework/Math/Vector3.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector3.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Math/Vector4.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Libraries/Framework/Math/Vector4.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/Vector4.lua diff --git a/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua new file mode 100644 index 0000000..ef33c08 --- /dev/null +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Math/init.lua @@ -0,0 +1,4 @@ +GameLab = GameLab or {}
+GameLab.Math = GameLab.Math or {}
+
+
diff --git a/Resources/DefaultContent/Libraries/Framework/Utils/EventCenter.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Utils/EventCenter.lua index 664ecba..664ecba 100644 --- a/Resources/DefaultContent/Libraries/Framework/Utils/EventCenter.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Utils/EventCenter.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Utils/StateMachine.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Utils/StateMachine.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Libraries/Framework/Utils/StateMachine.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Utils/StateMachine.lua diff --git a/Resources/DefaultContent/Libraries/Framework/Utils/Util.lua b/Resources/DefaultContent/Libraries/GameLab/Engine/Utils/Util.lua index e69de29..e69de29 100644 --- a/Resources/DefaultContent/Libraries/Framework/Utils/Util.lua +++ b/Resources/DefaultContent/Libraries/GameLab/Engine/Utils/Util.lua diff --git a/Resources/DefaultContent/Scripts/Math/Vector2.lua b/Resources/DefaultContent/Scripts/Math/Vector2.lua deleted file mode 100644 index e69de29..0000000 --- a/Resources/DefaultContent/Scripts/Math/Vector2.lua +++ /dev/null diff --git a/Resources/DefaultContent/Scripts/Math/Vector3.lua b/Resources/DefaultContent/Scripts/Math/Vector3.lua deleted file mode 100644 index e69de29..0000000 --- a/Resources/DefaultContent/Scripts/Math/Vector3.lua +++ /dev/null diff --git a/Resources/Scripts/EditorApplication.lua b/Resources/Scripts/EditorApplication.lua index d7beb3c..a01778d 100644 --- a/Resources/Scripts/EditorApplication.lua +++ b/Resources/Scripts/EditorApplication.lua @@ -1,4 +1,5 @@ -require("LuaPanda").start("127.0.0.1",8818); + +require "GameLab.Engine.Math" local Debug = GameLab.Debug local GUI = GameLab.Editor.GUI @@ -19,7 +20,9 @@ local guiWindow = GUI.GUIWindow.New() guiWindow:SetContainnerWindow(mainWindow) guiWindow:SetPosition({0,0, 500, 400}) -Debug.Log(package.cpath) + +Debug.Log(GameLab.Path.GetRootDirectory()) + while true do diff --git a/Resources/boot.lua b/Resources/boot.lua new file mode 100644 index 0000000..66cc78f --- /dev/null +++ b/Resources/boot.lua @@ -0,0 +1,18 @@ +
+-- 妯″潡鎼滅储鐩綍
+local engineLuaLibs = "./DefaultContent/Libraries/?.lua" .. ";./DefaultContent/Libraries/?/init.lua"
+local editorLuaLibs = "./Libraries/?.lua" .. ";./Libraries/?/init.lua"
+local editorScripts = "./Scripts/?.lua"
+package.path=package.path .. ";" .. editorScripts .. ";" .. engineLuaLibs .. ";" .. editorLuaLibs
+
+local engineCLibs = "./DefaultContent/Libraries/?.dll"
+local editorCLibs = "./Libraries/?.dll"
+package.cpath=package.cpath .. ";" .. engineCLibs .. ";" .. editorCLibs
+
+
+-- redirect
+print = GameLab.Debug.Log
+
+
+
+require("LuaPanda").start("127.0.0.1",8818);
diff --git a/Editor/Path.cpp b/Runtime/FileSystem/Path.cpp index e69de29..e69de29 100644 --- a/Editor/Path.cpp +++ b/Runtime/FileSystem/Path.cpp diff --git a/Editor/Path.h b/Runtime/FileSystem/Path.h index e69de29..e69de29 100644 --- a/Editor/Path.h +++ b/Runtime/FileSystem/Path.h diff --git a/Runtime/Lua/LuaBind/LuaBindState.cpp b/Runtime/Lua/LuaBind/LuaBindState.cpp index 8b6a5aa..fa2952f 100644 --- a/Runtime/Lua/LuaBind/LuaBindState.cpp +++ b/Runtime/Lua/LuaBind/LuaBindState.cpp @@ -164,7 +164,8 @@ namespace LuaBind } if (lua_pcall(mState, nArgs, nResults, func) == 0) { - lua_remove(mState, func); + if(func != 0) + lua_remove(mState, func); } else { diff --git a/Runtime/Scripting/Debug/Debug.bind.cpp b/Runtime/Scripting/Debug/Debug.bind.cpp index 6d37746..9d98211 100644 --- a/Runtime/Scripting/Debug/Debug.bind.cpp +++ b/Runtime/Scripting/Debug/Debug.bind.cpp @@ -88,6 +88,8 @@ int logEditor(lua_State* L) log_error("Debug.Log()错误的参数个数"); } return 0; +#else + return 0; #endif } diff --git a/Runtime/Scripting/FileSystem/FileSystem.bind.cpp b/Runtime/Scripting/FileSystem/FileSystem.bind.cpp new file mode 100644 index 0000000..fea8b57 --- /dev/null +++ b/Runtime/Scripting/FileSystem/FileSystem.bind.cpp @@ -0,0 +1,10 @@ +#include <iostream>
+
+#include "Runtime/Lua/LuaBind/LuaBind.h"
+
+int luaopen_GameLab_FileSystem(lua_State* L)
+{
+
+ return 1;
+}
+
diff --git a/Runtime/Scripting/Path.bind.cpp b/Runtime/Scripting/Path.bind.cpp new file mode 100644 index 0000000..920f586 --- /dev/null +++ b/Runtime/Scripting/Path.bind.cpp @@ -0,0 +1,32 @@ +#include "Runtime/Lua/LuaBind/LuaBind.h"
+
+#ifdef GAMELAB_WIN
+#include <windows.h> +#endif
+
+using namespace LuaBind;
+
+static int GetRootDirectory(lua_State* L)
+{
+#ifdef GAMELAB_WIN
+ char path[MAX_PATH]; + GetCurrentDirectory(MAX_PATH, path); + lua_pushstring(L, path);
+ return 1;
+#else
+ return 0;
+#endif
+}
+
+int luaopen_GameLab_Path(lua_State* L)
+{
+ LUA_BIND_STATE(L);
+
+ state.PushGlobalNamespace();
+ state.PushNamespace("GameLab");
+ state.PushNamespace("Path");
+
+ state.RegisterMethod("GetRootDirectory", GetRootDirectory);
+
+ return 1;
+}
|