public void Initialize(OreStore oreStore, OresSettings oresSettings, OreStoreWindowController storeWindow)
 {
     this.oreStore     = oreStore;
     this.oresSettings = oresSettings;
     this.storeWindow  = storeWindow;
 }
Beispiel #2
0
    public TileProject[,] GenerateOres(int mapSizeX, int mapSizeY, int surfaceLevel, int bedrockSize, OresSettings oresSettings, TileMap groundPrefab)
    {
        OreToSpawn ore;

        tempTiles = new TileProject[mapSizeX, mapSizeY];

        for (int i = 0; i < oresSettings.ores.Count; i++)
        {
            ore           = new OreToSpawn();
            ore.ore       = oresSettings.ores[i].oreType;
            ore.settings  = oresSettings.ores[i].smallGroup;
            ore.groupSize = 0;
            ore.CalculateChances();
            waitingOres.Add(ore);
            ore           = new OreToSpawn();
            ore.ore       = oresSettings.ores[i].oreType;
            ore.settings  = oresSettings.ores[i].mediumGroup;
            ore.groupSize = 1;
            ore.CalculateChances();
            waitingOres.Add(ore);
            ore           = new OreToSpawn();
            ore.ore       = oresSettings.ores[i].oreType;
            ore.settings  = oresSettings.ores[i].largeGroup;
            ore.groupSize = 2;
            ore.CalculateChances();
            waitingOres.Add(ore);
        }

        for (int i = surfaceLevel + 1; i < mapSizeY - bedrockSize; i++)
        {
            CheckAvailability(i);
            for (int j = bedrockSize; j < mapSizeX - bedrockSize; j++)
            {
                for (int k = 0; k < readyOres.Count; k++)
                {
                    if (Randomize(readyOres[k].chancesPerRow[i]) && tempTiles[j, i] == null)
                    {
                        SpawnGroup(j, i, readyOres[k]);
                        break;
                    }
                }
            }
        }
        return(tempTiles);
    }