Ejemplo n.º 1
0
    //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;        //от куда взял
    }
Ejemplo n.º 2
0
 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();
         }
     }
 }
Ejemplo n.º 3
0
 protected override void OnPointerClick(BasicItem _item, PointerEventData _eventData)
 {
     if (!isDrag)
     {
         if (!_item.IsEmpty())              //если слот не пуст то удаляем объект и нормализуем контэйнер
         {
             RemoveItem(_item.Item);
             _item.Dispose();
             NormalizedContainerBySlots();
         }
     }
 }
Ejemplo n.º 4
0
    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();
    }
Ejemplo n.º 5
0
    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;        //от куда взял
    }
Ejemplo n.º 6
0
 public bool IsEmpty()
 {
     return(currentItem.IsEmpty());
 }