private void PlaceItem()
        {
            _itemToPlace.SetPlacesActive(false);

            _inventory.RemoveItem(_itemToPlace);

            _itemToPlace.IsPlaced = true;
            _itemToPlace.OnDrop();
            _itemToPlace = null;
        }
        public void SetItemForPlacing(BaseInventoryObject item)
        {
            _itemToPlace = item;

            if (Mathf.Abs(_owner.transform.position.x - item.PlacePosition.x) < ACTIVE_DISTANCE)
            {
                PlaceItem();
            }
            else
            {
                _targetPoint = _itemToPlace.PlacePosition;
                _owner.anim.SetBool("movement", true);
                _owner.anim.Play("Movement");
                _moving = true;
            }
        }
Esempio n. 3
0
    public void OnDrop(PointerEventData eventData)
    {
        RectTransform inventPanel = transform as RectTransform;

        if (!RectTransformUtility.RectangleContainsScreenPoint(inventPanel, Input.mousePosition))
        {
            BaseInventoryObject item = eventData.pointerDrag.gameObject.GetComponent <ItemDragHandler>().Item;
            if (item == null)
            {
                return;
            }
            if (!item.CanBePlaced())
            {
                return;
            }

            ItemPlaced?.Invoke(item);
        }
    }