/** * Draw the inventory in a draggable window **/ public void OnInventoryWindow(int windowId) { Vector2 position = itemOffset; GUI.depth = InventoryLayer.MID; for (int x = 0; x < inventory.GetLength(0); x++) { for (int y = 0; y < inventory.GetLength(1); y++) { if (inventory[x, y] != null) { // create a UI.Draggable element InventoryItem item = inventory[x, y].GetComponent <InventoryItem>(); InventoryDraggableHandler draggableHandler = new InventoryDraggableHandler(gameObject, new InventoryPosition(x, y), inventory, item); UI.Draggable(new Rect(position.x, position.y, tilesize, tilesize), item.GetGUIContent(), new GUIStyle("button"), draggableHandler); } else { // create a UI.Slot InventorySlotHandler slotHandler = new InventorySlotHandler(gameObject, new InventoryPosition(x, y), inventory); UI.Slot(new Rect(position.x, position.y, tilesize, tilesize), new GUIStyle("button"), slotHandler); } position.x += tilesize; } position.y += tilesize; position.x = itemOffset.x; } // if there is no dragged item, // this window is draggable if (draggedItem.item == null) { GUI.DragWindow(draggableArea); } }
public void SetEquippedSlot(LootItem item, InventorySlotHandler equippedSlot) { foreach (var groupedItem in items) { if (groupedItem.id == item.id) { groupedItem.equiptedSlots.Add(equippedSlot); } } }