Example #1
0
    public TerrainSettingContainer ReturnTerrainSettings(Biomes biomes)
    {
        TerrainSettingContainer terrainSettingContainer = new TerrainSettingContainer();

        switch (biomes)
        {
        case Biomes.Planes:
            terrainSettingContainer.NoiseMin  = 100f;
            terrainSettingContainer.NoiseMax  = 150f;
            terrainSettingContainer.MaxHeight = 200f;
            terrainSettingContainer.MaxAngle  = 1f;
            terrainSettingContainer.Textures  = GetTextures(Biomes.Planes);
            break;

        case Biomes.Hills:
            terrainSettingContainer.NoiseMin  = 90f;
            terrainSettingContainer.NoiseMax  = 90f;
            terrainSettingContainer.MaxHeight = 200f;
            terrainSettingContainer.MaxAngle  = 1f;
            terrainSettingContainer.Textures  = GetTextures(Biomes.Hills);
            break;

        case Biomes.Mountain:
            terrainSettingContainer.NoiseMin  = 100f;
            terrainSettingContainer.NoiseMax  = 200f;
            terrainSettingContainer.MaxHeight = 200f;
            terrainSettingContainer.MaxAngle  = 1f;
            terrainSettingContainer.Textures  = GetTextures(Biomes.Mountain);
            break;

        default:
            break;
        }
        return(terrainSettingContainer);
    }
Example #2
0
    public static GameObject CreateTerrain(Vector3 Position,
                                           Terrain PreviousTerrain = null,
                                           Direction direction     = Direction.UP,
                                           Dictionary <Direction, GameObject> Neighbors = null,
                                           TerrainBiome.Biomes Biome = TerrainBiome.Biomes.Planes
                                           )
    {
        TerrainSettingContainer BiomeSettings  = GameMaster.gameMaster.terrainBiome.ReturnTerrainSettings(Biome);
        TerrainData             NewTerrainData = new TerrainData();

        // TerrainData settings
        NewTerrainData.heightmapResolution = GameMaster.gameMaster.terrainSettings.HeightMapResolution;
        NewTerrainData.size = new Vector3(GameMaster.gameMaster.terrainSettings.MapSize.x,
                                          BiomeSettings.MaxHeight,
                                          GameMaster.gameMaster.terrainSettings.MapSize.z);
        NewTerrainData.TerrainTextures(BiomeSettings.Textures);
        NewTerrainData.GenerateHeights(Position, direction, BiomeSettings.NoiseMin, BiomeSettings.NoiseMax);
        NewTerrainData.ModifyHeightsForBiome(Biome);
        NewTerrainData.GenerateAlphaMap();
        if (Biome != TerrainBiome.Biomes.Mountain)
        {
            NewTerrainData.GenerateFoliage();
            NewTerrainData.GenerateGrass();
        }
        // Texture Settings
        GameObject NewTerrain = Terrain.CreateTerrainGameObject(NewTerrainData);
        // GameObject Settings
        Vector3 NewTerrainPosition = new Vector3(Position.x, Position.y, Position.z);

        NewTerrain.transform.position = NewTerrainPosition;
        NewTerrain.AddComponent <TerrainScript>();
        // Terrain Settings
        Terrain ThisTerrain = NewTerrain.GetComponent <Terrain>();

        ThisTerrain.detailObjectDistance = 250;

        GameMaster.gameMaster.terrainManager.TerrainPositions.Add(Position, NewTerrain);
        return(NewTerrain);
    }