Ejemplo n.º 1
0
        private void PickUpItem(Collider2D collision)
        {
            ItemDropComponent itemDropComponent = collision.gameObject.GetComponentInParent <ItemDropComponent>();

            if (itemDropComponent == null)
            {
                return;
            }
            if (itemDropComponent.GetInstanceID() != _interactableInstanceId)
            {
                return;
            }

            if (_inventoryComponent.InventoryIsFull())
            {
                Debug.LogError("Inventory Is Full while tryng to harverst seeds!");
                return;
            }

            ItemDTO itemDto = itemDropComponent.PickupThisItem();

            itemDropComponent.DestroyGameObject();
            _inventoryComponent.AddItem(itemDto);
            this.RemoveInteractableState();
        }
Ejemplo n.º 2
0
        public static void AddItemToPlayersInventory(TWEntity playerEntity, TWEntity itemOnEntity, ItemDropComponent itemDropComponent)
        {
            var inventoryComponent = playerEntity.GetComponentByType <InventoryComponent>();

            if (inventoryComponent != null)
            {
                var itemInInventory = inventoryComponent.Items.FirstOrDefault(x => x.Id == itemDropComponent.Item.Id);

                if (itemInInventory != null)
                {
                    itemInInventory.Quantity += itemDropComponent.Item.Quantity;
                }
                else
                {
                    inventoryComponent.AddItem(
                        new InventoryItem
                    {
                        Id       = itemDropComponent.Item.Id,
                        Name     = itemDropComponent.Item.Name,
                        Quantity = itemDropComponent.Item.Quantity
                    }
                        );
                }

                var itemToRemove = GetItemDropComponentOnEntity(itemOnEntity, itemDropComponent);

                if (itemToRemove != null)
                {
                    itemOnEntity.RemoveComponent(itemToRemove);
                }
            }
        }
Ejemplo n.º 3
0
 public static ItemDropComponent?GetItemDropComponentOnEntity(TWEntity entity, ItemDropComponent itemDropComponent)
 {
     return(entity.GetComponentsByType <ItemDropComponent>().FirstOrDefault(x => x.Item.Id == itemDropComponent.Item.Id));
 }