Exemple #1
0
    public void revert()
    {
        for (int i = 0; i < placedObjects.Count; i++)
        {
            placedObjects[i].SetActive(true);
            placedObjects[i].transform.position = staticPlacedObjects[i].transform.position + (new Vector3(0f, LevelManager.SCREEN_GAP, 0f));
            specialRevertLogic(placedObjects[i], staticPlacedObjects[i]);
        }

        for (int i = 0; i < backgroundPlacedObjects.Count; i++)
        {
            backgroundPlacedObjects[i].SetActive(true);
            backgroundPlacedObjects[i].transform.position = staticBackgroundPlacedObjects[i].transform.position + (new Vector3(0f, LevelManager.SCREEN_GAP, 0f));
            specialRevertLogic(backgroundPlacedObjects[i], staticBackgroundPlacedObjects[i]);
        }

        for (int i = 0; i < spawnedObjects.Count; i++)
        {
            GameObject.DestroyImmediate(spawnedObjects[i]);
        }
        spawnedObjects.Clear();

        for (int i = 0; i < resetListeners.Count; i++)
        {
            ICanReset r = resetListeners[i];

            if (((MonoBehaviour)r) != null)
            {
                r.reset();
            }
            else
            {
                resetListeners.Remove(r);
                i--;
            }
        }
    }
Exemple #2
0
 public void addResetListener(ICanReset r)
 {
     resetListeners.Add(r);
 }