#pragma once #include #include #include #include "Component.h" #include "InputComponent.h" #include "InputAction.h" class InputSystemComponent : public InputComponent { public: InputSystemComponent() = default; ~InputSystemComponent() = default; void init() override; void update() override; void bindAction(const std::string& actionName, Key key, std::function callback); void unbindAction(const std::string& actionName, Key key); private: InputComponent* m_inputComponent; std::map> m_keyToActionsMap; std::map m_actions; void handleActions(); };