public void Tick(bool input)
    {
        extendingTimer.Tick(Time.deltaTime);
        delayingTimer.Tick(Time.deltaTime);
        curState = input;

        IsPressing  = input;
        OnReleased  = false;
        OnPressed   = false;
        IsExtending = false;
        IsDelaying  = false;

        if (curState != lastState)
        {
            if (curState == true)
            {
                OnPressed = true;
                delayingTimer.StartTimer(delayingDuraton);
            }
            else
            {
                OnReleased = true;
                extendingTimer.StartTimer(.3f);
            }
        }

        if (extendingTimer.Running())
        {
            IsExtending = true;
        }
        if (delayingTimer.Running())
        {
            IsDelaying = true;
        }
        lastState = curState;
    }