Пример #1
0
        public void OnSlotChange(InventoryUISlot newSlot, InventoryUIObject inventoryUIObject)
        {
            bool isSpecial = inventoryUIObject.GetInventoryObject() == inventory.GetSpecialInventoryObject();

            // normal object to special
            if (isSpecial == false && newSlot == slotSpecial)
            {
                inventory.MoveNormalInventoryObjectToSpecial(inventoryUIObject.GetInventoryObject());
            }

            // special object to normal
            if (isSpecial && newSlot != slotSpecial)
            {
                inventory.MoveSpecialInventoryObjectToNormal(inventoryUIObject.GetInventoryObject());
            }

            // set wish pos
            if (newSlot != slotSpecial)
            {
                inventoryUIObject.GetInventoryObject().SetCurrentPos(slots.IndexOf(newSlot));
            }
            else
            {
                inventoryUIObject.GetInventoryObject().SetCurrentPos(0);
            }
        }
Пример #2
0
 public void SelectInventoryUIObject(InventoryUIObject inventoryUIObject)
 {
     textTitle.text       = inventoryUIObject.GetInventoryObject().GetTitle();
     textDescription.text = inventoryUIObject.GetInventoryObject().GetDescription();
     panelDescription.SetActive(true);
     currentSelectedInventoryUIObject = inventoryUIObject;
 }
Пример #3
0
        public bool AddInventoryObject(InventoryObject inventoryObject, bool isSpecial = false)
        {
            InventoryUISlot nextFreeSlot;

            // get next free slot
            if (isSpecial && slotSpecial.IsEmpty())
            {
                nextFreeSlot = slotSpecial;
            }
            else
            {
                nextFreeSlot = GetNextFreeSlot(inventoryObject.GetCurrentPos());
            }

            if (nextFreeSlot != null)
            {
                // create new inventory ui object from template
                GameObject templateClone = Instantiate(inventoryUIObjectTemplate.gameObject, Vector3.zero, Quaternion.identity);
                templateClone.SetActive(true);
                templateClone.name = inventoryObject.GetTitle();

                // link it with the slot
                InventoryUIObject newInventoryUIObject = templateClone.GetComponent <InventoryUIObject>();
                newInventoryUIObject.SetInventoryObject(inventoryObject);
                newInventoryUIObject.SetCurrentSlot(nextFreeSlot);
                newInventoryUIObject.GetTransform().localScale = inventoryUIObjectTemplate.GetTransform().localScale;

                nextFreeSlot.Init(this);

                return(true);
            }

            return(false);
        }
Пример #4
0
 public void OnBeginDrag(PointerEventData eventData)
 {
     currentObject = this;
     currentObject.GetTransform().SetParent(emptyParent);
     currentObject.GetTransform().SetAsFirstSibling();
     startSlot = currentObject.GetCurrentSlot();
 }
Пример #5
0
        public void OnEndDrag(PointerEventData eventData)
        {
            // this is true if we are outside the UI

            /*
             * if (EventSystem.current.IsPointerOverGameObject(eventData.pointerId) == false)
             * {
             *  // do interesting stuff
             * }
             */

            if (startSlot == GetCurrentSlot())
            {
                GetTransform().SetParent(GetCurrentSlot().GetTransform());
                GetTransform().localPosition = Vector3.zero;
            }

            currentObject = null;
        }
 public void OnDrop(InventoryUIObject inventoryUIObject)
 {
     Instantiate(inventoryUIObject.GetInventoryObject().GetPrefab(), transform.position, Quaternion.identity);
     onDrop.Invoke();
 }
Пример #7
0
 public void SetInventoryUIObject(InventoryUIObject obj)
 {
     inventoryUIObject = obj;
 }