Exemplo n.º 1
0
    public ActionNodeManager(KeyCode key, Action.EActionType type = Action.EActionType.Hold, int multi = 2)
    {
        // Create the correct ActionNode type depending on the EActionType given
        switch (type)
        {
        case Action.EActionType.Hold:
        case Action.EActionType.PressOnce:
        case Action.EActionType.ReleaseOnce:
            _node = new SimpleActionNode(key, type);
            break;

        case Action.EActionType.HoldTwice:
        case Action.EActionType.MultiHold:
            _node = new MultiHoldActionNode(key, multi);
            break;

        case Action.EActionType.PressTwice:
        case Action.EActionType.MultiPress:
            _node = new MultiPressActionNode(key, multi);
            break;

        case Action.EActionType.ReleaseTwice:
        case Action.EActionType.MultiRelease:
            _node = new MultiReleaseActionNode(key, multi);
            break;

        default:
            throw new ArgumentOutOfRangeException("type");
        }
    }
Exemplo n.º 2
0
 public SimpleActionNode(KeyCode key, Action.EActionType type)
 {
     // If a multi-press was given, throw an exception
     if ((int)type >= 3)
     {
         throw new InvalidEnumArgumentException("type");
     }
     _key  = key;
     _type = type;
 }