public void OnSlotClick(Slot slot) { if (MouseStorage == null) { MouseStorage = slot.Item; slot.Item = null; if (MouseStorage != null) { slot.OnItemRemove(MouseStorage); } } else { if (slot.AcceptsItem(MouseStorage)) { if (slot.Item == null) { slot.Item = MouseStorage; slot.OnItemAdd(slot.Item); MouseStorage = null; } else { var tmp = MouseStorage; MouseStorage = slot.Item; slot.Item = tmp; slot.OnItemRemove(MouseStorage); slot.OnItemAdd(tmp); } } } }