public bool ChangeItemSlot(Item item, InventorySlot slot) { if (slot.Occupied != true) { var prevslot = item.GetParent(); if (typeof(InventorySlot) != prevslot.GetType()) { return(false); } InventorySlot PreviousSlot = (InventorySlot)prevslot; PreviousSlot.RemoveChild(item); PreviousSlot.Occupied = false; PreviousSlot.Item = null; slot.AddChild(item); slot.Item = item; slot.Occupied = true; return(true); } else { return(false); } }