private void SyncWorkingTileData() { WorkingTileData.Clear(); for (int i = 0; i < tileParent.childCount; i++) { Transform tile = tileParent.GetChild(i); PLEBlockUnit blockUnit = tile.GetComponent <PLEBlockUnit>(); if (blockUnit) { List <LevelUnitStates> levelStates = blockUnit.GetLevelStates(); int tileType = blockUnit.TileType; TileData tileData = new TileData(tileType, tile.position, levelStates); WorkingTileData.Add(tileData); } } }
private void UpdateTiles(List <GridTile> tiles, LevelUnitStates state, bool wasToldToChangeColor) { if (tiles.Count == 0) { return; } SFXManager.Instance.Play(SFXType.UI_Click); int currentWaveIndex = PLESpawnManager.Instance.CurrentWaveIndex; for (int i = 0; i < tiles.Count; i++) { GridTile tile = tiles[i]; PLEBlockUnit blockUnit = tile.blockUnit; LevelUnit levelUnit = tile.levelUnit; if (!blockUnit.HasActiveSpawn) { List <LevelUnitStates> levelUnitStates = blockUnit.GetLevelStates(); levelUnitStates[currentWaveIndex] = state; blockUnit.SyncTileStatesAndColors(); levelUnit.TryTransitionToState(state, wasToldToChangeColor); } } }