예제 #1
0
    //ici on ajoute en donnée l'item
    public void AddItem(InvPrefab item)
    {
        Boolean exist = false;

        //on verifie qu'il n'existe pas déja un tableau de l'item
        foreach (List <InvPrefab> l in lItems)
        {
            if (l[0].Name.Equals(item.Name))
            {
                l.Add(item);
                ItemRemplace(this, new InvEventArgs(item));
                item.OnPickup();
                exist = true;
                break;
            }
        }

        //sinon on l'ajoute a un slot libre
        if (lItems.Count < SLOTS && !exist)
        {
            List <InvPrefab> nouveau = new List <InvPrefab>();
            nouveau.Add(item);
            lItems.Add(nouveau);

            item.OnPickup();
            if (ItemAdded != null)
            {
                ItemAdded(this, new InvEventArgs(item));
            }
        }
    }
예제 #2
0
    //ici on ajoute en UI
    private void Inventory_ItemAdded(object sender, InvEventArgs e)
    {
        InvPrefab item           = e.Item;
        Transform inventoryPanel = transform.Find("Inventory pannel");

        foreach (Transform slot in inventoryPanel)
        {
            Transform       comp            = slot.GetChild(0).GetChild(0);
            Image           image           = comp.GetComponent <Image>();
            ItemDragHandler itemDragHandler = comp.GetComponent <ItemDragHandler>();
            Text            label           = comp.GetChild(0).GetComponent <Text>();


            if (!image.enabled)
            {
                image.enabled = true;
                image.sprite  = item.Image;

                int txt = inventaire.nombreItem(e.Item);
                label.text = txt.ToString();

                itemDragHandler.Item = item;

                break;
            }
        }
    }
예제 #3
0
    //Initialisation avec des prefab qui seront choisit pour completer la quête
    public void Awake()
    {
        inventaire.ItemRemplace += Inventory_ItemRemplace;
        inventaire.ItemAdded    += Inventory_ItemAdded;

        Transform parent = transform.Find("Inventory pannel");

        for (int i = 0; i < 9; i++)
        {
            GameObject ob = Instantiate(Resources.Load("slot", typeof(object))) as GameObject;
            ob.transform.SetParent(parent);
        }


        for (int i = 0; i < 3; i++)
        {
            InvPrefab obj = Instantiate(Resources.Load("Cube", typeof(Cube))) as InvPrefab;
            if (obj != null)
            {
                inventaire.AddItem(obj);
            }
        }

        // GameObject obj = GameObject.Instantiate((GameObject)Resources.Load("Cube.prefab"));
        // si l'instanciation a réussi on ajoute
    }
예제 #4
0
    public void OnDrop(PointerEventData eventData)
    {
        RectTransform invPanel = transform as RectTransform;

        if (!RectTransformUtility.RectangleContainsScreenPoint(invPanel, Input.mousePosition))
        {
            InvPrefab item = eventData.pointerDrag.gameObject.GetComponent <ItemDragHandler>().Item;
            inventaire.RemoveItem(item);
        }
    }
예제 #5
0
 public int nombreItem(InvPrefab item)
 {
     foreach (List <InvPrefab> l in lItems)
     {
         if (l[0].Name.Equals(item.Name))
         {
             return(l.Count);
         }
     }
     return(0);
 }
예제 #6
0
    public void RemoveItem(InvPrefab item)
    {
        foreach (List <InvPrefab> l in lItems)
        {
            if (l[0].Name.Equals(item.Name))
            {
                print(l.Count);
                if (l.Count > 1)
                {
                    l.RemoveAt(l.Count - 1);
                    if (ItemRemoved != null)
                    {
                        ItemRemplace(this, new InvEventArgs(l[l.Count - 1]));
                        print("remplace");
                    }
                    break;
                }
                else
                {
                    lItems.Remove(l);
                    if (ItemRemoved != null)
                    {
                        print("suppr");
                        ItemRemoved(this, new InvEventArgs(item));
                    }

                    break;
                }
            }
        }
        item.OnDrop();
        /////////////////////////////

        Collider collider = (item as MonoBehaviour).GetComponent <Collider>();

        if (collider != null)
        {
            collider.enabled = true;
        }
    }
예제 #7
0
 public InvEventArgs(InvPrefab item){
   Item = item;
 }