public TileData(DataSaver.TileData dat, int _x, int _y) { height = dat.height; material = dat.material; oreType = dat.oreType; oreAmount = dat.oreAmount; x = _x; y = _y; }
public void LoadTiles() { mapGen.Clear(); bool loadDataExists = DataSaver.s.mySave.tileData != null; if (loadDataExists) { if (DataSaver.s.mySave.tileData != null && DataSaver.s.mySave.tileData.Length > 0) { int xLength = DataSaver.s.mySave.tileData.GetLength(0); int yLength = DataSaver.s.mySave.tileData.GetLength(0); int[,] materials = new int [xLength, yLength]; int[,] height = new int[xLength, yLength]; int[][,] oreAmounts = new int[DataHolder.s.GetAllOres().Length][, ]; for (int i = 0; i < DataHolder.s.GetAllOres().Length; i++) { oreAmounts[i] = new int[xLength, yLength]; } myTiles = new TileData[xLength, yLength]; for (int x = 0; x < DataSaver.s.mySave.tileData.GetLength(0); x++) { for (int y = 0; y < DataSaver.s.mySave.tileData.GetLength(1); y++) { DataSaver.TileData dat = DataSaver.s.mySave.tileData[x, y]; myTiles[x, y] = new TileData(dat, x, y); materials[x, y] = dat.material; height[x, y] = dat.height; if (dat.oreType > 0 && dat.oreType <= oreAmounts.GetLength(0)) { oreAmounts[dat.oreType - 1][x, y] = Mathf.CeilToInt(dat.oreAmount / 10000f); } } } mapGen.LoadMap(materials, height); for (int i = 0; i < DataHolder.s.GetAllOres().Length; i++) { mapGen.LoadResources(oreAmounts[i], DataHolder.s.GetAllOres()[i]); } Debug.Log("Map successfully loaded"); } else { GenerateTiles(); } } }