Almost correct, but as I said before, the scheme is too massive. It is not only about controlling One ship at a time.
Can we discuss planned features? Using the keyboard is less convenient than Custom Id's for signals, currently we use Key for signal but amount of keys on keyboard is limited.
So, if I want to impliment SOMETHING BIG the scheme will be pretty massive, since:
Its quite a pain to remember and use all signals with shorter names like key K O U S that could be used only in small builds/ships.
One of the efficient solutions might be is to allow players to make signals without dependency on keys.
For example:
The player in the Object window has a few fields
For objects wich can send inputs:
List<string> : ArrayOfSignalsToSend. (expandable by player) (for example, PowerEnable, ActiveShield etc.)
List<key>: Keys (if we use all of them event must be broadcasted).
enum:State (to choose if the key is Pressed or Released when we broadcast this Signal).
For objects who can receive inputs:
List<string>: InputSignalNames.
string: SignalToOut// to make a part active, I guess my suggestion is to request a Math parts
For the logic parts in case (If, Or, Xor, Xand etc)
I can't make more than two inputs, it takes almost all the keys on keyboard and after using hardlogic and it makes it hard to understand and hard to change in the future.
For logic parts:
List<string>: InputSignalNames. (expandable by player)
enum: LogicType - and, or, xor, xand, nand, nor.
string: SignalToOut;
I tried to Impliment your solution for moving, including rotation and camera activating without disabling main ship. I used 7 elements for it.
Switch and 6 AND gates without current ship disabling and anything except moving and rotating is also +6 elements. 7 Keys to input and 7 key to output For ONE drone without Shooting, shield activation, secondary weapon etc.
If I want to use something more advance than just a box moving I need to allocate approximately 20 Keys without hard logic like Terrain Detection and Altitude.
How do you see using this construction?
Any ideas for solving this?