public async Task PickupItemHandler(PickupItemMessage message, Player player) { if (message.Loot == default) { Logger.Error($"{player} is trying to pick up invalid item."); return; } await player.OnLootPickup.InvokeAsync(message.Loot.Lot); Object.Destroy(message.Loot); await player.GetComponent <InventoryManagerComponent>().AddItemAsync(message.Loot.Lot, 1); }
public async Task PickupItemHandler(PickupItemMessage message, Player player) { Logger.Debug($"{player} TRYING picking up {message.Loot}"); await Lock.WaitAsync(); Lot loot = default; try { if (message.Loot != default && message.Loot.Alive) { loot = message.Loot.Lot; Object.Destroy(message.Loot); } else { Logger.Error($"{player} is trying to pick up invalid item."); } } finally { Lock.Release(); } if (loot == default) { return; } Logger.Debug($"{player} picking up {loot}"); await player.OnLootPickup.InvokeAsync(loot); await player.GetComponent <InventoryManagerComponent>().AddLotAsync(loot, 1, lootType: LootType.Pickup); }
private void OnPickedUpItem(PickupItemMessage msg) { Debug.Log("Grabbing " + msg.ItemPickedUp.name + " with hand " + msg.Hand); _currentlyGrabbedItems[msg.Hand] = msg.ItemPickedUp.GetComponent<WeaponPiece>(); }