Ejemplo n.º 1
0
    IEnumerator SmartInitZoo()
    {
        int order = 1;

        while (added < init.Count && order <= max_order)
        {
            for (int i = 0; i < init.Count; i++)
            {
                Poolette p = init[i];
                if (zoo.ContainsKey(p.name))
                {
                    added++; continue;
                }
                if (p.order == order)
                {
                    Pool pool = new Pool(p.name, p.count);
                    pool.non_refundable          = p.non_refundable;
                    pool.require_explicit_return = p.require_explicit_return;
                    int need = p.count;

                    foreach (GameObject obj in p.objects)
                    {
                        //			Debug.Log("PREADDED " + p.name + "\n");
                        SetObject(obj, ref pool, p.name);
                        need--;
                    }

                    while (need > 0)
                    {
                        AddToPool(ref pool, p.name, 1);
                        need--;
                        yield return(new WaitForEndOfFrame());
                    }

                    if (!zoo.ContainsKey(p.name))
                    {
                        zoo.Add(p.name, pool);
                    }
                    added++;
                }
            }
            order++;
        }
//		Debug.Log("Done with smarrt init\n");
        yield return(null);
    }
Ejemplo n.º 2
0
    public void InitZoo()
    {
        // ORDER 0 IS MANDATORY BEFORE LEVEL STARTS
        for (int i = 0; i < init.Count; i++)
        {
            Poolette p = init[i];
            if (p.order > max_order)
            {
                max_order = p.order;
            }
            if (p.order > 0)
            {
                continue;
            }
            if (zoo.ContainsKey(p.name))
            {
                added++; continue;
            }

            Pool pool = new Pool(p.name, p.count);
            pool.non_refundable          = p.non_refundable;
            pool.require_explicit_return = p.require_explicit_return;
            int need = p.count;
            foreach (GameObject obj in p.objects)
            {
                //		Debug.Log("PREADDED " + p.name + "\n");
                SetObject(obj, ref pool, p.name);
                need--;
            }


            if (need > 0)
            {
                AddToPool(ref pool, p.name, need);
            }

            if (pool.count > 0)
            {
                //		Debug.Log("Added " + p.name + " to zoo\n");
                zoo.Add(p.name, pool);
            }
            added++;
        }
    }