public static Cell[] GenerateReserveLeft(GameObject parent, LevelDescription level, SaveData saveData = null) { int[] reserve = level.GetLeftReserve(); if (reserve == null) { return(null); } Cell[] leftReserve = new Cell[level.H]; for (int j = 0; j < level.H; j++) { int count = reserve[j]; if (saveData != null) { count = saveData.MapContainerLeft[j]; } CellContainer cell = InstantiateCell(parent, containerPrefab, new Vector2Int(-1, j), new Vector2((0), j)) as CellContainer; leftReserve[j] = cell; for (int k = 0; k < count; k++) { InstantiateStone(cell, stonePrefab); } } return(leftReserve); }
public static void Replay(LevelDescription level, Cell[,] map, Cell[] left, Cell[] up) { int[,] mapData = level.GetMap(); if (mapData == null) { return; } for (int i = 0; i < map.GetLength(0); i++) { for (int j = 0; j < map.GetLength(1); j++) { map[i, j].Clear(); int needStone = 0; int hasStone = 0; int type = 1; GetCellSaveData(mapData[i, j], out type, out hasStone, out needStone); for (int k = 0; k < hasStone; k++) { SetStone(map[i, j]); } } } int[] reserveLeft = level.GetLeftReserve(); if (reserveLeft == null) { return; } int[] reserveUp = level.GetUpReserve(); if (reserveLeft == null) { return; } for (int i = 0; i < left.Length; i++) { left[i].Clear(); int count = reserveLeft[i]; for (int k = 0; k < count; k++) { SetStone(left[i]); } } for (int i = 0; i < up.Length; i++) { up[i].Clear(); int count = reserveUp[i]; for (int k = 0; k < count; k++) { SetStone(up[i]); } } }