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(); }
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); } } }
public static ItemDropComponent?GetItemDropComponentOnEntity(TWEntity entity, ItemDropComponent itemDropComponent) { return(entity.GetComponentsByType <ItemDropComponent>().FirstOrDefault(x => x.Item.Id == itemDropComponent.Item.Id)); }