示例#1
0
 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;
 }
示例#2
0
    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();
            }
        }
    }