Help with the design choice of input handling


My game has an unusual interaction system, based around anti-mouse campaign I've organized.

This system is based mostly around keys and their contextual meaning: pressing key in one situation does different thing than in another. Now where's the problem?

PC in the game is moved by adding 'moveNode' input actions, which are triggered by String commands, using four keys for direction.

In different context, those keys become interaction keys and it is very important to distinguish whether key is pressed or released, and also to notice if few keys were pressed simultaneously, so one InputAction is added to a different InputHandler, and with series of 'ifs' I decide how to manage interaction.

Those two context switch often in the game, so I joined both by putting InputHandler above them, and on each update it checks if interaction key is triggered and then routes event down to only one of its children (moving or interaction). Things get complicated even more because few things are triggered by setting dynamic hotkeys in-game.

Now when you know the current state,

I would like to know if there's an easier (cleaner) way of joining two different types of action management together (triggers and keyinput events), and also if that would be better solved by using GameControlManager.

Thank you.

GameControlManager will do everything you mentioned here.