#include "components.h" #if __has_include("ecs-lua.h") #include "sol.hpp" namespace generated { void init(sol::state& lua) { sol::table preload = lua["package"]["preload"]; preload["ecs.Position"] = [&lua] { sol::table component = lua.create_table(); component.new_usertype("Position", "x", &Position::x, "y", &Position::y, sol::base_classes, sol::bases() ); component.set_function("new", sol::factories([](float _x, float _y) { return std::make_pair(new Position(_x, _y), "Position"); })); lua.set_function("_internal_to_Position", [] (ecs::Component* component) { return (Position*)component; }); return component; }; preload["ecs.Velocity"] = [&lua] { sol::table component = lua.create_table(); component.new_usertype("Velocity", "x", &Velocity::x, "y", &Velocity::y, sol::base_classes, sol::bases() ); component.set_function("new", sol::factories([](float _x, float _y) { return std::make_pair(new Velocity(_x, _y), "Velocity"); })); lua.set_function("_internal_to_Velocity", [] (ecs::Component* component) { return (Velocity*)component; }); return component; }; preload["ecs.Meta"] = [&lua] { sol::table component = lua.create_table(); component.new_usertype("Meta", "name", &Meta::name, sol::base_classes, sol::bases() ); component.set_function("new", sol::factories([](std::string _name) { return std::make_pair(new Meta(_name), "Meta"); })); lua.set_function("_internal_to_Meta", [] (ecs::Component* component) { return (Meta*)component; }); return component; }; } } #endif #if __has_include("ecs-serial.h") namespace generated { void init() { ecs::serial::register_component( &Position::x, &Position::y ); ecs::serial::register_component( &Velocity::x, &Velocity::y ); ecs::serial::register_component( &Meta::name ); } } #endif