コード例 #1
0
    //Swamp terrain - 10
    public void MakeSwampTerrain()
    {
        System.Random random = new System.Random();
        tileSize = 5;

        seed    = new Seed(100, 100);
        seedGen = new SeedGenerator(seed);
        seedGen.SetMapDouble();

        //Set Map blur random values
        if (RandomBool())
        {
            seedGen.SeedProperties(RandomBool(), false, false, false, false);
            seedGen.BlurMap();
            seedGen.SeedProperties(false, false, false, false, false);
        }

        //TODO: add for symmetry
        //seedGen.SeedProperties(false, false, false, false);
        int numCircles = random.Next(1, 5);

        for (int x = 0; x < numCircles; x++)
        {
            Vector2 radius = new Vector2(random.Next(3, seed.X), random.Next(3, seed.Y));
            Vector2 center = new Vector2(random.Next(0, seed.X), random.Next(0, seed.Y));
            seedGen.CircleFill(radius, center, random.NextDouble() + random.Next(-1, 3));
            seedGen.BlurAreaCircle(radius, center);
        }

        //Set Double
        if (RandomBool())
        {
            seedGen.SeedProperties(RandomBool(), false, false, false, false);
            seedGen.SetMapDouble();
            seedGen.SeedProperties(false, false, false, false, false);
        }

        //Set Map blur
        if (RandomBool())
        {
            seedGen.SeedProperties(RandomBool(), false, false, false, false);
            seedGen.BlurMap();
            seedGen.SeedProperties(false, false, false, false, false);
        }

        //Add Water
        if (RandomBool())
        {
            water[0].gameObject.SetActive(true);
        }

        RunTerrainMaker();
    }
コード例 #2
0
    //TODO: Will need grass and shrubs, no trees. This is flat
    //Steppe Terrain - 4
    public void MakeSteppeTerrain()
    {
        tileSize = 4f;
        seed     = new Seed(125, 125);
        seedGen  = new SeedGenerator(seed);

        seedGen.SetMapDouble();
        RunTerrainMaker();
    }
コード例 #3
0
    //Pillars terrain - 18
    public void MakePillarsTerrain()
    {
        tileSize = 3;
        seed     = new Seed(100, 100);
        seedGen  = new SeedGenerator(seed);
        System.Random random = new System.Random();
        seedGen.SeedProperties(false, false, false, false, false);
        //Lower the terrain
        Vector2 radius = new Vector2(seed.X / 2, seed.Y / 2);
        Vector2 center = new Vector2(seed.X / 2, seed.Y / 2);

        seedGen.SquareFill(radius, center, random.NextDouble() - random.Next(1, 3));

        //Small Hills
        seedGen.SetMapDouble();

        //Blur small hills
        if (RandomBool())
        {
            seedGen.BlurMap();
        }

        //Large Hills - locked to keep shape
        seedGen.SeedProperties(true, false, false, false, false);
        int count = random.Next(0, 15);

        for (int i = 0; i < count; i++)
        {
            int height = random.Next(2, 15);
            radius = new Vector2(random.Next(5, 15), random.Next(5, 15));
            center = new Vector2(random.Next(0, seed.X - 1), random.Next(0, seed.Y - 1));
            seedGen.MountainGradual(radius, center, height, true);
            seedGen.BlurAreaCircle(radius, center);
        }

        seed.SetSeedLock(false);

        //Large Craters - locked to keep shape
        seedGen.SeedProperties(false, true, false, false, false);
        count = random.Next(0, 15);
        for (int i = 0; i < count; i++)
        {
            int height = random.Next(2, 15);
            radius = new Vector2(random.Next(5, 15), random.Next(5, 15));
            center = new Vector2(random.Next(0, seed.X - 1), random.Next(0, seed.Y - 1));
            seedGen.MountainGradual(radius, center, height, true);
            seedGen.BlurAreaCircle(radius, center);
        }

        seed.SetSeedLock(false);

        seedGen.BlurMap();

        RunTerrainMaker();
    }
コード例 #4
0
    //Flat Terrain - 0
    public void MakeFlatTerrain()
    {
        tileSize = 5;

        seed    = new Seed(100, 100);
        seedGen = new SeedGenerator(seed);
        seedGen.SetMapDouble();

        seedGen.BlurMap();

        RunTerrainMaker();
    }
コード例 #5
0
    //Tundra Terrain - 2
    //TODO - add area for shore or add hills
    //TODO - improve and add yellow grass and rocks
    public void MakeTundraTerrain()
    {
        tileSize = 4f;
        seed     = new Seed(125, 125);
        seedGen  = new SeedGenerator(seed);

        seedGen.SetMapDouble();

        seedGen.SeedProperties(true, false, false, false, false);
        seedGen.SetMapRandom(2);

        RunTerrainMaker();
    }
コード例 #6
0
    //Spire terrain - 16
    public void MakeSpireTerrain()
    {
        tileSize = 4f;
        seed     = new Seed(125, 125);
        seedGen  = new SeedGenerator(seed);
        seedGen.SetMapDouble();
        seedGen.SetMapRandom(2);

        seedGen.SeedProperties(true, false, false, false, false);
        Vector2Int direction = new Vector2Int(1, 0);
        Vector2Int location  = new Vector2Int(10, 10);

        seedGen.Line(5, 10, direction, location);

        Vector2 radius = new Vector2(49, 49);
        Vector2 center = new Vector2(50, 50);

        seedGen.CircleFill(radius, center, 2.5f);

        seedGen.SeedProperties(false, false, false, false, false);
        radius = new Vector2(10, 10);
        center = new Vector2(30, 30);
        seedGen.CircleFill(radius, center, 5);

        radius = new Vector2(9, 9);
        center = new Vector2(30, 30);
        seedGen.CircleFill(radius, center, 6);

        radius = new Vector2(8, 8);
        center = new Vector2(30, 30);
        seedGen.CircleFill(radius, center, 7);

        radius = new Vector2(7, 7);
        center = new Vector2(30, 30);
        seedGen.CircleFill(radius, center, 8);

        radius = new Vector2(6, 6);
        center = new Vector2(30, 30);
        seedGen.CircleFill(radius, center, 9);

        center = new Vector2(90, 25);
        seedGen.SquareFill(radius, center, 15);
        RunTerrainMaker();
    }