23#ifndef L61_SCRIPTENVIRONMENT_HPP
24#define L61_SCRIPTENVIRONMENT_HPP
53 static sol::table
lua_mountLib(sol::this_state state,
const std::string& libraryName);
57 void addValue(
const std::string& key, T&& value)
59 auto var =
getLuaCtx()[key] = std::forward<T>(value);
67 if ((temp != sol::nil))
74 throw std::runtime_error(std::format(
"Value not exist {}", key));
78 void setValue(
const std::string& key,
const T& value)
80 if (
auto temp =
getLuaCtx()[key]; temp.is<T>())
86 bool has(
const std::string& key);
88 sol::table
makeTable(
const std::string& name);
96 void specialRun(
const std::function<
void(sol::state&)>& func)
override;
102 void exec(
const std::string& code)
final;
106 sol::protected_function_result
runCodeBlock(
const std::string& luaCode)
override;
113inline sol::table
makeSubTable(
const std::string&& name, sol::table table)
115 sol::table x = table.create_with();
116 table.set(std::forward<const std::string>(name), x);
#define l61_abstract_class
Denotes that the class is abstract with most functions being implemented leaving a few functions to b...
Definition PseudoKeywords.hpp:63
void lib61_setup()
Definition ScriptEnvironment.cpp:46
friend l61_abstract_class AbstractScriptDebugger
Definition ScriptEnvironment.hpp:109
void specialRun(const std::function< void(sol::state &)> &func) override
Definition ScriptEnvironment.cpp:127
sol::state luaCtx
Definition ScriptEnvironment.hpp:42
AbstractScriptDebugger * script_debugger_
Definition ScriptEnvironment.hpp:44
sol::protected_function_result runCodeBlock(const std::string &luaCode) override
Definition ScriptEnvironment.cpp:155
void setValue(const std::string &key, const T &value)
Definition ScriptEnvironment.hpp:78
void addValue(const std::string &key, T &&value)
Definition ScriptEnvironment.hpp:57
~ScriptEnvironment() override
friend void standard_lua_debugger_hook(lua_State *L, lua_Debug *D)
Definition ScriptEnvironment.cpp:68
void attachDebugger(AbstractScriptDebugger *debugger) override
Definition ScriptEnvironment.cpp:149
sol::state & getLuaCtx() override
Definition ScriptEnvironment.cpp:63
static sol::table lua_mountLib(sol::this_state state, const std::string &libraryName)
Definition ScriptEnvironment.cpp:86
sol::table makeTable(const std::string &name)
Definition ScriptEnvironment.cpp:117
ScriptEnvironment(l61_stat &scriptCtx)
Definition ScriptEnvironment.cpp:77
void exec(const std::string &code) final
for user input
Definition ScriptEnvironment.cpp:143
T getValue(const std::string &key)
Definition ScriptEnvironment.hpp:64
bool has(const std::string &key)
Definition ScriptEnvironment.cpp:122
l61_stat & scriptCtx
Definition ScriptEnvironment.hpp:41
ScriptEnvironment(ScriptEnvironment &&)=delete
ScriptEnvironment(const ScriptEnvironment &)=delete
ScriptEnvironment & operator=(const ScriptEnvironment &)=delete
l61_stat & getScriptCtx()
Definition ScriptEnvironment.cpp:58
sol::table makeSubTable(const std::string &&name, sol::table table)
Definition ScriptEnvironment.hpp:113
l61_interface IBasicScriptEngine
Definition IBasicScriptEngine.hpp:30