lib.cpp 839 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <entt/entity/registry.hpp>
  2. #include <entt/lib/attribute.h>
  3. #include "types.h"
  4. ENTT_API entt::component int_type() {
  5. entt::registry registry;
  6. (void)registry.type<double>();
  7. (void)registry.type<float>();
  8. return registry.type<int>();
  9. }
  10. ENTT_API entt::component char_type() {
  11. entt::registry registry;
  12. (void)registry.type<double>();
  13. (void)registry.type<float>();
  14. return registry.type<char>();
  15. }
  16. ENTT_API void update_position(int delta, entt::registry &registry) {
  17. registry.view<position, velocity>().each([delta](auto &pos, auto &vel) {
  18. pos.x += delta * vel.dx;
  19. pos.y += delta * vel.dy;
  20. });
  21. }
  22. ENTT_API void assign_velocity(int vel, entt::registry &registry) {
  23. for(auto entity: registry.view<position>()) {
  24. registry.assign<velocity>(entity, vel, vel);
  25. }
  26. }