diff --git a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java index 27323ce13..416374aaf 100644 --- a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java +++ b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java @@ -17,7 +17,6 @@ public class BOPBiomes public static Optional alps_foothills = Optional.empty(); public static Optional bayou = Optional.empty(); public static Optional bog = Optional.empty(); - public static Optional bog_mire = Optional.empty(); public static Optional boreal_forest = Optional.empty(); public static Optional brushland = Optional.empty(); public static Optional chaparral = Optional.empty(); @@ -25,6 +24,7 @@ public class BOPBiomes public static Optional cold_desert = Optional.empty(); public static Optional coniferous_forest = Optional.empty(); public static Optional dead_forest = Optional.empty(); + public static Optional dead_swamp = Optional.empty(); public static Optional dry_plains = Optional.empty(); public static Optional floodplain = Optional.empty(); public static Optional flower_meadow = Optional.empty(); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BogBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/BogBiome.java index 0874baa42..dc8b793bb 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/BogBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/BogBiome.java @@ -51,7 +51,7 @@ public class BogBiome extends BiomeBOP { public BogBiome() { - super((new Biome.BiomeBuilder()).surfaceBuilder(new CompositeSurfaceBuilder(BOPBiomeFeatures.PODZOL_SURFACE_BUILDER, GRASS_DIRT_GRAVEL_SURFACE)).precipitation(Biome.RainType.RAIN).category(Biome.Category.SWAMP).depth(-0.1F).scale(0.05F).temperature(0.55F).downfall(0.9F).waterColor(0x354762).waterFogColor(0x040511).parent((String)null)); + super((new Biome.BiomeBuilder()).surfaceBuilder(new CompositeSurfaceBuilder(BOPBiomeFeatures.MARSH_SURFACE_BUILDER, GRASS_DIRT_GRAVEL_SURFACE)).precipitation(Biome.RainType.RAIN).category(Biome.Category.SWAMP).depth(-0.1375F).scale(-0.05F).temperature(0.55F).downfall(0.9F).waterColor(0x3A5EA3).waterFogColor(0x040522).parent((String)null)); // Mineshafts and Strongholds this.addStructure(Feature.SWAMP_HUT, new SwampHutConfig()); @@ -64,7 +64,7 @@ public class BogBiome extends BiomeBOP this.addStructureFeatures(); // Lakes - this.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, createCompositeFeature(Feature.LAKES, new LakesConfig(Blocks.WATER), LAKE_WATER, new LakeChanceConfig(4))); + this.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, createCompositeFeature(Feature.LAKES, new LakesConfig(Blocks.WATER), LAKE_WATER, new LakeChanceConfig(2))); this.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, createCompositeFeature(Feature.LAKES, new LakesConfig(Blocks.LAVA), LAVA_LAKE, new LakeChanceConfig(80))); // Dungeons @@ -82,21 +82,19 @@ public class BogBiome extends BiomeBOP this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.MINABLE, new MinableConfig(MinableConfig.IS_ROCK, Blocks.REDSTONE_ORE.getDefaultState(), 8), COUNT_RANGE, new CountRangeConfig(8, 0, 0, 16))); this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.MINABLE, new MinableConfig(MinableConfig.IS_ROCK, Blocks.DIAMOND_ORE.getDefaultState(), 8), COUNT_RANGE, new CountRangeConfig(1, 0, 0, 16))); this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.MINABLE, new MinableConfig(MinableConfig.IS_ROCK, Blocks.LAPIS_ORE.getDefaultState(), 7), DEPTH_AVERAGE, new DepthAverageConfig(1, 16, 16))); - this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(BOPBlocks.mud, 8, 2, Lists.newArrayList(Blocks.DIRT, Blocks.GRASS_BLOCK)), TOP_SOLID, new FrequencyConfig(6))); + this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(BOPBlocks.mud, 8, 2, Lists.newArrayList(Blocks.DIRT, Blocks.GRASS_BLOCK)), TOP_SOLID, new FrequencyConfig(1))); this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(Blocks.CLAY, 4, 1, Lists.newArrayList(Blocks.DIRT, Blocks.CLAY)), TOP_SOLID, new FrequencyConfig(1))); // Vegetation - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.DARK_OAK_TWIGLET_TREE, BOPBiomeFeatures.TALL_TWIGLET_TREE, BOPBiomeFeatures.DEAD_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.8F, 0.4F, 0.1F}, BOPBiomeFeatures.DYING_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(3, 0.2F, 1))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BIG_BROWN_MUSHROOM, IFeatureConfig.NO_FEATURE_CONFIG, AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig((int)0.8F, 0.1F, 1))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(6))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(10))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.bush), TWICE_SURFACE, new FrequencyConfig(17))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.SPRUCE_TWIGLET_TREE, BOPBiomeFeatures.MAPLE_TWIGLET_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.2F, 0.4F}, BOPBiomeFeatures.TWIGLET_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(5, 0.3F, 1))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(10))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(50))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.watergrass), TWICE_SURFACE, new FrequencyConfig(15))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.bush), TWICE_SURFACE, new FrequencyConfig(150))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(15))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.toadstool), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(5))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.REED, IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(10))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.PUMPKIN, IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(32))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.SEA_GRASS, new SeaGrassConfig(64, 0.6D), TOP_SOLID_ONCE, IPlacementConfig.NO_PLACEMENT_CONFIG)); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.toadstool), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(2))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.SEA_GRASS, new SeaGrassConfig(32, 0.6D), TOP_SOLID_ONCE, IPlacementConfig.NO_PLACEMENT_CONFIG)); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.WATER), HEIGHT_BIASED_RANGE, new CountRangeConfig(50, 8, 8, 256))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.LAVA), HEIGHT_VERY_BIASED_RANGE, new CountRangeConfig(20, 8, 16, 256))); this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, createCompositeFeature(Feature.FOSSILS, IFeatureConfig.NO_FEATURE_CONFIG, WITH_CHANCE, new ChanceConfig(64))); @@ -114,19 +112,19 @@ public class BogBiome extends BiomeBOP this.addSpawn(EnumCreatureType.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1)); this.addSpawn(EnumCreatureType.MONSTER, new Biome.SpawnListEntry(EntityType.SLIME, 1, 1, 1)); - this.addWeight(BOPClimates.WET_TEMPERATE, 3); + this.addWeight(BOPClimates.WET_BOREAL, 3); this.setBeachBiome((Biome)null); } @OnlyIn(Dist.CLIENT) public int getGrassColor(BlockPos pos) { - return 0x66704C; + return 0xA89557; } @OnlyIn(Dist.CLIENT) public int getFoliageColor(BlockPos pos) { - return 0x878E61; + return 0xC67F5B; } } diff --git a/src/main/java/biomesoplenty/common/biome/overworld/ColdDesertBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/ColdDesertBiome.java index 4a360237e..bf90c7795 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/ColdDesertBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/ColdDesertBiome.java @@ -114,6 +114,6 @@ public class ColdDesertBiome extends BiomeBOP @OnlyIn(Dist.CLIENT) public int getFoliageColor(BlockPos pos) { - return 0xB7B763; + return 0xB5A76C; } } diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BogMireBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/DeadSwampBiome.java similarity index 84% rename from src/main/java/biomesoplenty/common/biome/overworld/BogMireBiome.java rename to src/main/java/biomesoplenty/common/biome/overworld/DeadSwampBiome.java index 5b3ad38d2..43d2fb21d 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/BogMireBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/DeadSwampBiome.java @@ -10,6 +10,7 @@ package biomesoplenty.common.biome.overworld; import com.google.common.collect.Lists; import biomesoplenty.api.block.BOPBlocks; +import biomesoplenty.api.enums.BOPClimates; import biomesoplenty.common.biome.BiomeBOP; import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures; import biomesoplenty.common.world.gen.feature.StandardGrassFeature; @@ -27,12 +28,14 @@ import net.minecraft.world.gen.feature.LakesConfig; import net.minecraft.world.gen.feature.LiquidsConfig; import net.minecraft.world.gen.feature.MinableConfig; import net.minecraft.world.gen.feature.ProbabilityConfig; +import net.minecraft.world.gen.feature.RandomDefaultFeatureListConfig; import net.minecraft.world.gen.feature.SeaGrassConfig; import net.minecraft.world.gen.feature.SphereReplaceConfig; import net.minecraft.world.gen.feature.structure.MineshaftConfig; import net.minecraft.world.gen.feature.structure.MineshaftStructure; import net.minecraft.world.gen.feature.structure.StrongholdConfig; import net.minecraft.world.gen.feature.structure.SwampHutConfig; +import net.minecraft.world.gen.placement.AtSurfaceWithExtraConfig; import net.minecraft.world.gen.placement.ChanceConfig; import net.minecraft.world.gen.placement.CountRangeConfig; import net.minecraft.world.gen.placement.DepthAverageConfig; @@ -44,11 +47,11 @@ import net.minecraft.world.gen.surfacebuilders.CompositeSurfaceBuilder; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -public class BogMireBiome extends BiomeBOP +public class DeadSwampBiome extends BiomeBOP { - public BogMireBiome() + public DeadSwampBiome() { - super((new Biome.BiomeBuilder()).surfaceBuilder(new CompositeSurfaceBuilder(DEFAULT_SURFACE_BUILDER, BOPBiomeFeatures.MUD_SURFACE)).precipitation(Biome.RainType.RAIN).category(Biome.Category.SWAMP).depth(-0.1F).scale(0.05F).temperature(0.55F).downfall(0.9F).waterColor(0x433721).waterFogColor(0x0C0C03).parent((String)null)); + super((new Biome.BiomeBuilder()).surfaceBuilder(new CompositeSurfaceBuilder(BOPBiomeFeatures.MUD_SURFACE_BUILDER, GRASS_DIRT_GRAVEL_SURFACE)).precipitation(Biome.RainType.RAIN).category(Biome.Category.SWAMP).depth(-0.125F).scale(-0.05F).temperature(0.55F).downfall(0.9F).waterColor(0x354762).waterFogColor(0x040511).parent((String)null)); // Mineshafts and Strongholds this.addStructure(Feature.SWAMP_HUT, new SwampHutConfig()); @@ -83,11 +86,14 @@ public class BogMireBiome extends BiomeBOP this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(Blocks.CLAY, 4, 1, Lists.newArrayList(Blocks.DIRT, Blocks.CLAY)), TOP_SOLID, new FrequencyConfig(1))); // Vegetation - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(6))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.DARK_OAK_TWIGLET_TREE, BOPBiomeFeatures.TALL_TWIGLET_TREE, BOPBiomeFeatures.DEAD_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.8F, 0.4F, 0.1F}, BOPBiomeFeatures.DYING_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(3, 0.2F, 1))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BIG_BROWN_MUSHROOM, IFeatureConfig.NO_FEATURE_CONFIG, AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig((int)0.9F, 0.1F, 1))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(5))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(5))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(15))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.SEA_GRASS, new SeaGrassConfig(64, 0.6D), TOP_SOLID_ONCE, IPlacementConfig.NO_PLACEMENT_CONFIG)); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.REED, IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(5))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.PUMPKIN, IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(16))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.WATER), HEIGHT_BIASED_RANGE, new CountRangeConfig(50, 8, 8, 256))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.LAVA), HEIGHT_VERY_BIASED_RANGE, new CountRangeConfig(20, 8, 16, 256))); this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, createCompositeFeature(Feature.FOSSILS, IFeatureConfig.NO_FEATURE_CONFIG, WITH_CHANCE, new ChanceConfig(64))); @@ -105,18 +111,19 @@ public class BogMireBiome extends BiomeBOP this.addSpawn(EnumCreatureType.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1)); this.addSpawn(EnumCreatureType.MONSTER, new Biome.SpawnListEntry(EntityType.SLIME, 1, 1, 1)); + this.addWeight(BOPClimates.WET_TEMPERATE, 3); this.setBeachBiome((Biome)null); } @OnlyIn(Dist.CLIENT) public int getGrassColor(BlockPos pos) { - return 0x68584A; + return 0x66704C; } @OnlyIn(Dist.CLIENT) public int getFoliageColor(BlockPos pos) { - return 0x938060; + return 0x878E61; } } diff --git a/src/main/java/biomesoplenty/common/biome/overworld/MarshBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/MarshBiome.java index 6332bd939..6ac9dde8f 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/MarshBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/MarshBiome.java @@ -77,7 +77,7 @@ public class MarshBiome extends BiomeBOP this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(10))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(Blocks.TALL_GRASS.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(50))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.SEA_GRASS, new SeaGrassConfig(64, 0.6D), TOP_SOLID_ONCE, IPlacementConfig.NO_PLACEMENT_CONFIG)); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(15))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(10))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.watergrass), TWICE_SURFACE, new FrequencyConfig(50))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.WATER), HEIGHT_BIASED_RANGE, new CountRangeConfig(50, 8, 8, 256))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.LAVA), HEIGHT_VERY_BIASED_RANGE, new CountRangeConfig(20, 8, 16, 256))); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/TundraBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/TundraBiome.java index 82e9047a0..283b756ae 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/TundraBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/TundraBiome.java @@ -86,10 +86,9 @@ public class TundraBiome extends BiomeBOP // Vegetation this.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, createCompositeFeature(Feature.BLOCK_BLOB, new BlockBlobConfig(Blocks.COBBLESTONE, 0), AT_SURFACE_RANDOM_COUNT, new FrequencyConfig(1))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.DEAD_TWIGLET_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.1F}, BOPBiomeFeatures.MAPLE_TWIGLET_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(4, 0.3F, 1))); + this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.DEAD_TWIGLET_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.1F}, BOPBiomeFeatures.MAPLE_TWIGLET_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(1, 0.3F, 1))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(6))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(5))); - this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.bush), TWICE_SURFACE, new FrequencyConfig(12))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.WATER), HEIGHT_BIASED_RANGE, new CountRangeConfig(50, 8, 8, 256))); this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.LAVA), HEIGHT_VERY_BIASED_RANGE, new CountRangeConfig(20, 8, 16, 256))); this.addFeature(GenerationStage.Decoration.TOP_LAYER_MODIFICATION, createCompositeFeature(Feature.ICE_AND_SNOW, IFeatureConfig.NO_FEATURE_CONFIG, PASSTHROUGH, IPlacementConfig.NO_PLACEMENT_CONFIG)); @@ -120,6 +119,6 @@ public class TundraBiome extends BiomeBOP @OnlyIn(Dist.CLIENT) public int getFoliageColor(BlockPos pos) { - return 0xC1954D; + return 0xB5A76C; } } diff --git a/src/main/java/biomesoplenty/common/world/gen/feature/BOPBiomeFeatures.java b/src/main/java/biomesoplenty/common/world/gen/feature/BOPBiomeFeatures.java index bab27c40c..7c5a6137b 100644 --- a/src/main/java/biomesoplenty/common/world/gen/feature/BOPBiomeFeatures.java +++ b/src/main/java/biomesoplenty/common/world/gen/feature/BOPBiomeFeatures.java @@ -68,7 +68,7 @@ public class BOPBiomeFeatures public static final AbstractTreeFeature ACACIA_TWIGLET_TREE = new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.RED_SAND).log(Blocks.ACACIA_LOG.getDefaultState()).leaves(Blocks.ACACIA_LEAVES.getDefaultState()).create(); public static final AbstractTreeFeature ACACIA_TWIGLET_SMALL = new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.SAND).log(Blocks.ACACIA_LOG.getDefaultState()).leaves(Blocks.ACACIA_LEAVES.getDefaultState()).minHeight(1).maxHeight(2).create(); public static final AbstractTreeFeature ACACIA_TWIGLET = new TwigletTreeFeature.Builder().log(Blocks.ACACIA_LOG.getDefaultState()).leaves(Blocks.ACACIA_LEAVES.getDefaultState()).minHeight(1).maxHeight(2).create(); - public static final AbstractTreeFeature SPRUCE_TWIGLET_TREE = new TwigletTreeFeature.Builder().log(Blocks.SPRUCE_LOG.getDefaultState()).leaves(Blocks.SPRUCE_LEAVES.getDefaultState()).minHeight(1).maxHeight(1).create(); + public static final AbstractTreeFeature SPRUCE_TWIGLET_TREE = new TwigletTreeFeature.Builder().log(Blocks.SPRUCE_LOG.getDefaultState()).leaves(Blocks.SPRUCE_LEAVES.getDefaultState()).minHeight(1).maxHeight(2).create(); public static final AbstractTreeFeature DARK_OAK_TWIGLET_TREE = new TwigletTreeFeature.Builder().log(Blocks.DARK_OAK_LOG.getDefaultState()).leaves(Blocks.DARK_OAK_LEAVES.getDefaultState()).minHeight(1).maxHeight(2).create(); public static final AbstractTreeFeature TALL_TWIGLET_TREE = new TwigletTreeFeature.Builder().minHeight(2).maxHeight(4).create(); public static final AbstractTreeFeature OAK_POPLAR = new PoplarTreeFeature.Builder().log(Blocks.OAK_LOG.getDefaultState()).leaves(Blocks.OAK_LEAVES.getDefaultState()).create(); @@ -122,6 +122,7 @@ public class BOPBiomeFeatures public static final ISurfaceBuilder GRANITE_SURFACE_BUILDER = new GraniteSurfaceBuilder(); public static final ISurfaceBuilder MARSH_SURFACE_BUILDER = new MarshSurfaceBuilder(); public static final ISurfaceBuilder MANGROVE_SURFACE_BUILDER = new MangroveSurfaceBuilder(); + public static final ISurfaceBuilder MUD_SURFACE_BUILDER = new MudSurfaceBuilder(); public static final ISurfaceBuilder PODZOL_SURFACE_BUILDER = new PodzolSurfaceBuilder(); public static final ISurfaceBuilder VOLCANO_SURFACE_BUILDER = new VolcanoSurfaceBuilder(); public static final ISurfaceBuilder VOLCANO_EDGE_SURFACE_BUILDER = new VolcanoEdgeSurfaceBuilder(); diff --git a/src/main/java/biomesoplenty/common/world/gen/feature/MudSurfaceBuilder.java b/src/main/java/biomesoplenty/common/world/gen/feature/MudSurfaceBuilder.java new file mode 100644 index 000000000..c06c26400 --- /dev/null +++ b/src/main/java/biomesoplenty/common/world/gen/feature/MudSurfaceBuilder.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright 2014-2019, the Biomes O' Plenty Team + * + * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. + * + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + ******************************************************************************/ +package biomesoplenty.common.world.gen.feature; + +import java.util.Random; + +import biomesoplenty.api.block.BOPBlocks; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.IWorld; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.chunk.IChunk; +import net.minecraft.world.gen.IChunkGenSettings; +import net.minecraft.world.gen.IChunkGenerator; +import net.minecraft.world.gen.feature.AbstractFlowersFeature; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.NoFeatureConfig; +import net.minecraft.world.gen.surfacebuilders.ISurfaceBuilder; +import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig; + +public class MudSurfaceBuilder implements ISurfaceBuilder { + public void buildSurface(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, IBlockState defaultBlock, IBlockState defaultFluid, int seaLevel, long seed, SurfaceBuilderConfig config) { + if (noise > 1.7D) + { + Biome.DEFAULT_SURFACE_BUILDER.buildSurface(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, BOPBiomeFeatures.MUD_SURFACE); + } + else + { + Biome.DEFAULT_SURFACE_BUILDER.buildSurface(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, Biome.GRASS_DIRT_GRAVEL_SURFACE); + } + + } + } \ No newline at end of file diff --git a/src/main/java/biomesoplenty/init/ModBiomes.java b/src/main/java/biomesoplenty/init/ModBiomes.java index 8ac860870..25dd33933 100644 --- a/src/main/java/biomesoplenty/init/ModBiomes.java +++ b/src/main/java/biomesoplenty/init/ModBiomes.java @@ -23,14 +23,14 @@ import biomesoplenty.common.biome.BiomeBOP; import biomesoplenty.common.biome.overworld.AlpsBiome; import biomesoplenty.common.biome.overworld.AlpsFoothillsBiome; import biomesoplenty.common.biome.overworld.BayouBiome; -import biomesoplenty.common.biome.overworld.BogBiome; -import biomesoplenty.common.biome.overworld.BogMireBiome; +import biomesoplenty.common.biome.overworld.DeadSwampBiome; import biomesoplenty.common.biome.overworld.BorealForestBiome; import biomesoplenty.common.biome.overworld.BrushlandBiome; import biomesoplenty.common.biome.overworld.ChaparralBiome; import biomesoplenty.common.biome.overworld.CherryBlossomGroveBiome; import biomesoplenty.common.biome.overworld.ColdDesertBiome; import biomesoplenty.common.biome.overworld.ConiferousForestBiome; +import biomesoplenty.common.biome.overworld.BogBiome; import biomesoplenty.common.biome.overworld.DeadForestBiome; import biomesoplenty.common.biome.overworld.DryPlainsBiome; import biomesoplenty.common.biome.overworld.FloodplainBiome; @@ -115,7 +115,6 @@ public class ModBiomes alps = registerBiome(new AlpsBiome(), "alps"); bayou = registerBiome(new BayouBiome(), "bayou"); bog = registerBiome(new BogBiome(), "bog"); - bog_mire = registerBiome(new BogMireBiome(), "bog_mire"); boreal_forest = registerBiome(new BorealForestBiome(), "boreal_forest"); brushland = registerBiome(new BrushlandBiome(), "brushland"); chaparral = registerBiome(new ChaparralBiome(), "chaparral"); @@ -123,6 +122,7 @@ public class ModBiomes cold_desert = registerBiome(new ColdDesertBiome(), "cold_desert"); coniferous_forest = registerBiome(new ConiferousForestBiome(), "coniferous_forest"); dead_forest = registerBiome(new DeadForestBiome(), "dead_forest"); + dead_swamp = registerBiome(new DeadSwampBiome(), "dead_swamp"); dry_plains = registerBiome(new DryPlainsBiome(), "dry_plains"); floodplain = registerBiome(new FloodplainBiome(), "floodplain"); flower_meadow = registerBiome(new FlowerMeadowBiome(), "flower_meadow"); @@ -168,7 +168,6 @@ public class ModBiomes // Note: Rarity supports two decimal places registerSubBiome(Biomes.DESERT, oasis, 0.1F, 100); - registerSubBiome(bog, bog_mire, 0.5F, 100); registerSubBiome(brushland, xeric_shrubland, 1.0F, 100); registerSubBiome(grove, grove_orchard, 0.75F, 100); registerSubBiome(highland, highland_moor, 0.75F, 100); @@ -194,8 +193,7 @@ public class ModBiomes registerBiomeToDictionary(BOPBiomes.alps, Type.MOUNTAIN, Type.SNOWY, Type.COLD); registerBiomeToDictionary(BOPBiomes.alps_foothills, Type.MOUNTAIN, Type.SNOWY, Type.FOREST, Type.SPARSE, Type.COLD); registerBiomeToDictionary(BOPBiomes.bayou, Type.SWAMP, Type.HOT, Type.WET, Type.DENSE); - registerBiomeToDictionary(BOPBiomes.bog, Type.SWAMP, Type.DEAD, Type.WET); - registerBiomeToDictionary(BOPBiomes.bog_mire, Type.SWAMP, Type.DEAD, Type.WASTELAND, Type.WET); + registerBiomeToDictionary(BOPBiomes.bog, Type.SWAMP, Type.CONIFEROUS, Type.COLD, Type.LUSH, Type.WET); registerBiomeToDictionary(BOPBiomes.boreal_forest, Type.FOREST, Type.CONIFEROUS, Type.HILLS, Type.COLD, Type.DENSE); registerBiomeToDictionary(BOPBiomes.brushland, Type.SAVANNA, Type.HOT, Type.DRY, Type.SPARSE); registerBiomeToDictionary(BOPBiomes.chaparral, Type.PLAINS, Type.DRY, Type.HILLS); @@ -203,6 +201,7 @@ public class ModBiomes registerBiomeToDictionary(BOPBiomes.cold_desert, Type.SNOWY, Type.DRY, Type.COLD); registerBiomeToDictionary(BOPBiomes.coniferous_forest, Type.CONIFEROUS, Type.FOREST, Type.COLD, Type.DENSE); registerBiomeToDictionary(BOPBiomes.dead_forest, Type.FOREST, Type.DEAD, Type.COLD, Type.DRY, Type.SPARSE); + registerBiomeToDictionary(BOPBiomes.dead_swamp, Type.SWAMP, Type.DEAD, Type.WET); registerBiomeToDictionary(BOPBiomes.dry_plains, Type.PLAINS, Type.SAVANNA, Type.HOT, Type.DRY); registerBiomeToDictionary(BOPBiomes.floodplain, Type.JUNGLE, Type.WATER, Type.HOT, Type.WET); registerBiomeToDictionary(BOPBiomes.flower_meadow, Type.PLAINS, Type.LUSH); diff --git a/src/main/resources/assets/biomesoplenty/lang/en_us.json b/src/main/resources/assets/biomesoplenty/lang/en_us.json index 641603aee..39807c26f 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_us.json +++ b/src/main/resources/assets/biomesoplenty/lang/en_us.json @@ -24,7 +24,6 @@ "biome.biomesoplenty.ashlands": "Ashlands", "biome.biomesoplenty.bayou": "Bayou", "biome.biomesoplenty.bog": "Bog", - "biome.biomesoplenty.bog_mire": "Bog Mire", "biome.biomesoplenty.boreal_forest": "Boreal Forest", "biome.biomesoplenty.brushland": "Brushland", "biome.biomesoplenty.chaparral": "Chaparral", @@ -33,6 +32,7 @@ "biome.biomesoplenty.coniferous_forest": "Coniferous Forest", "biome.biomesoplenty.corrupted_sands": "Corrupted Sands", "biome.biomesoplenty.dead_forest": "Dead Forest", + "biome.biomesoplenty.dead_swamp": "Dead Swamp", "biome.biomesoplenty.dry_plains": "Dry Plains", "biome.biomesoplenty.floodplain": "Floodplain", "biome.biomesoplenty.flower_meadow": "Flower Meadow",