void UpdateState()
    {
        if (!this.render.enabled)
        {
            return;
        }
        var  inputState = controls.GetInputStateOnItem(this.render);
        bool canUse     = itemCountManager.CanUse();

        if (!canUse)
        {
            this.CurrentState = State.Inactive;
            return;
        }

        if (canUse && new[] { State.Normal, State.Hover }.Contains(this.CurrentState))
        {
            if (inputState.IsUsingMainAction)
            {
                this.inventory.ActivateItem(this.ReferenceName);
                return;
            }

            if (inputState.IsHovering)
            {
                this.CurrentState = State.Hover;
            }
            else
            {
                this.CurrentState = State.Normal;
            }
        }
    }