Serializer now has a nice register function
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user