|
|
@@ -1,4 +1,5 @@
|
|
|
#include <component/input_listener_component.h>
|
|
|
+#include <component/rect_component.h>
|
|
|
#include <component/velocity_component.h>
|
|
|
#include <entt/entity/registry.hpp>
|
|
|
#include <system/command_system.h>
|
|
|
@@ -6,23 +7,32 @@
|
|
|
namespace testbed {
|
|
|
|
|
|
void command_system(entt::registry ®istry) {
|
|
|
- for([[maybe_unused]] auto [entt, input, vel]: registry.view<input_listener_component, velocity_component>().each()) {
|
|
|
+ for([[maybe_unused]] auto [entt, input]: registry.view<input_listener_component>().each()) {
|
|
|
switch(input.command) {
|
|
|
case input_listener_component::type::UP:
|
|
|
- vel.dy = -1.0f;
|
|
|
+ registry.get<velocity_component>(entt).dy = -1.0f;
|
|
|
break;
|
|
|
case input_listener_component::type::DOWN:
|
|
|
- vel.dy = 1.0f;
|
|
|
+ registry.get<velocity_component>(entt).dy = 1.0f;
|
|
|
break;
|
|
|
case input_listener_component::type::LEFT:
|
|
|
- vel.dx = -1.0f;
|
|
|
+ registry.get<velocity_component>(entt).dx = -1.0f;
|
|
|
break;
|
|
|
case input_listener_component::type::RIGHT:
|
|
|
- vel.dx = 1.0f;
|
|
|
+ registry.get<velocity_component>(entt).dx = 1.0f;
|
|
|
break;
|
|
|
- case input_listener_component::type::STOP:
|
|
|
+ case input_listener_component::type::STOP: {
|
|
|
+ auto &vel = registry.get<velocity_component>(entt);
|
|
|
vel.dx = vel.dy = 0.0f;
|
|
|
- break;
|
|
|
+ } break;
|
|
|
+ case input_listener_component::type::PLUS: {
|
|
|
+ registry.get<rect_component>(entt).w *= 1.1;
|
|
|
+ registry.get<rect_component>(entt).h *= 1.1;
|
|
|
+ } break;
|
|
|
+ case input_listener_component::type::MINUS: {
|
|
|
+ registry.get<rect_component>(entt).w *= 0.9;
|
|
|
+ registry.get<rect_component>(entt).h *= 0.9;
|
|
|
+ } break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|