/// <summary> /// Carga un nivel, instanciando un memento del mismo /// </summary> /// <param name="gridMemento"></param> public void Load(GridMemento gridMemento) { Debug.Log("Cargando memento del nivel \"" + _currentLevelInfo.LevelName + "\""); // Instancia las clases de memento si no estaban instanciadas if (_gridOriginator == null) { _gridOriginator = new GridOriginator(_currentLevelInfo.Size); } if (_gridCaretaker == null) { _gridCaretaker = new GridCaretaker(10); } // Spawnea los bloques foreach (var blockState in gridMemento.BlocksState) { Level.Instance.SpawnBlock(blockState); } // Spawnea los characters foreach (var charState in gridMemento.CharactersState) { Level.Instance.SpawnCharacter(charState, true); } }
/// <summary> /// Establece un nuevo estado a la grilla /// </summary> /// <param name="memento">Estado deseado</param> public void SetMemento(GridMemento memento) { // Destruye todos los objetos Level.Instance.Clear(); // Carga el memento Level.Instance.Load(memento); }
/// <summary> /// Agrega un nuevo memento /// </summary> /// <param name="gridMemento">Memento a agregar</param> public void Push(GridMemento gridMemento) { _stack.Push(gridMemento); }