Ejemplo n.º 1
0
 private void Awake()
 {
     if (!tooltip && tooltipPrefab)
     {
         tooltip = Instantiate(tooltipPrefab, transform).GetComponent <InventoryItemTooltip>();
     }
 }
 public void OnRequestAddTooltip(InventoryItemTooltip tooltip)
 {
     if (RequestAddTooltipEvent != null)
     {
         RequestAddTooltipEvent(this, tooltip);
     }
 }
Ejemplo n.º 3
0
    protected virtual void Start()
    {
        if (!tooltip && tooltipPrefab)
        {
            tooltip = Instantiate(tooltipPrefab, transform).GetComponent <InventoryItemTooltip>();
        }

        DrawItem();
    }
 public void OnRequestRemoveTooltip(InventoryItemTooltip tooltip)
 {
     if (_tooltip != null)
     {
         //remove tooltip from ui
         if (RequestRemoveTooltipEvent != null)
         {
             RequestRemoveTooltipEvent(tooltip);
         }
         _tooltip = null;
     }
 }
        //  public virtual void HandleInput(GameTime gameTime, InputState input) { }

        //Handles user input. This is separate to Update, as a screen can still be updated even if it cannot handle input
        public override void HandleInput(GameTime gameTime, InputState input, GameState state)
        {
            if (_boundingBox.Contains(new Point(input.CurrentMouseState.X, input.CurrentMouseState.Y)) && input.IsMouseVisible)
            {
                if (_isDraggable && input.CurrentMouseState.LeftButton == ButtonState.Pressed && input.PreviousMouseState.LeftButton == ButtonState.Released)
                {
                    isBeingDragged = true;
                }

                if (!isBeingDragged)
                {
                    _mouseHoverCounter++;

                    if (_mouseHoverCounter > 30 && _tooltip == null)
                    {
                        _tooltip = new InventoryItemTooltip(_inventoryItem, Position);
                        OnRequestAddTooltip(_tooltip);
                    }
                }
                else
                {
                    _mouseHoverCounter = 0;
                }
            }
            else
            {
                _mouseHoverCounter = 0;

                OnRequestRemoveTooltip(_tooltip);
            }
            if (_isDraggable)
            {
                if (input.CurrentMouseState.LeftButton == ButtonState.Released)
                {
                    if (isBeingDragged && TEMPMouseOver != null)
                    {
                        ((InventoryView)TEMPMouseOver.Owner).RequestAddAt(this, TEMPMouseOver);
                    }

                    isBeingDragged    = false;
                    _releasedPosition = new Vector2(_positionAbsolute.X, _positionAbsolute.Y);
                    differenceX       = (int)_releasedPosition.X - (int)_owner.PositionAbsolute.X;
                    differenceY       = (int)_releasedPosition.Y - (int)_owner.PositionAbsolute.Y;
                }


                if (isBeingDragged)
                {
                    OnRequestRemoveTooltip(_tooltip);
                    Vector2 currentPoint  = new Vector2(input.CurrentMouseState.X, input.CurrentMouseState.Y);
                    Vector2 previousPoint = new Vector2(input.PreviousMouseState.X, input.PreviousMouseState.Y);

                    _positionAbsolute.X = _positionAbsolute.X + (currentPoint.X - previousPoint.X);
                    _positionAbsolute.Y = _positionAbsolute.Y + (currentPoint.Y - previousPoint.Y);
                    _boundingBox        = new Rectangle((int)_positionAbsolute.X, (int)_positionAbsolute.Y, 40, 40);
                }
                else
                {
                    _positionAbsolute.X -= (int)(differenceX);
                    _positionAbsolute.Y -= (int)(differenceY);
                    _boundingBox         = new Rectangle((int)_positionAbsolute.X, (int)_positionAbsolute.Y, 40, 40);

                    if (_positionAbsolute == _owner.PositionAbsolute)
                    {
                        differenceX = 0;
                        differenceY = 0;
                    }
                }
            }
        }
Ejemplo n.º 6
0
 void Awake()
 {
     instance = this;
 }