meta.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 <component/velocity_component.h>
  7. #include <entt/meta/factory.hpp>
  8. #include <meta/meta.h>
  9. namespace testbed {
  10. void meta_setup() {
  11. entt::meta_factory<SDL_FPoint>()
  12. .type("sdl_fpoint")
  13. .data<&SDL_FPoint::x>("x")
  14. .data<&SDL_FPoint::y>("y");
  15. entt::meta_factory<SDL_FRect>()
  16. .type("sdl_frect")
  17. .data<&SDL_FRect::x>("x")
  18. .data<&SDL_FRect::y>("y")
  19. .data<&SDL_FRect::w>("w")
  20. .data<&SDL_FRect::h>("h");
  21. entt::meta_factory<input_listener_component::type>()
  22. .type("command type")
  23. .data<input_listener_component::type::NONE>("none")
  24. .data<input_listener_component::type::UP>("up")
  25. .data<input_listener_component::type::DOWN>("down")
  26. .data<input_listener_component::type::LEFT>("left")
  27. .data<input_listener_component::type::RIGHT>("right");
  28. entt::meta_factory<input_listener_component>()
  29. .type("input listener")
  30. .data<&input_listener_component::command>("command");
  31. entt::meta_factory<SDL_FPoint>()
  32. .type("point");
  33. entt::meta_factory<position_component>()
  34. .type("position")
  35. .base<SDL_FPoint>();
  36. entt::meta_factory<rect_component>()
  37. .type("rect")
  38. .base<SDL_FRect>();
  39. entt::meta_factory<renderable_component>()
  40. .type("renderable");
  41. entt::meta_factory<velocity_component>()
  42. .type("velocity")
  43. .data<&velocity_component::dx>("dx")
  44. .data<&velocity_component::dy>("dy");
  45. }
  46. } // namespace testbed