#pragma once #include #include // Thin wrapper around a sol2 Lua state. This is the engine's scripting seam: // data files (materials, later weapons/devices) are Lua, loaded on top of each // other so mods can extend or override the base tables. class ScriptEngine { public: ScriptEngine(); sol::state& lua() { return lua_; } // Run a Lua file in the shared state. Returns false and logs on error // (errors are caught, never thrown out, so a bad mod can't crash the game). bool run_file(const std::string& path); private: sol::state lua_; };