Serializer now has a nice register function

This commit is contained in:
2019-02-09 21:41:43 +00:00
parent a6e5deb502
commit 96ad0de01a
7 changed files with 323 additions and 245 deletions

View File

@@ -7,9 +7,10 @@
namespace ecs::lua {
struct LuaWrapper : Component {
LuaWrapper(sol::object object) : _object(object) {}
LuaWrapper(sol::object _object) : object(_object) {}
LuaWrapper() {}
sol::object _object;
sol::object object;
};
template <typename T, typename... Constructor, typename... Args>

View File

@@ -5,6 +5,9 @@ namespace ecs::lua {
sol::table ecs = lua.create_table("ecs");
ecs.new_usertype<Entity>("Entity",
"__tostring", [] (Entity* thiz) {
return uuids::to_string(thiz->uuid);
},
"add_component", [] (Entity* thiz, std::string name, Component* component) {
return thiz->add_component(ComponentID::get_id({name})[0], component);
},
@@ -33,7 +36,10 @@ namespace ecs::lua {
);
ecs.new_usertype<Manager>("Manager",
"create_entity", &Manager::create_entity,
"create_entity", [] (Manager* thiz) {
// @todo Allow to construct with given uuid
return thiz->create_entity();
},
"view", [] (Manager* thiz, sol::variadic_args args) {
std::vector<std::string> names;
for (std::string name : args) {
@@ -44,7 +50,7 @@ namespace ecs::lua {
);
register_component<LuaWrapper, sol::object>(lua,
"object", &LuaWrapper::_object
"object", &LuaWrapper::object
);
}
}