public void OpenOrClose(bool open, bool inventory) //change values depending on if inventory is closed or open { Cursor.visible = open; //set cursor visability Cursor.lockState = open ? CursorLockMode.None : CursorLockMode.Locked; //set if cursor is movable look.enabled = !open; //enable and diasble scripts move.enabled = !open; shoot.enabled = !open; if (open && inventory) { LoadItems(); //create buttons MasterUpdate(); //update buttons text Time.timeScale = 0; } if (!open && inventory) { RemoveItems(); //remove all items Time.timeScale = 1; } if (!open && !playerInv.swapLoot.empty && inventory) { playerInv.Drop(playerInv.swapLoot.num, playerInv.swapLoot.amount, true, 0, GameObject.Find("Player").transform); //drop loot in swap loot slot if it's not empty } if (inventory) { playerInv.swapLoot = AllLoot.Empty(); // set swap loot to empty for safety playerInv.RemoveEmpties(); //remove all empty slots in inventory canvas.alpha = open ? 1 : 0; //set visability canvas.interactable = open; //set interactability canvas.blocksRaycasts = open; //set raycast blockage } }
public void Drop(int lootNum, int amount, bool swapItem, int index, Transform dropPos) //moves an item from inventory to game world, needs loot num to identify it, swap bool to know if it's in loot or swapLoot slot, needs index if it's not and a transform to know where to drop it { LootSpawner.SpawnLoot(lootNum, amount, dropPos); //spawns the loot if (swapItem) { swapLoot = AllLoot.Empty(); //remove it from swapLoot slot } if (!swapItem) { Remove(loots[index]); //currently unused, but the idea is the you can drop it directly from you inventory with a keyboard shortcut, remove it from inventory } }
private void Start() { playerInv = Ii.myInv; playerInv.swapLoot = AllLoot.Empty(); //set swap loot to empty for safety OpenOrClose(false, true); //have inventory closed when starting }