void MoveToMouse()
    {
        Item item = inventory.InventoryList [slotID];

        // Taking from slot
        if (inventoryUI.GetItemAtMouse().itemName == "" && item.itemName != "")
        {
            inventoryUI.SetAtMouse(item, slotID, gameObject, GetComponent <InventorySlotData>());
            inventory.RemoveAtIndex(slotID);
            inventoryUI.GetSlotAtMouse().GetComponent <InventorySlotData> ().Empty();

            if (slotChangedEvent != null)
            {
                slotChangedEvent();
            }
        }

        // Putting in slot
        else
        {
            // Slot is empty
            if (inventory.InventoryList [slotID].itemName == "")
            {
                inventory.AddItemToInventory(inventoryUI.GetItemAtMouse(), slotID);
                InventorySlotData slotData = GetComponent <InventorySlotData> ();
                slotData.SetItem(inventory.InventoryList [slotID]);
                slotData.currentAmmo = inventoryUI.GetWeaponAmmoAtMouse();
                slotData.itemHealth  = inventoryUI.GetHealthAtMouse();
                slotData.SetItemHealth();
            }

            // Swap places
            else
            {
                InventorySlotData thisSlot  = GetComponent <InventorySlotData> ();
                InventorySlotData otherSlot = inventoryUI.GetSlotAtMouse().GetComponent <InventorySlotData> ();

                int heldAmmo = inventoryUI.GetWeaponAmmoAtMouse();  // the ammo of the item being moved
                int newAmmo  = thisSlot.currentAmmo;                // the ammo of this slot

                float heldHealth = inventoryUI.GetHealthAtMouse();  // the health of the item being moved
                float newHealth  = thisSlot.itemHealth;             // the health of this slot

                // Swap the slots
                inventory.AddItemToInventory(item, inventoryUI.GetIndexAtMouse());
                inventory.AddItemToInventory(inventoryUI.GetItemAtMouse(), slotID);

                // Replace the values
                thisSlot.currentAmmo  = heldAmmo;
                thisSlot.itemHealth   = heldHealth;
                otherSlot.currentAmmo = newAmmo;
                otherSlot.itemHealth  = newHealth;
            }

            inventoryUI.EmptyAtMouse();
        }
    }