public void BroadcastItemAdd(Pickupable pickupable, Transform containerTransform) { NitroxId itemId = NitroxEntity.GetId(pickupable.gameObject); byte[] bytes = SerializationHelper.GetBytesWithoutParent(pickupable.gameObject); NitroxId ownerId = InventoryContainerHelper.GetOwnerId(containerTransform); ItemData itemData; Plantable plant = pickupable.GetComponent <Plantable>(); if (plant && plant.currentPlanter) { // special case: we want to remember the time when the plant was added, so we can simulate growth itemData = new PlantableItemData(ownerId, itemId, bytes, DayNightCycle.main.timePassedAsDouble); } else { itemData = new ItemData(ownerId, itemId, bytes); } if (packetSender.Send(new ItemContainerAdd(itemData))) { Log.Debug($"Sent: Added item {pickupable.GetTechType()} to container {containerTransform.gameObject.GetHierarchyPath()}"); } }
public void BroadcastItemRemoval(Pickupable pickupable, Transform containerTransform) { NitroxId itemId = NitroxEntity.GetId(pickupable.gameObject); if (packetSender.Send(new ItemContainerRemove(InventoryContainerHelper.GetOwnerId(containerTransform), itemId))) { Log.Debug($"Sent: Removed item {pickupable.GetTechType()} from container {containerTransform.gameObject.GetHierarchyPath()}"); } }