public virtual void Update()
        {
            bool inInteractionRange = InInteractionRange();

            if (this.IsHovered && inInteractionRange)
            {
                HandReticle main = HandReticle.main;

#if SUBNAUTICA
                if (ButtonMode == InterfaceButtonMode.None)
                {
                    main.SetIcon(HandReticle.IconType.Hand, 1f);
                    main.SetInteractTextRaw(this.TextLineOne, this.TextLineTwo);
                }
                else
                {
                    main.SetInteractTextRaw(this.TextLineOne, this.TextLineTwo);
                }
#elif BELOWZERO
                if (ButtonMode == InterfaceButtonMode.None)
                {
                    main.SetIcon(HandReticle.IconType.Hand, 1f);
                    main.SetTextRaw(HandReticle.TextType.Hand, this.TextLineOne);
                    main.SetTextRaw(HandReticle.TextType.Hand, this.TextLineTwo);
                }
                else
                {
                    main.SetTextRaw(HandReticle.TextType.Hand, this.TextLineOne);
                    main.SetTextRaw(HandReticle.TextType.Hand, this.TextLineTwo);
                }
#endif
            }

            if (this.IsHovered && inInteractionRange == false)
            {
                this.IsHovered = false;
            }

            if (this.IsHovered == false && isHoveredOutOfRange && inInteractionRange)
            {
                this.IsHovered = true;
            }
        }