Ejemplo n.º 1
0
        public OverworldTerrain(OverworldTerrainSettings ots, bool isUnitTest = false)
        {
            settings = ots;

            ocean     = new OceanTerrain(ots);
            plains    = new PlainsTerrain(ots);
            hills     = new HillsTerrain(ots);
            badlands  = new BadlandsTerrain(ots);
            mountains = new MountainsTerrain(ots);
            rivers    = new RiverTerrain(ots);

            humidity    = new HumidityNoise(ots);
            temperature = new TemperatureNoise(ots);
            terrain     = new TerrainNoise(ots);

            cave = new CavesCarver(ots);

            // Scale Point multiplies input values by the scaling factors.
            // Used to stretch or shrink the terrain horizontally.
            var scaled = GetScaledModuleOutput(MergedLandOceanRivers());
            //var scaled = GetScaledModuleOutput(LandOceanSelector());
            //var scaled = GetScaledModuleOutput(temperature.RiverSelector);

            // Scale bias scales the verical output (usually -1.0 to +1.0) to
            // Minecraft values. If MinElev is 40 (leaving room for caves under oceans)
            // and MaxElev is 168, a value of -1 becomes 40, and a value of 1 becomes 168.
            var biased = new ScaleBias
            {
                Scale   = (settings.MaxElev - settings.MinElev) / 2.0,
                Bias    = settings.MinElev + ((settings.MaxElev - settings.MinElev) / 2.0) - 44,
                Source0 = scaled
            };

            Result = isUnitTest ? scaled : biased;
        }
Ejemplo n.º 2
0
 public WarmOceanDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     primarySurface   = sand;
     secondarySurface = dirt;
     hasSeaGrass      = hasKelp = true;
     hasMagma         = true;
 }
Ejemplo n.º 3
0
 public LukewarmOceanDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     primarySurface   = sand;
     secondarySurface = clay;
     tertiarySurface  = gravel;
     hasMagma         = false;
     hasSeaGrass      = hasKelp = true;
 }
Ejemplo n.º 4
0
 public DeepOceanDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     hasMagma         = false;
     hasKelp          = true;
     hasSeaGrass      = true;
     primarySurface   = sand;
     secondarySurface = dirt;
     tertiarySurface  = gravel;
 }
Ejemplo n.º 5
0
        protected BaseDecorator(Biomes biome, Chunk chunk, Vector pos, BaseBiomeNoise noise)
        {
            this.biome = biome;
            this.chunk = chunk;
            this.pos   = pos;
            this.noise = noise;

            Features = new DecoratorFeatures();
        }
Ejemplo n.º 6
0
 public GroveDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(DandelionFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(PoppyFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(AzureBluetFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(4, typeof(TulipFlora), 6, 5));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(4, typeof(OxeyeDaisyFlora), 2, 5));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(CornflowerFlora), 3, 3));
 }
Ejemplo n.º 7
0
 public BirchForestDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(1, typeof(OakTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(6, typeof(BirchTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(1, typeof(TallBirchTree)));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(DandelionFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(PoppyFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(1, typeof(LilyFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(LilacFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(1, typeof(RoseBushFlora), 4, 3));
     Features.Flora.Add(new DecoratorFeatures.FloraInfo(2, typeof(PeonyFlora), 4, 3));
 }
Ejemplo n.º 8
0
        public OceanDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
        {
            sand         = Registry.GetBlock(Material.Sand);
            dirt         = Registry.GetBlock(Material.Dirt);
            gravel       = Registry.GetBlock(Material.Gravel);
            clay         = Registry.GetBlock(Material.Clay);
            magma        = Registry.GetBlock(Material.MagmaBlock);
            seaGrass     = Registry.GetBlock(Material.Seagrass);
            tallSeaGrass = Registry.GetBlock(Material.TallSeagrass);
            kelp         = Registry.GetBlock(Material.KelpPlant);

            primarySurface   = dirt;
            secondarySurface = sand;
            tertiarySurface  = clay;
        }
Ejemplo n.º 9
0
    public static BaseDecorator GetDecorator(Biomes b, Chunk chunk, Vector position, BaseBiomeNoise noise)
    {
        if (DecoratorLookup.ContainsKey(b))
        {
            return((BaseDecorator)Activator.CreateInstance(DecoratorLookup[b], b, chunk, position, noise));
        }

        else
        {
            var  assembly      = Assembly.GetExecutingAssembly();
            Type decoratorType = assembly.GetTypes().FirstOrDefault(t => t.Name == $"{b}Decorator") ?? typeof(DefaultDecorator);
            DecoratorLookup.TryAdd(b, decoratorType);
            return((BaseDecorator)Activator.CreateInstance(decoratorType, b, chunk, position, noise));
        }
    }
Ejemplo n.º 10
0
 public DarkForestDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(5, typeof(DarkOakTree)));
 }
Ejemplo n.º 11
0
 public TaigaDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(2, typeof(SpruceTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(3, typeof(LargeSpruceTree)));
 }
Ejemplo n.º 12
0
 public BadlandsDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
 }
Ejemplo n.º 13
0
 public DesertHillsDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
 }
Ejemplo n.º 14
0
 public ForestDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(4, typeof(OakTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(1, typeof(BirchTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(2, typeof(LargeOakTree)));
 }
Ejemplo n.º 15
0
 public TallBirchForestDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(6, typeof(BirchTree)));
 }
Ejemplo n.º 16
0
 public StonyPeaksDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
 }
Ejemplo n.º 17
0
 public PlainsDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(1, typeof(OakTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(1, typeof(AcaciaTree)));
 }
Ejemplo n.º 18
0
 public WoodedBadlandsDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(2, typeof(OakTree)));
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(7, typeof(DarkOakTree)));
 }
Ejemplo n.º 19
0
 public FrozenRiverDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
 }
Ejemplo n.º 20
0
 public WoodedMountainsDecorator(Biomes biome, Chunk chunk, Vector surfacePos, BaseBiomeNoise noise) : base(biome, chunk, surfacePos, noise)
 {
     Features.Trees.Add(new DecoratorFeatures.TreeInfo(3, typeof(SpruceTree)));
 }