Counter block + conditional triggers

One of the biggest problems in Besiege is the fact that it requires so many buttons. If you build a machine that has several cannons/bombs/missiles that you want to fire in sequence, you need a separate button for each. This could be solved with 2 blocks.

A) Counter Block: The counter block would hold a value which does nothing on its own. The block has two functions: press a button to add +1, press another button the subtract -1.
B) Wire: The wire holds a fixed integer value. The wire is an invisible line that connects between a counter block and any block with a trigger key (cannons, decouples, wheels, pistons, custom blocks like lasers, etc...). The wire continuously checks the value of the counter block, and when the wire's value and Counter Block's value are equal, the wire triggers the connected block.
This way the counter block could trigger any block in the game (including custom blocks) without needing to re-code or modify other blocks.

Example: The player creates a counter block and sets it to start with a value of 0, and add +1 to that value every time the player presses "1". The player has 5 wires linked to 5 separate cannons. One wire checks for a value of 1, another wire checks for a value of 2, another for 3, another for 4, and another for 5.
When the player starts the game and presses "1", the first cannon fires. When he presses "1" again, the second cannon fires, and so on until all cannons have fired simply by pressing the "1" key 5 times.

On a basic level, this would allow players to trigger any number of weapons in sequence with a single key. On a more advanced level, it would open up a huge number of options for walking machines and engine transmissions.
Or just a parameter for 'Key Delay' that is 0 as default - 0 means it gets fired on the first key press, 1 on the 2nd key press etc...less complicated, more flexible, no added weight/volume on the machine.