meta.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include <SDL3/SDL_rect.h>
  2. #include <component/input_listener_component.h>
  3. #include <component/position_component.h>
  4. #include <component/rect_component.h>
  5. #include <component/renderable_component.h>
  6. #include <entt/meta/factory.hpp>
  7. #include <meta/meta.h>
  8. namespace testbed {
  9. void meta_setup() {
  10. entt::meta_factory<SDL_FPoint>()
  11. .type("sdl_fpoint")
  12. .data<&SDL_FPoint::x>("x")
  13. .data<&SDL_FPoint::y>("y");
  14. entt::meta_factory<SDL_FRect>()
  15. .type("sdl_frect")
  16. .data<&SDL_FRect::x>("x")
  17. .data<&SDL_FRect::y>("y")
  18. .data<&SDL_FRect::w>("w")
  19. .data<&SDL_FRect::h>("h");
  20. entt::meta_factory<input_listener_component::type>()
  21. .type("command type")
  22. .data<input_listener_component::type::UP>("up")
  23. .data<input_listener_component::type::DOWN>("down")
  24. .data<input_listener_component::type::LEFT>("left")
  25. .data<input_listener_component::type::RIGHT>("right");
  26. entt::meta_factory<input_listener_component>()
  27. .type("input listener")
  28. .data<&input_listener_component::command>("command");
  29. entt::meta_factory<SDL_FPoint>()
  30. .type("point");
  31. entt::meta_factory<position_component>()
  32. .type("position")
  33. .base<SDL_FPoint>();
  34. entt::meta_factory<rect_component>()
  35. .type("rect")
  36. .base<SDL_FRect>();
  37. entt::meta_factory<renderable_component>()
  38. .type("renderable");
  39. }
  40. } // namespace testbed