public InputControl( string handle, InputControlTarget target )
        {
            Handle = handle;
            Target = target;

            IsButton = (target >= InputControlTarget.Action1 && target <= InputControlTarget.Action4) ||
                       (target >= InputControlTarget.Button0 && target <= InputControlTarget.Button19);
        }
 public void UpdateWithValue(InputControlTarget inputControlTarget, float value, ulong updateTick)
 {
     GetControl(inputControlTarget).UpdateWithValue(value, updateTick);
 }
 public void UpdateWithState(InputControlTarget inputControlTarget, bool state, ulong updateTick)
 {
     GetControl(inputControlTarget).UpdateWithState(state, updateTick);
 }
 public InputControl GetControl(InputControlTarget inputControlTarget)
 {
     InputControl control = Controls[(int) inputControlTarget];
     return control ?? InputControl.Null;
 }
 public InputControl AddControl(InputControlTarget inputControlTarget, string handle)
 {
     var inputControl = new InputControl(handle, inputControlTarget);
     Controls[(int) inputControlTarget] = inputControl;
     return inputControl;
 }