public override void ActivateSlot(ItemSlot sourceSlot, ref ItemStackMoveOperation op) { if (Empty) { return; } if (sourceSlot.CanHold(this)) { if (sourceSlot.Itemstack != null && sourceSlot.Itemstack != null && sourceSlot.Itemstack.Collectible.GetMergableQuantity(sourceSlot.Itemstack, itemstack, op.CurrentPriority) < itemstack.StackSize) { return; } op.RequestedQuantity = StackSize; TryPutInto(sourceSlot, ref op); if (op.MovedQuantity > 0) { OnItemSlotModified(itemstack); } } }