private void GenerateCostal() { NoiseRiver.AttachMap(GenerationMap, GetCurrentBiomeTileSet().Water); NoiseGroundTiles.GenerateGroundTiles(GenerationMap, GetCurrentBiomeTileSet().GroundTiles); ForestGenerator.GenerateTreesForForest(GenerationMap); int coastLineSide = CoastLineGenerator.GenerateCoastline(GenerationMap, GetCurrentBiomeTileSet().Water); //X 0 X //1 X 3 //X 2 X if (HasRivers) { int riverStartPoint = Mathf.FloorToInt(Width * UnityEngine.Random.Range(0.1F, 0.9F)); switch (coastLineSide) { case 0: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(riverStartPoint, 0), GetCurrentBiomeTileSet().Water); break; case 1: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(0, riverStartPoint), GetCurrentBiomeTileSet().Water); break; case 2: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(riverStartPoint, Height), GetCurrentBiomeTileSet().Water); break; case 3: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(Width, riverStartPoint), GetCurrentBiomeTileSet().Water); break; default: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(riverStartPoint, 0), GetCurrentBiomeTileSet().Water); break; } } if (HasPaths) { GeneratePaths(); } }
public static int GenerateCoastline(GameMap _generationMap, Tile _waterTile) { map = _generationMap; WaterTile = _waterTile; int coastlineMapDepth = Mathf.FloorToInt(GenerationManager.instance.Width * UnityEngine.Random.Range(0.2F, 0.5F)); int coastlineSide = UnityEngine.Random.Range(0, 4); Debug.Log(coastlineSide); switch (coastlineSide) { //X 0 X //1 X 3 //X 2 X case 0: NoiseRiver.GenerateStraightSection(new MapPoint(0, coastlineMapDepth)); ApplyWaterVertical(0, 1); break; case 1: NoiseRiver.GenerateStraightSection(new MapPoint(coastlineMapDepth, 0)); ApplyWaterHorizontal(0, 1); break; case 2: NoiseRiver.GenerateStraightSection(new MapPoint(GenerationManager.instance.Width, GenerationManager.instance.Height - coastlineMapDepth)); ApplyWaterVertical(GenerationManager.instance.Height, -1); break; case 3: NoiseRiver.GenerateStraightSection(new MapPoint(GenerationManager.instance.Width - coastlineMapDepth, GenerationManager.instance.Height)); ApplyWaterHorizontal(GenerationManager.instance.Width, -1); break; default: NoiseRiver.GenerateStraightSection(new MapPoint(0, coastlineMapDepth)); break; } return(coastlineSide); }
private void GeneratePlains() { NoiseGroundTiles.GenerateGroundTiles(GenerationMap, GetCurrentBiomeTileSet().GroundTiles); ForestGenerator.GenerateTreesForForest(GenerationMap); //Creating Rivers if (HasRivers) { int numRivers = 0; //numRivers = UnityEngine.Random.Range(0, 4); switch (Width) { case 72: numRivers = 1; break; case 96: numRivers = 1; break; case 120: numRivers = UnityEngine.Random.Range(1, 3); break; case 144: numRivers = UnityEngine.Random.Range(1, 3); break; case 200: numRivers = UnityEngine.Random.Range(2, 4); break; //case 255: // DifferentSizeIslands.GenerateGiganticIslands(GenerationMap, tilePool.GetTileSetFromBiomeType(SelectedMapBiome)[0]); // break; default: break; } int r = 0; while (r < numRivers) { int riverStartPoint = Mathf.FloorToInt(Width * UnityEngine.Random.Range(0.1F, 0.9F)); int startAxis = UnityEngine.Random.Range(0, 4); switch (startAxis) { //X 2 X //1 X 3 //X 4 X case 0: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(0, riverStartPoint), GetCurrentBiomeTileSet().Water); break; case 1: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(riverStartPoint, Height), GetCurrentBiomeTileSet().Water); break; case 2: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(Width, riverStartPoint), GetCurrentBiomeTileSet().Water); break; case 3: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(riverStartPoint, Height), GetCurrentBiomeTileSet().Water); break; default: NoiseRiver.BuildRiverFromMapEdge(GenerationMap, new MapPoint(0, riverStartPoint), GetCurrentBiomeTileSet().Water); break; } r++; } } if (HasPaths) { GeneratePaths(); } }