public void Open(Tapestry_Inventory _leftInv, Tapestry_EquipmentProfile _equip, Tapestry_Inventory _rightInv = null, string _leftName = "Inventory", string _rightName = "Target")
    {
        left.Clear();
        right.Clear();
        this.gameObject.SetActive(true);
        _isOpen = true;
        Tapestry_WorldClock.IsPaused = true;
        left.Init(displayPrefab, _leftInv, _leftName, _equip);
        leftInv   = _leftInv;
        leftName  = _leftName;
        player    = FindObjectOfType <Tapestry_Player>();
        equipment = _equip;

        if (_rightInv == null)
        {
            right.gameObject.SetActive(false);
        }
        else
        {
            right.gameObject.SetActive(true);
            right.Init(displayPrefab, _rightInv, _rightName);
            rightInv  = _rightInv;
            rightName = _rightName;
        }
    }
 public void Close()
 {
     this.gameObject.SetActive(false);
     _isOpen = false;
     Tapestry_WorldClock.IsPaused = false;
     left.Clear();
     right.Clear();
     leftInv   = null;
     rightInv  = null;
     equipment = null;
 }
 // Use this for initialization
 void Start()
 {
     if (effects == null)
     {
         effects = new List <Tapestry_Effect>();
     }
     if (ReferenceEquals(equipmentProfile, null))
     {
         equipmentProfile = (Tapestry_EquipmentProfile)ScriptableObject.CreateInstance("Tapestry_EquipmentProfile");
     }
     InitializeActorValues();
 }
    public virtual void Equip(Tapestry_ItemData item, Tapestry_EquipSlot slot)
    {
        if (ReferenceEquals(equipmentProfile, null))
        {
            equipmentProfile = (Tapestry_EquipmentProfile)ScriptableObject.CreateInstance("Tapestry_EquipmentProfile");
        }

        //foreach(Tapestry_ItemStack id in inventory.items)
        for (int i = inventory.items.Count - 1; i >= 0; i--)
        {
            if (inventory.items[i].item.Equals(item))
            {
                equipmentProfile.Equip(slot, item);
                inventory.RemoveItem(item, 1);
            }
        }
    }
    public void Init(Tapestry_UI_InventoryDisplayTextElement displayPrefab, Tapestry_Inventory inv, string inventoryName, Tapestry_EquipmentProfile eq = null)
    {
        title.text = inventoryName;

        elements = new List <Tapestry_UI_InventoryDisplayTextElement>();
        int y      = -24;
        int height = 24;

        if (!ReferenceEquals(eq, null))
        {
            if (eq.GetNumberOfEquippedItems() == 0)
            {
                Tapestry_UI_InventoryDisplayTextElement e =
                    (Tapestry_UI_InventoryDisplayTextElement)Instantiate(displayPrefab, content);
                e.GetComponent <RectTransform>().localPosition = new Vector3(e.GetComponent <RectTransform>().localPosition.x, y, 0);
                e.title.text    = "<i>Nothing equipped</i>";
                e.title.color   = new Color(1, 1, 1, 0.5f);
                e.quantity.text = "";
                e.size.text     = "";
                elements.Add(e);
                y      -= 24;
                height += 24;
            }
            else
            {
                Dictionary <Tapestry_EquipSlot, Tapestry_ItemStack> dict = eq.ToDict();
                foreach (Tapestry_EquipSlot slot in dict.Keys)
                {
                    Tapestry_UI_InventoryDisplayTextElement e =
                        (Tapestry_UI_InventoryDisplayTextElement)Instantiate(displayPrefab, content);
                    e.GetComponent <RectTransform>().localPosition = new Vector3(e.GetComponent <RectTransform>().localPosition.x, y, 0);
                    e.SetData(dict[slot]);
                    y               -= 24;
                    height          += 24;
                    e.equippedInSlot = slot;
                    if (slot == Tapestry_EquipSlot.LeftHand)
                    {
                        e.SetEquippedState(1);
                    }
                    else if (slot == Tapestry_EquipSlot.RightHand)
                    {
                        e.SetEquippedState(2);
                    }
                    else if (slot == Tapestry_EquipSlot.BothHands)
                    {
                        e.SetEquippedState(3);
                    }
                    else
                    {
                        e.SetEquippedState(4);
                    }
                    elements.Add(e);
                }
            }
        }
        if (inv.items.Count == 0)
        {
            Tapestry_UI_InventoryDisplayTextElement e =
                (Tapestry_UI_InventoryDisplayTextElement)Instantiate(displayPrefab, content);
            e.GetComponent <RectTransform>().localPosition = new Vector3(e.GetComponent <RectTransform>().localPosition.x, y, 0);
            e.title.text    = "<i>No items</i>";
            e.title.color   = new Color(1, 1, 1, 0.5f);
            e.quantity.text = "";
            e.size.text     = "";
            elements.Add(e);
            y      -= 24;
            height += 24;
        }
        else
        {
            foreach (Tapestry_ItemStack stack in inv.items)
            {
                Tapestry_UI_InventoryDisplayTextElement e =
                    (Tapestry_UI_InventoryDisplayTextElement)Instantiate(displayPrefab, content);
                e.GetComponent <RectTransform>().localPosition = new Vector3(e.GetComponent <RectTransform>().localPosition.x, y, 0);
                e.SetData(stack);
                y      -= 24;
                height += 24;
                elements.Add(e);
            }
        }
        height += 24;
    }