public bool checkPosOfGrid(int i, int j, ItemDraggable itemDraggable) { int index = MapGridToList(i, j); bool isEmpty = slotsEmpty[index]; if (itemDraggable != null && !isEmpty && slots[index].GetComponent<Slots>().itemID == itemDraggable.GetInstanceID()) { isEmpty = true; } return isEmpty; }
public void OnDrop(PointerEventData eventData) { if (!occupied) { occupied = true; ItemDraggable droppedItem = eventData.pointerDrag.GetComponent<ItemDraggable>(); inventory.occupyGridWithItem(droppedItem.sizeX, droppedItem.sizeY, droppedItem.slotId, true, null); droppedItem.slotId = -1; currentItem = droppedItem; ((RectTransform)(droppedItem.gameObject.transform)).pivot = new Vector2(0.5f, 0.5f); droppedItem.transform.SetParent(this.transform); } }
public bool checkPositionsAreEmpty(int sizeX, int sizeY, int i, ItemDraggable itemDraggable = null) { int initI = i; bool isEmpty = true; for (; i < initI + sizeX; i++) { for (int j = 0; j < sizeY; j++) { if (MapGridToList(i, j) >= SIZE_OF_INVENTORY) return false; isEmpty &= checkPosOfGrid(i, j, itemDraggable); } } return isEmpty; }
public void occupyGridWithItem(int sizeX, int sizeY, int startPos, bool empty, ItemDraggable itemDraggable) { if (startPos < 0) return; Color colorToPaint; for (int i = startPos; i < startPos + sizeX; i++) { for (int j = 0; j < sizeY; j++) { int index = MapGridToList(i, j); if (empty) colorToPaint = Color.white; else colorToPaint = Color.red; slots[index].GetComponent<Image>().color = colorToPaint; if (itemDraggable!=null) slots[index].GetComponent<Slots>().itemID = itemDraggable.GetInstanceID(); slotsEmpty[index] = empty; } } }