diff options
Diffstat (limited to 'src/lua/include')
| -rw-r--r-- | src/lua/include/bridge.hpp | 5 | ||||
| -rw-r--r-- | src/lua/include/property.hpp | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/lua/include/bridge.hpp b/src/lua/include/bridge.hpp index 26401d14..91153d67 100644 --- a/src/lua/include/bridge.hpp +++ b/src/lua/include/bridge.hpp @@ -24,7 +24,10 @@ class Bridge { auto AddPropertyModule( const std::string&, - std::vector<std::pair<std::string, std::shared_ptr<Property>>>) -> void; + std::vector< + std::pair<std::string, + std::variant<LuaFunction, std::shared_ptr<Property>>>>) + -> void; system_fsm::ServiceLocator& services() { return services_; } PropertyBindings& bindings() { return bindings_; } diff --git a/src/lua/include/property.hpp b/src/lua/include/property.hpp index b6b4718f..60f9906a 100644 --- a/src/lua/include/property.hpp +++ b/src/lua/include/property.hpp @@ -16,6 +16,7 @@ namespace lua { using LuaValue = std::variant<std::monostate, int, float, bool, std::string>; +using LuaFunction = std::function<int(lua_State*)>; class Property { public: @@ -42,6 +43,12 @@ class PropertyBindings { PropertyBindings(lua_State&); auto Register(lua_State*, Property*) -> void; + auto Register(lua_State*, LuaFunction) -> void; + + auto GetFunction(size_t i) -> const LuaFunction&; + + private: + std::vector<LuaFunction> functions_; }; } // namespace lua |
