コード例 #1
0
    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();
        }
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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();
        }
    }