Add ability to switch into other lua states

This commit is contained in:
Lion Kortlepel
2021-11-29 00:37:00 +01:00
parent c91f3ee33c
commit fc440bea2a
4 changed files with 36 additions and 8 deletions

View File

@@ -18,7 +18,7 @@ public:
Commandline& Internal() { return mCommandline; }
private:
void ChangeToLuaConsole();
void ChangeToLuaConsole(const std::string& LuaStateId);
void ChangeToRegularConsole();
Commandline mCommandline;
@@ -27,5 +27,6 @@ private:
TLuaEngine* mLuaEngine { nullptr };
bool mIsLuaConsole { false };
bool mFirstTime { true };
const std::string mStateId = "BEAMMP_SERVER_CONSOLE";
std::string mStateId;
const std::string mDefaultStateId = "BEAMMP_SERVER_CONSOLE";
};

View File

@@ -84,6 +84,7 @@ public:
static void WaitForAll(std::vector<std::shared_ptr<TLuaResult>>& Results);
void ReportErrors(const std::vector<std::shared_ptr<TLuaResult> >& Results);
bool HasState(TLuaStateId StateId);
[[nodiscard]] std::shared_ptr<TLuaResult> EnqueueScript(TLuaStateId StateID, const TLuaChunk& Script);
[[nodiscard]] std::shared_ptr<TLuaResult> EnqueueFunctionCall(TLuaStateId StateID, const std::string& FunctionName, const std::vector<TLuaArgTypes>& Args);
void EnsureStateExists(TLuaStateId StateId, const std::string& Name, bool DontCallOnInit = false);