summaryrefslogtreecommitdiff
path: root/Runtime
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-11 15:05:40 +0800
committerchai <chaifix@163.com>2021-11-11 15:05:40 +0800
commit36f42b74630d4bca2d1d276d57c4c967d0290380 (patch)
treec71029f98db3d22e6a32ba4de7350aff9ae6f17d /Runtime
parentde46b91a524c5f2c8e72b379f2900afe34ccb815 (diff)
*misc
Diffstat (limited to 'Runtime')
-rw-r--r--Runtime/Lua/LuaBind/LuaBindLFunction.cpp10
-rw-r--r--Runtime/Scripting/RuntimeScriptGlobals.cpp10
-rw-r--r--Runtime/Scripting/RuntimeScriptGlobals.h21
-rw-r--r--Runtime/Scripting/RuntimeScripting.h3
-rw-r--r--Runtime/Scripting/RuntimeScriptingManager.h22
-rw-r--r--Runtime/Scripting/ScriptGlobals.h10
-rw-r--r--Runtime/Scripting/ScriptingManager.cpp14
-rw-r--r--Runtime/Utilities/UtilMacros.h2
8 files changed, 42 insertions, 50 deletions
diff --git a/Runtime/Lua/LuaBind/LuaBindLFunction.cpp b/Runtime/Lua/LuaBind/LuaBindLFunction.cpp
index b468897..1e7b75f 100644
--- a/Runtime/Lua/LuaBind/LuaBindLFunction.cpp
+++ b/Runtime/Lua/LuaBind/LuaBindLFunction.cpp
@@ -6,6 +6,7 @@ namespace LuaBind
LuaFunction::LuaFunction(const char* func)
{
+ argc = 0;
method = func;
}
@@ -54,10 +55,13 @@ namespace LuaBind
{
if (state.GetGlobalField(method))
{
- int funcIdx = -1 - argc;
- lua_replace(state, funcIdx);
- state.Call(argc, nReturns);
+ if (state.IsType(-1, LUA_TFUNCTION)) {
+ int funcIdx = -1 - argc;
+ lua_insert(state, funcIdx);
+ state.Call(argc, nReturns);
+ }
}
+ argc = 0;
}
} \ No newline at end of file
diff --git a/Runtime/Scripting/RuntimeScriptGlobals.cpp b/Runtime/Scripting/RuntimeScriptGlobals.cpp
new file mode 100644
index 0000000..5f140a1
--- /dev/null
+++ b/Runtime/Scripting/RuntimeScriptGlobals.cpp
@@ -0,0 +1,10 @@
+#include "RuntimeScriptGlobals.h"
+
+namespace Scripting
+{
+
+ void FillRuntimeScriptGlobals(RuntimeScriptGlobals& globals)
+ {
+ globals.setCurrentEvent = "GameLab.Events.Event.SetCurrentEvent";
+ }
+} \ No newline at end of file
diff --git a/Runtime/Scripting/RuntimeScriptGlobals.h b/Runtime/Scripting/RuntimeScriptGlobals.h
new file mode 100644
index 0000000..76448a9
--- /dev/null
+++ b/Runtime/Scripting/RuntimeScriptGlobals.h
@@ -0,0 +1,21 @@
+#pragma once
+#include "Runtime/Lua/LuaHelper.h"
+
+#define DECL_LUA_FUNC(name) LuaBind::LuaFunction name
+
+#ifdef GAMELAB_EDITOR
+#define SCRIPT_GLOBAL EditorScriptingManager::Instance()->GetGlobals()
+#elif defined(GAMELAB_RUNNER)
+#define SCRIPT_GLOBAL
+#endif
+
+// 全局方法和变量
+struct RuntimeScriptGlobals
+{
+ DECL_LUA_FUNC(setCurrentEvent);
+};
+
+namespace Scripting
+{
+ void FillRuntimeScriptGlobals(RuntimeScriptGlobals& globals);
+} \ No newline at end of file
diff --git a/Runtime/Scripting/RuntimeScripting.h b/Runtime/Scripting/RuntimeScripting.h
new file mode 100644
index 0000000..4134dcc
--- /dev/null
+++ b/Runtime/Scripting/RuntimeScripting.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "RuntimeScriptGlobals.h"
diff --git a/Runtime/Scripting/RuntimeScriptingManager.h b/Runtime/Scripting/RuntimeScriptingManager.h
deleted file mode 100644
index b8db959..0000000
--- a/Runtime/Scripting/RuntimeScriptingManager.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-#include "Runtime/Utilities/Singleton.h"
-#include "ScriptGlobals.h"
-#include "Runtime/Utilities/UtilMacros.h"
-
-class RuntimeScriptingManager : public Singleton<RuntimeScriptingManager >
-{
-public:
- RuntimeScriptingManager();
-
- GET(const ScriptGlobals&, Globals, m_Globals);
-
-private:
- void FillGloabls();
-
- ScriptGlobals m_Globals; // lua侧的全局方法
-
-};
-
-#define SCRIPT_GLOBAL RuntimeScriptingManager::Instance()->GetGlobals()
-
-
diff --git a/Runtime/Scripting/ScriptGlobals.h b/Runtime/Scripting/ScriptGlobals.h
deleted file mode 100644
index af396bd..0000000
--- a/Runtime/Scripting/ScriptGlobals.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-#include "Runtime/Lua/LuaHelper.h"
-
-#define DECL_LUA_FUNC(name) LuaBind::LuaFunction name
-
-// 全局方法和变量
-struct ScriptGlobals
-{
- DECL_LUA_FUNC(setCurrentEvent);
-}; \ No newline at end of file
diff --git a/Runtime/Scripting/ScriptingManager.cpp b/Runtime/Scripting/ScriptingManager.cpp
deleted file mode 100644
index 5b26262..0000000
--- a/Runtime/Scripting/ScriptingManager.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "RuntimeScriptingManager.h"
-
-RuntimeScriptingManager::RuntimeScriptingManager()
-{
-
-
-
-}
-
-void RuntimeScriptingManager::FillGloabls()
-{
- m_Globals.setCurrentEvent = "GameLab.Events.Event.SetCurrentEvent";
-
-} \ No newline at end of file
diff --git a/Runtime/Utilities/UtilMacros.h b/Runtime/Utilities/UtilMacros.h
index f48be5c..29bb7b0 100644
--- a/Runtime/Utilities/UtilMacros.h
+++ b/Runtime/Utilities/UtilMacros.h
@@ -6,7 +6,7 @@
inline TYPE Get##PROP () {return VAR; }
#define GET(TYPE, PROP, VAR) \
- inline TYPE Get##PROP () const {return VAR; }
+ inline TYPE Get##PROP () {return VAR; }
#define SET(TYPE, PROP, VAR) \
inline void Set##PROP (TYPE val) { VAR = val; } \