blob: 8008dedd93659ac3a233db92f89ba33f72b712f2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#pragma once
#include <sol/sol.hpp>
#include <string>
// 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_;
};
|