#pragma once #include #include namespace mirrage::ecs { class Entity_manager; } namespace phase_shifter::input { class Beat_system; class Input_system { public: Input_system(mirrage::util::Message_bus&, mirrage::ecs::Entity_manager&); void update(mirrage::util::Time); void enable(); void disable(); private: mirrage::util::Mailbox_collection _mailbox; mirrage::ecs::Entity_manager& _ecs; bool _key_move_up = false; bool _key_move_down = false; bool _key_move_left = false; bool _key_move_right = false; float _key_move_timer = 0.f; bool _key_move_queued = false; }; } // namespace phase_shifter::input