//items slots protected virtual void onBeginDrag(BasicItem _item, PointerEventData _eventData) { draggableItem = _item; //я не могу перетаскивать объекты которых нету iCanDrag = !draggableItem.IsEmpty(); if (!iCanDrag) { return; } isDrag = true; bufferItem.transform.position = _eventData.pointerCurrentRaycast.worldPosition; bufferItem.Item = draggableItem.Item; indexTake = slots.FindIndex(x => x.currentItem == draggableItem); RemoveItem(draggableItem.Item); draggableItem.Dispose(); NormalizedContainerBySlots(); BasicSlot slot = _item.GetComponentInParent <BasicSlot>(); indexThrow = slots.FindIndex(x => x == slot); slots[indexThrow].SetActiveRightHover(true); InventoryOverseer._instance.from = this; //от куда взял }
protected override void OnPointerClick(BasicItem _item, PointerEventData _eventData) { if (Interpreter._instance.isReadAssignments) { return; } if (!_item.IsEmpty() && WhithClicks) { if (InventoryOverseer._instance.put == null) { InventoryOverseer._instance.put = InventoryOverseer._instance.programmingContainers[1]; } if (InventoryOverseer._instance.put.gameObject.activeSelf) { int counter = 0; for (int i = 0; i < InventoryOverseer._instance.programmingContainers.Count; i++) { Container temp = InventoryOverseer._instance.programmingContainers[i]; if (!temp.isFull() && temp.gameObject.activeSelf) { InventoryOverseer._instance.put = temp; break; } else { counter++; } } if (counter != InventoryOverseer._instance.programmingContainers.Count) { InventoryOverseer._instance.put.AddItem(_item.Item); } } else { int counter = 0; for (int i = 0; i < InventoryOverseer._instance.programmingContainers.Count; i++) { Container temp = InventoryOverseer._instance.programmingContainers[i]; if (!temp.isFull() && temp.gameObject.activeSelf) { InventoryOverseer._instance.put = temp; break; } else { counter++; } } if (counter != InventoryOverseer._instance.programmingContainers.Count) { InventoryOverseer._instance.put.AddItem(_item.Item); } //OpenCloseFunction._instance.DeleteDisabledFunctions(); } } }
protected override void OnPointerClick(BasicItem _item, PointerEventData _eventData) { if (!isDrag) { if (!_item.IsEmpty()) //если слот не пуст то удаляем объект и нормализуем контэйнер { RemoveItem(_item.Item); _item.Dispose(); NormalizedContainerBySlots(); } } }
private void OnDrop(BasicSlot _slot, PointerEventData _eventData) //нельзя переобределять, тк функция OnDrop должна быть на каждом слоте { if (bufferItem.IsEmpty()) { return; } InventoryOverseer._instance.to = this; //куда положил Container to = this; if (!InventoryOverseer._instance.Verify() && !InventoryOverseer._instance.VerumTake(to)) //если перетащили в другой контейнер то добавили { if (indexThrow != -1) //если хотим добваить { if (!to.isFull()) { if (to.slots[indexThrow].IsEmpty()) { to.AddItem(bufferItem.Item); //добавляем в конец } else { to.InsertItemTo(bufferItem.Item); } } } else { print("+"); } } else { return; } isDrag = false; HightLightOff(); }
protected override void onBeginDrag(BasicItem _item, PointerEventData _eventData) { if (Interpreter._instance.isReadAssignments) { return; } draggableItem = _item; //я не могу перетаскивать объекты которых нету iCanDrag = !draggableItem.IsEmpty(); if (!iCanDrag) { return; } isDrag = true; SetCanvasGroup(draggableItem.canvasGroup, 0.6f, false); bufferItem.transform.position = _eventData.pointerCurrentRaycast.worldPosition; bufferItem.Item = draggableItem.Item; InventoryOverseer._instance.from = this; //от куда взял }
public bool IsEmpty() { return(currentItem.IsEmpty()); }