public override void OnEvent(DestroyPickUp evnt) { if (!this.ValidateSender(evnt, SenderTypes.Any)) { return; } if (evnt.PickUpEntity) { if (evnt.PickUpEntity.isAttached) { if (evnt.PickUpEntity.isOwner) { if (evnt.PickUpEntity.StateIs <ISuitcaseState>()) { if (evnt.SibblingId >= 0) { ISuitcaseState state = evnt.PickUpEntity.GetState <ISuitcaseState>(); state.FlaresPickedUp |= 1 << evnt.SibblingId; } else { evnt.PickUpEntity.GetState <ISuitcaseState>().ClothPickedUp = true; } } else if (evnt.PickUpEntity.StateIs <IGardenDirtPileState>()) { BoltNetwork.Destroy(evnt.PickUpEntity); } else { if (evnt.FakeDrop) { if (evnt.PickUpPlayer == LocalPlayer.Entity) { LocalPlayer.Inventory.FakeDrop(evnt.ItemId, null); } else { PlayerAddItem playerAddItem = PlayerAddItem.Create(evnt.PickUpPlayer.source); playerAddItem.ItemId = evnt.ItemId; playerAddItem.Amount = 1; playerAddItem.Player = evnt.PickUpPlayer; playerAddItem.Send(); } } PickUp componentInChildren = evnt.PickUpEntity.GetComponentInChildren <PickUp>(); if (componentInChildren && !componentInChildren.TryPool()) { componentInChildren.CheckTrappedAnimal(); BoltNetwork.Destroy(evnt.PickUpEntity); } } } else { DestroyPickUp destroyPickUp = DestroyPickUp.Raise(evnt.PickUpEntity.source); destroyPickUp.PickUpEntity = evnt.PickUpEntity; destroyPickUp.Send(); } } } else if (evnt.PickUpPlayer.isOwner) { ItemRemoveFromPlayer itemRemoveFromPlayer = ItemRemoveFromPlayer.Create(GlobalTargets.OnlySelf); itemRemoveFromPlayer.ItemId = evnt.ItemId; itemRemoveFromPlayer.Send(); } else { ItemRemoveFromPlayer itemRemoveFromPlayer2 = ItemRemoveFromPlayer.Create(evnt.PickUpPlayer.source); itemRemoveFromPlayer2.ItemId = evnt.ItemId; itemRemoveFromPlayer2.Send(); } }