From 91c81c38f1509f9a387aadf83ec3f3655ea12dbb Mon Sep 17 00:00:00 2001 From: Forstride Date: Wed, 7 Oct 2020 17:26:14 -0400 Subject: [PATCH] Even more biome rework stuff --- .../biomesoplenty/api/biome/BOPBiomes.java | 9 +- ...yWetlandBiome.java => DeadSwampBiome.java} | 24 +++--- ...nseBayouBiome.java => DeepBayouBiome.java} | 6 +- .../common/biome/overworld/GroveBiome.java | 2 +- .../biome/overworld/GroveLakesBiome.java | 86 +++++++++++++++++++ .../biome/overworld/LavenderForestBiome.java | 86 +++++++++++++++++++ .../biome/overworld/RainforestBiome.java | 2 +- .../biome/overworld/RedwoodForestBiome.java | 4 +- .../biome/overworld/RedwoodHillsBiome.java | 4 +- ...egBiome.java => SeasonalOrchardBiome.java} | 43 +++++----- .../biome/overworld/WastelandBiome.java | 4 - .../biome/overworld/WoodedWastelandBiome.java | 79 +++++++++++++++++ .../gen/feature/BOPConfiguredFeatures.java | 29 ++++--- .../common/world/gen/feature/BOPFeatures.java | 1 + .../common/world/gen/feature/FernFeature.java | 58 +++++++++++++ .../surfacebuilders/BOPSurfaceBuilders.java | 3 +- .../surfacebuilders/MudSurfaceBuilder.java | 39 --------- .../java/biomesoplenty/init/ModBiomes.java | 34 +++++--- .../assets/biomesoplenty/lang/en_us.json | 9 +- .../biomesoplenty/all_biomes.json | 46 +++++++--- .../advancements/biomesoplenty/root.json | 57 ++++++++---- 21 files changed, 475 insertions(+), 150 deletions(-) rename src/main/java/biomesoplenty/common/biome/overworld/{ShroomyWetlandBiome.java => DeadSwampBiome.java} (83%) rename src/main/java/biomesoplenty/common/biome/overworld/{DenseBayouBiome.java => DeepBayouBiome.java} (97%) create mode 100644 src/main/java/biomesoplenty/common/biome/overworld/GroveLakesBiome.java create mode 100644 src/main/java/biomesoplenty/common/biome/overworld/LavenderForestBiome.java rename src/main/java/biomesoplenty/common/biome/overworld/{MuskegBiome.java => SeasonalOrchardBiome.java} (71%) create mode 100644 src/main/java/biomesoplenty/common/biome/overworld/WoodedWastelandBiome.java create mode 100644 src/main/java/biomesoplenty/common/world/gen/feature/FernFeature.java delete mode 100644 src/main/java/biomesoplenty/common/world/gen/surfacebuilders/MudSurfaceBuilder.java diff --git a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java index bb110597b..094ac0d92 100644 --- a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java +++ b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java @@ -24,7 +24,8 @@ public class BOPBiomes public static RegistryKey coniferous_forest = register("coniferous_forest"); public static RegistryKey coniferous_lakes = register("coniferous_lakes"); public static RegistryKey dead_forest = register("dead_forest"); - public static RegistryKey dense_bayou = register("dense_bayou"); + public static RegistryKey dead_swamp = register("dead_swamp"); + public static RegistryKey deep_bayou = register("deep_bayou"); public static RegistryKey dryland = register("dryland"); public static RegistryKey dry_steppe = register("dry_steppe"); public static RegistryKey fir_clearing = register("fir_clearing"); @@ -33,17 +34,18 @@ public class BOPBiomes public static RegistryKey golden_prairie = register("golden_prairie"); public static RegistryKey gravel_beach = register("gravel_beach"); public static RegistryKey grove = register("grove"); + public static RegistryKey grove_lakes = register("grove_lakes"); public static RegistryKey highland = register("highland"); public static RegistryKey highland_crag = register("highland_crag"); public static RegistryKey highland_moor = register("highland_moor"); public static RegistryKey jade_cliffs = register("jade_cliffs"); public static RegistryKey jade_grassland = register("jade_grassland"); public static RegistryKey lavender_field = register("lavender_field"); + public static RegistryKey lavender_forest = register("lavender_forest"); public static RegistryKey lush_desert = register("lush_desert"); public static RegistryKey lush_savanna = register("lush_savanna"); public static RegistryKey meadow = register("meadow"); public static RegistryKey meadow_forest = register("meadow_forest"); - public static RegistryKey muskeg = register("muskeg"); public static RegistryKey mystic_grove = register("mystic_grove"); public static RegistryKey mystic_plains = register("mystic_plains"); public static RegistryKey ominous_woods = register("ominous_woods"); @@ -60,8 +62,8 @@ public class BOPBiomes public static RegistryKey redwood_forest_edge = register("redwood_forest_edge"); public static RegistryKey redwood_hills = register("redwood_hills"); public static RegistryKey seasonal_forest = register("seasonal_forest"); + public static RegistryKey seasonal_orchard = register("seasonal_orchard"); public static RegistryKey seasonal_pumpkin_patch = register("seasonal_pumpkin_patch"); - public static RegistryKey shroomy_wetland = register("shroomy_wetland"); public static RegistryKey shrubland = register("shrubland"); public static RegistryKey shrubland_hills = register("shrubland_hills"); public static RegistryKey silkglade = register("silkglade"); @@ -79,6 +81,7 @@ public class BOPBiomes public static RegistryKey wasteland = register("wasteland"); public static RegistryKey wetland = register("wetland"); public static RegistryKey wetland_marsh = register("wetland_marsh"); + public static RegistryKey wooded_wasteland = register("wooded_wasteland"); public static RegistryKey crystalline_chasm = register("crystalline_chasm"); public static RegistryKey undergrowth = register("undergrowth"); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/ShroomyWetlandBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/DeadSwampBiome.java similarity index 83% rename from src/main/java/biomesoplenty/common/biome/overworld/ShroomyWetlandBiome.java rename to src/main/java/biomesoplenty/common/biome/overworld/DeadSwampBiome.java index a93c77250..4e8a3a749 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/ShroomyWetlandBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/DeadSwampBiome.java @@ -20,9 +20,9 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures; import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; -public class ShroomyWetlandBiome extends BiomeTemplate +public class DeadSwampBiome extends BiomeTemplate { - public ShroomyWetlandBiome() + public DeadSwampBiome() { this.setBeachBiome(null); } @@ -30,15 +30,15 @@ public class ShroomyWetlandBiome extends BiomeTemplate @Override protected void configureBiome(Biome.Builder builder) { - builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.125F).scale(-0.05F).temperature(0.6F).downfall(0.7F); + builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.125F).scale(-0.05F).temperature(0.3F).downfall(0.3F); - builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x272179).waterFogColor(0x0C031B).fogColor(12638463).skyColor(calculateSkyColor(0.6F)).grassColorOverride(0x5A935F).foliageColorOverride(0x4F9657).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); + builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.3F)).grassColorOverride(0xBAAD64).foliageColorOverride(0xB7B763).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); } @Override protected void configureGeneration(BiomeGenerationSettings.Builder builder) { - builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.MUD, SurfaceBuilder.CONFIG_GRASS)); + builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS)); // Structures builder.addStructureStart(StructureFeatures.SWAMP_HUT); @@ -49,32 +49,30 @@ public class ShroomyWetlandBiome extends BiomeTemplate DefaultBiomeFeatures.addDefaultCarvers(builder); DefaultBiomeFeatures.addDefaultLakes(builder); - builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.MUD_LAKE); + builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON); DefaultBiomeFeatures.addDefaultMonsterRoom(builder); DefaultBiomeFeatures.addDefaultUndergroundVariety(builder); DefaultBiomeFeatures.addDefaultOres(builder); - builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.MUD_DISK); + builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Features.DISK_CLAY); + builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Features.DISK_GRAVEL); //////////////////////////////////////////////////////////// // Vegetation - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SHROOMY_WETLAND_TREES); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DEAD_SWAMP_TREES); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_6); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.HUGE_BROWN_MUSHROOM_EXTRA); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_5); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.PODZOL_SPLATTER); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SCRUB_NORMAL); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SMALL_BROWN_MUSHROOM); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_NORMAL); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP); //////////////////////////////////////////////////////////// diff --git a/src/main/java/biomesoplenty/common/biome/overworld/DenseBayouBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/DeepBayouBiome.java similarity index 97% rename from src/main/java/biomesoplenty/common/biome/overworld/DenseBayouBiome.java rename to src/main/java/biomesoplenty/common/biome/overworld/DeepBayouBiome.java index 98d1e9db8..501cdf367 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/DenseBayouBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/DeepBayouBiome.java @@ -20,9 +20,9 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures; import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; -public class DenseBayouBiome extends BiomeTemplate +public class DeepBayouBiome extends BiomeTemplate { - public DenseBayouBiome() + public DeepBayouBiome() { this.setBeachBiome(BOPBiomes.bayou_mangrove); } @@ -55,7 +55,7 @@ public class DenseBayouBiome extends BiomeTemplate //////////////////////////////////////////////////////////// // Vegetation - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DENSE_BAYOU_TREES); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DEEP_BAYOU_TREES); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_24); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DENSE_BAYOU_VINES); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/GroveBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/GroveBiome.java index ed1ba29c5..1dc7f1c5c 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/GroveBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/GroveBiome.java @@ -33,7 +33,7 @@ public class GroveBiome extends BiomeTemplate { builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.5F).scale(0.3F).temperature(0.8F).downfall(0.275F); - builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); + builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); } @Override diff --git a/src/main/java/biomesoplenty/common/biome/overworld/GroveLakesBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/GroveLakesBiome.java new file mode 100644 index 000000000..71d35756d --- /dev/null +++ b/src/main/java/biomesoplenty/common/biome/overworld/GroveLakesBiome.java @@ -0,0 +1,86 @@ +/******************************************************************************* + * 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.biome.overworld; + +import biomesoplenty.api.enums.BOPClimates; +import biomesoplenty.common.biome.BiomeTemplate; +import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures; +import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders; +import net.minecraft.entity.EntityClassification; +import net.minecraft.entity.EntityType; +import net.minecraft.world.biome.*; +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.Features; +import net.minecraft.world.gen.feature.structure.StructureFeatures; +import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; +import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; + +public class GroveLakesBiome extends BiomeTemplate +{ + public GroveLakesBiome() + { + this.setBeachBiome(null); + } + + @Override + protected void configureBiome(Biome.Builder builder) + { + builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(-0.5F).scale(0.0F).temperature(0.8F).downfall(0.275F); + + builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); + } + + @Override + protected void configureGeneration(BiomeGenerationSettings.Builder builder) + { + builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, BOPSurfaceBuilders.DIORITE_SURFACE)); + + // Structures + DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder); + builder.addStructureStart(StructureFeatures.RUINED_PORTAL_OCEAN); + + // Underground + DefaultBiomeFeatures.addDefaultCarvers(builder); + DefaultBiomeFeatures.addDefaultLakes(builder); + DefaultBiomeFeatures.addDefaultMonsterRoom(builder); + + builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Features.ORE_DIORITE); + + DefaultBiomeFeatures.addDefaultOres(builder); + + builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.DIORITE_DISK); + + //////////////////////////////////////////////////////////// + + // Vegetation + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_15); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_3); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN); + + //////////////////////////////////////////////////////////// + + // Other Features + DefaultBiomeFeatures.addDefaultSprings(builder); + DefaultBiomeFeatures.addSurfaceFreezing(builder); + } + + @Override + protected void configureMobSpawns(MobSpawnInfo.Builder builder) + { + // Entities + builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1)); + } +} diff --git a/src/main/java/biomesoplenty/common/biome/overworld/LavenderForestBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/LavenderForestBiome.java new file mode 100644 index 000000000..7eb9fa872 --- /dev/null +++ b/src/main/java/biomesoplenty/common/biome/overworld/LavenderForestBiome.java @@ -0,0 +1,86 @@ +/******************************************************************************* + * 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.biome.overworld; + +import biomesoplenty.api.enums.BOPClimates; +import biomesoplenty.common.biome.BiomeTemplate; +import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures; +import net.minecraft.entity.EntityClassification; +import net.minecraft.entity.EntityType; +import net.minecraft.world.biome.*; +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.Features; +import net.minecraft.world.gen.feature.structure.StructureFeatures; +import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; +import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; + +public class LavenderForestBiome extends BiomeTemplate +{ + public LavenderForestBiome() + { + } + + @Override + protected void configureBiome(Biome.Builder builder) + { + builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(0.1F).scale(0.1F).temperature(0.8F).downfall(0.7F); + + builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).grassColorOverride(0xA1C36D).foliageColorOverride(0xA1C36D).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); + } + + @Override + protected void configureGeneration(BiomeGenerationSettings.Builder builder) + { + builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS)); + + // Structures + DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder); + builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD); + + // Underground + DefaultBiomeFeatures.addDefaultCarvers(builder); + DefaultBiomeFeatures.addDefaultLakes(builder); + DefaultBiomeFeatures.addDefaultMonsterRoom(builder); + DefaultBiomeFeatures.addDefaultUndergroundVariety(builder); + DefaultBiomeFeatures.addDefaultOres(builder); + + //////////////////////////////////////////////////////////// + + // Vegetation + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LAVENDER_FOREST_TREES); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LAVENDER_FLOWERS); + + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_24); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE); + + //////////////////////////////////////////////////////////// + + // Other Features + DefaultBiomeFeatures.addDefaultSprings(builder); + DefaultBiomeFeatures.addSurfaceFreezing(builder); + } + + @Override + protected void configureMobSpawns(MobSpawnInfo.Builder builder) + { + // Entities + builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4)); + builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4)); + builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4)); + builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4)); + builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1)); + } +} diff --git a/src/main/java/biomesoplenty/common/biome/overworld/RainforestBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/RainforestBiome.java index be0c8a0ac..a79c1c71c 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/RainforestBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/RainforestBiome.java @@ -62,7 +62,7 @@ public class RainforestBiome extends BiomeTemplate builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_FLOWERS); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_25); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_10); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_5); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_12); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/RedwoodForestBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/RedwoodForestBiome.java index 900d6feb5..254be4d8a 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/RedwoodForestBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/RedwoodForestBiome.java @@ -58,8 +58,8 @@ public class RedwoodForestBiome extends BiomeTemplate // Vegetation builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REDWOOD_FOREST_TREES); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_24); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_25); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/RedwoodHillsBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/RedwoodHillsBiome.java index d7265449c..e14d731d2 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/RedwoodHillsBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/RedwoodHillsBiome.java @@ -58,8 +58,8 @@ public class RedwoodHillsBiome extends BiomeTemplate builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REDWOOD_HILLS_TREES); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_24); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_25); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/MuskegBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/SeasonalOrchardBiome.java similarity index 71% rename from src/main/java/biomesoplenty/common/biome/overworld/MuskegBiome.java rename to src/main/java/biomesoplenty/common/biome/overworld/SeasonalOrchardBiome.java index 4ca6d8321..431542ed6 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/MuskegBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/SeasonalOrchardBiome.java @@ -7,67 +7,64 @@ ******************************************************************************/ package biomesoplenty.common.biome.overworld; +import biomesoplenty.api.biome.BOPBiomes; import biomesoplenty.api.enums.BOPClimates; import biomesoplenty.common.biome.BiomeTemplate; import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures; -import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders; import net.minecraft.entity.EntityClassification; import net.minecraft.entity.EntityType; import net.minecraft.world.biome.*; import net.minecraft.world.gen.GenerationStage; -import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.Features; import net.minecraft.world.gen.feature.structure.StructureFeatures; import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; -public class MuskegBiome extends BiomeTemplate +public class SeasonalOrchardBiome extends BiomeTemplate { - public MuskegBiome() + public SeasonalOrchardBiome() { - this.addWeight(BOPClimates.TUNDRA, 3); - this.setBeachBiome(null); + this.setBeachBiome(BOPBiomes.gravel_beach); } @Override protected void configureBiome(Biome.Builder builder) { - builder.precipitation(Biome.RainType.SNOW).biomeCategory(Biome.Category.ICY).depth(-0.175F).scale(-0.05F).temperature(-0.25F).downfall(0.6F); + builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.0F).scale(0.0F).temperature(0.4F).downfall(0.8F); - builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(-0.25F)).grassColorOverride(0x94966E).foliageColorOverride(0x8D9B6B).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); + builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.4F)).grassColorOverride(0xB5B952).foliageColorOverride(0xA3A627).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); } @Override protected void configureGeneration(BiomeGenerationSettings.Builder builder) { - builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.PODZOL, SurfaceBuilder.CONFIG_GRASS)); + builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS)); // Structures + builder.addStructureStart(StructureFeatures.WOODLAND_MANSION); DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder); - builder.addStructureStart(StructureFeatures.RUINED_PORTAL_SWAMP); + builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD); // Underground DefaultBiomeFeatures.addDefaultCarvers(builder); DefaultBiomeFeatures.addDefaultLakes(builder); - - builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON); - DefaultBiomeFeatures.addDefaultMonsterRoom(builder); DefaultBiomeFeatures.addDefaultUndergroundVariety(builder); DefaultBiomeFeatures.addDefaultOres(builder); - - builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Features.DISK_CLAY); - builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Features.DISK_GRAVEL); - builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.MUD_DISK); + DefaultBiomeFeatures.addDefaultSoftDisks(builder); //////////////////////////////////////////////////////////// // Vegetation - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MUSKEG_TREES); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SEASONAL_ORCHARD_TREES); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.ORCHARD_FLOWERS); builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_10); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SCRUB_NORMAL); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_3); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_5); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_EXTRA); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL); //////////////////////////////////////////////////////////// @@ -80,7 +77,8 @@ public class MuskegBiome extends BiomeTemplate protected void configureMobSpawns(MobSpawnInfo.Builder builder) { // Entities - builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3)); + builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4)); + builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4)); builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8)); builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4)); builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4)); @@ -90,6 +88,5 @@ public class MuskegBiome extends BiomeTemplate builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4)); builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4)); builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1)); - builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.STRAY, 20, 4, 4)); } } diff --git a/src/main/java/biomesoplenty/common/biome/overworld/WastelandBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/WastelandBiome.java index c0b5edb23..385ab51b3 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/WastelandBiome.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/WastelandBiome.java @@ -47,7 +47,6 @@ public class WastelandBiome extends BiomeTemplate // Underground DefaultBiomeFeatures.addDefaultCarvers(builder); - DefaultBiomeFeatures.addDefaultLakes(builder); DefaultBiomeFeatures.addDefaultMonsterRoom(builder); DefaultBiomeFeatures.addDefaultUndergroundVariety(builder); DefaultBiomeFeatures.addDefaultOres(builder); @@ -55,9 +54,6 @@ public class WastelandBiome extends BiomeTemplate //////////////////////////////////////////////////////////// // Vegetation - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_TREES); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_FLOWERS); - builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_GRASS_2); //////////////////////////////////////////////////////////// diff --git a/src/main/java/biomesoplenty/common/biome/overworld/WoodedWastelandBiome.java b/src/main/java/biomesoplenty/common/biome/overworld/WoodedWastelandBiome.java new file mode 100644 index 000000000..2d7470d75 --- /dev/null +++ b/src/main/java/biomesoplenty/common/biome/overworld/WoodedWastelandBiome.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * 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.biome.overworld; + +import biomesoplenty.api.enums.BOPClimates; +import biomesoplenty.common.biome.BiomeTemplate; +import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures; +import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders; +import net.minecraft.entity.EntityClassification; +import net.minecraft.entity.EntityType; +import net.minecraft.world.biome.*; +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.structure.StructureFeatures; +import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; +import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; + +public class WoodedWastelandBiome extends BiomeTemplate +{ + public WoodedWastelandBiome() + { + this.addWeight(BOPClimates.HOT_DESERT, 1); + this.setBeachBiome(null); + this.setRiverBiome(null); + } + + @Override + protected void configureBiome(Biome.Builder builder) + { + builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.DESERT).depth(0.0F).scale(-0.1F).temperature(2.0F).downfall(0.0F); + + builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x433721).waterFogColor(0x0C0C03).fogColor(0xDBDDC1).skyColor(0x70ADEF).grassColorOverride(0xAD9364).foliageColorOverride(0xB5A76C).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()); + } + + @Override + protected void configureGeneration(BiomeGenerationSettings.Builder builder) + { + builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, BOPSurfaceBuilders.DRIED_SALT_SURFACE)); + + // Structures + DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder); + builder.addStructureStart(StructureFeatures.RUINED_PORTAL_JUNGLE); + + // Underground + DefaultBiomeFeatures.addDefaultCarvers(builder); + DefaultBiomeFeatures.addDefaultLakes(builder); + DefaultBiomeFeatures.addDefaultMonsterRoom(builder); + DefaultBiomeFeatures.addDefaultUndergroundVariety(builder); + DefaultBiomeFeatures.addDefaultOres(builder); + + //////////////////////////////////////////////////////////// + + // Vegetation + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_TREES); + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_FLOWERS); + + builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_GRASS_2); + + //////////////////////////////////////////////////////////// + + // Other Features + DefaultBiomeFeatures.addDefaultSprings(builder); + DefaultBiomeFeatures.addSurfaceFreezing(builder); + } + + @Override + protected void configureMobSpawns(MobSpawnInfo.Builder builder) + { + // Entities + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.HUSK, 80, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4)); + builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4)); + } +} diff --git a/src/main/java/biomesoplenty/common/world/gen/feature/BOPConfiguredFeatures.java b/src/main/java/biomesoplenty/common/world/gen/feature/BOPConfiguredFeatures.java index 9b65faec1..baaa599e8 100644 --- a/src/main/java/biomesoplenty/common/world/gen/feature/BOPConfiguredFeatures.java +++ b/src/main/java/biomesoplenty/common/world/gen/feature/BOPConfiguredFeatures.java @@ -113,18 +113,19 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature CONIFEROUS_FOREST_TREES = register("coniferous_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.33333334F)), FIR_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.1F, 1)))); public static final ConfiguredFeature CONIFEROUS_LAKES_TREES = register("coniferous_lakes_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.1F)), FIR_TREE_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.1F, 1)))); public static final ConfiguredFeature DEAD_FOREST_TREES = register("dead_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DYING_TREE.weighted(0.2F), DEAD_TREE.weighted(0.1F), TALL_SPRUCE_TREE.weighted(0.3F), SMALL_DEAD_TREE.weighted(0.3F)), Features.OAK)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.5F, 1)))); - public static final ConfiguredFeature DENSE_BAYOU_TREES = register("dense_bayou_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(CYPRESS_TREE.weighted(0.2F), CYPRESS_TREE_MEDIUM.weighted(0.5F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.6F, 1)))); - public static final ConfiguredFeature DRYLAND_TREES = register("dryland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TWIGLET_TREE.weighted(0.4F), DYING_TREE.weighted(0.1F), SPARSE_OAK_TREE.weighted(0.2F)), ACACIA_TWIGLET_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.4F, 1)))); + public static final ConfiguredFeature DEAD_SWAMP_TREES = register("dead_swamp_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DARK_OAK_TWIGLET_TREE.weighted(0.4F), DEAD_TREE.weighted(0.3F), DYING_TREE.weighted(0.075F), DEAD_TWIGLET_TREE_TALL.weighted(0.1F)), DEAD_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.3F, 1)))); + public static final ConfiguredFeature DEEP_BAYOU_TREES = register("deep_bayou_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(CYPRESS_TREE.weighted(0.2F), CYPRESS_TREE_MEDIUM.weighted(0.5F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.6F, 1)))); + public static final ConfiguredFeature DRYLAND_TREES = register("dryland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TWIGLET_TREE.weighted(0.4F), DYING_TREE.weighted(0.1F), SPARSE_OAK_TREE.weighted(0.2F)), ACACIA_TWIGLET_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.5F, 1)))); public static final ConfiguredFeature FIR_CLEARING_TREES = register("fir_clearing_trees", FIR_TREE_SMALL.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.1F, 1)))); public static final ConfiguredFeature FLOWER_MEADOW_TREES = register("flower_meadow_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE_BEES.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.3F, 1)))); public static final ConfiguredFeature FUNGAL_JUNGLE_TREES = register("fungal_jungle_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.1F, 1)))); public static final ConfiguredFeature GROVE_TREES = register("grove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPARSE_OAK_TREE.weighted(0.05F), DARK_OAK_POPLAR.weighted(0.2F), SPRUCE_POPLAR.weighted(0.4F), FLOWERING_BUSH.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.5F, 1)))); public static final ConfiguredFeature JADE_CLIFFS_TREES = register("jade_cliffs_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE.weighted(0.075F), Features.PINE.weighted(0.025F)), SPRUCE_BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(35, 0.1F, 1)))); - public static final ConfiguredFeature LAVENDER_FIELD_TREES = register("lavender_field_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE_BEES.weighted(0.2F), BIG_FLOWERING_OAK_TREE.weighted(0.1F), BIG_JACARANDA_TREE.weighted(0.1F)), JACARANDA_TREE_BEES)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1)))); + public static final ConfiguredFeature LAVENDER_FIELD_TREES = register("lavender_field_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE_BEES.weighted(0.2F), BIG_FLOWERING_OAK_TREE.weighted(0.1F), BIG_JACARANDA_TREE.weighted(0.1F)), JACARANDA_TREE_BEES)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.85F, 0.2F, 1)))); + public static final ConfiguredFeature LAVENDER_FOREST_TREES = register("lavender_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE_BEES.weighted(0.1F), BIG_FLOWERING_OAK_TREE.weighted(0.05F), BIG_JACARANDA_TREE.weighted(0.1F)), JACARANDA_TREE_BEES)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(7, 0.3F, 1)))); public static final ConfiguredFeature LUSH_DESERT_TREES = register("lush_desert_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(ACACIA_BUSH.weighted(0.4F), SPARSE_ACACIA_TREE.weighted(0.2F)), ACACIA_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1)))); public static final ConfiguredFeature MEADOW_TREES = register("meadow_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE_BEES.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(4, 0.1F, 1)))); public static final ConfiguredFeature MEADOW_FOREST_TREES = register("meadow_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.25F)), TALL_SPRUCE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(8, 0.1F, 1)))); - public static final ConfiguredFeature MUSKEG_TREES = register("muskeg_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DARK_OAK_TWIGLET_TREE.weighted(0.4F), DEAD_TREE.weighted(0.3F), DYING_TREE.weighted(0.075F), DEAD_TWIGLET_TREE_TALL.weighted(0.1F)), DEAD_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1)))); public static final ConfiguredFeature MYSTIC_GROVE_TREES = register("mystic_grove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_FLOWERING_OAK_TREE.weighted(0.15F), JACARANDA_TREE.weighted(0.25F), BIG_MAGIC_TREE.weighted(0.3F)), MAGIC_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.5F, 1)))); public static final ConfiguredFeature MYSTIC_PLAINS_TREES = register("mystic_plains_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE.weighted(0.1F), JACARANDA_TREE.weighted(0.25F)), MAGIC_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1)))); public static final ConfiguredFeature OMINOUS_WOODS_TREES = register("ominous_woods_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE.weighted(0.05F), DYING_TREE.weighted(0.15F), TALL_UMBRAN_TREE.weighted(0.7F)), UMBRAN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(7, 0.5F, 1)))); @@ -141,12 +142,12 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature REDWOOD_FOREST_TREES = register("redwood_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.1F), REDWOOD_TREE.weighted(0.3F), REDWOOD_TREE_LARGE.weighted(0.5F)), REDWOOD_TREE_MEDIUM)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(18, 0.2F, 1)))); public static final ConfiguredFeature REDWOOD_HILLS_TREES = register("redwood_hills_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.1F), REDWOOD_TREE_MEDIUM.weighted(0.3F)), REDWOOD_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(24, 0.2F, 1)))); public static final ConfiguredFeature SEASONAL_FOREST_TREES = register("seasonal_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.OAK.weighted(0.05F), BIG_OAK_TREE.weighted(0.025F), MAPLE_TREE.weighted(0.2F), YELLOW_AUTUMN_TREE.weighted(0.3F), BIG_MAPLE_TREE.weighted(0.1F), BIG_YELLOW_AUTUMN_TREE.weighted(0.1F), BIG_ORANGE_AUTUMN_TREE.weighted(0.1F)), ORANGE_AUTUMN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.3F, 1)))); - public static final ConfiguredFeature SEASONAL_PUMPKIN_PATCH_TREES = register("seasonal_pumpkin_patch_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.2F), YELLOW_AUTUMN_TREE.weighted(0.1F), BIG_YELLOW_AUTUMN_TREE.weighted(0.05F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.5F, 1)))); - public static final ConfiguredFeature SHROOMY_WETLAND_TREES = register("shroomy_wetland_trees", DARK_OAK_TWIGLET_TREE.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.1F, 1)))); + public static final ConfiguredFeature SEASONAL_ORCHARD_TREES = register("seasonal_orchard_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_YELLOW_AUTUMN_TREE.weighted(0.05F)), YELLOW_AUTUMN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.5F, 1)))); + public static final ConfiguredFeature SEASONAL_PUMPKIN_PATCH_TREES = register("seasonal_pumpkin_patch_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.2F), ORANGE_AUTUMN_TREE.weighted(0.1F), BIG_ORANGE_AUTUMN_TREE.weighted(0.05F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.5F, 1)))); public static final ConfiguredFeature SHRUBLAND_TREES = register("shrubland_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.05F, 1)))); public static final ConfiguredFeature SHRUBLAND_HILLS_TREES = register("shrubland_hills_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.05F, 1)))); public static final ConfiguredFeature SILKGLADE_TREES = register("silkglade_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.SWAMP_TREE.weighted(0.05F), BIRCH_POPLAR.weighted(0.15F), COBWEB_BUSH.weighted(0.2F), SMALL_DEAD_TREE.weighted(0.5F), SILK_TREE.weighted(0.2F), FULL_COBWEB_BUSH.weighted(0.05F), FULL_SILK_TREE.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1)))); - public static final ConfiguredFeature SILKGLADE_NEST_TREES = register("silkglade_nest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(COBWEB_BUSH.weighted(0.3F), SMALL_DEAD_TREE.weighted(0.1F), SILK_TREE.weighted(0.3F), FULL_COBWEB_BUSH.weighted(0.2F), FULL_SILK_TREE.weighted(0.2F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(25, 0.5F, 1)))); + public static final ConfiguredFeature SILKGLADE_NEST_TREES = register("silkglade_nest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SMALL_DEAD_TREE.weighted(0.1F), SILK_TREE.weighted(0.1F), FULL_COBWEB_BUSH.weighted(0.4F), FULL_SILK_TREE.weighted(0.3F)), COBWEB_BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(25, 0.5F, 1)))); public static final ConfiguredFeature SNOWY_CONIFEROUS_FOREST_TREES = register("snowy_coniferous_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.4F), MAPLE_TREE.weighted(0.1F)), FIR_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.1F, 1)))); public static final ConfiguredFeature SNOWY_MAPLE_FOREST_TREES = register("snowy_maple_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.025F), FIR_TREE_SMALL.weighted(0.1F), BIG_MAPLE_TREE.weighted(0.3F)), MAPLE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.1F, 1)))); public static final ConfiguredFeature TROPICS_TREES = register("tropics_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(JUNGLE_TWIGLET_TREE.weighted(0.3F), FLOWERING_BUSH.weighted(0.1F)), PALM_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(11, 0.2F, 1)))); @@ -154,7 +155,7 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature TUNDRA_BOG_TREES = register("tundra_bog_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPRUCE_TWIGLET_TREE.weighted(0.4F), MAPLE_TWIGLET_TREE.weighted(0.6F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(16, 0.4F, 1)))); public static final ConfiguredFeature UNDERGROWTH_TREES = register("undergrowth_trees", HELLBARK_TREE.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35))); public static final ConfiguredFeature VOLCANIC_PLAINS_TREES = register("volcanic_plains_trees", TWIGLET_TREE_VOLCANO.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.1F, 1)))); - public static final ConfiguredFeature WASTELAND_TREES = register("wasteland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE_WASTELAND.weighted(0.2F)), DYING_TREE_WASTELAND)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.75F, 0.1F, 1)))); + public static final ConfiguredFeature WASTELAND_TREES = register("wasteland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE_WASTELAND.weighted(0.2F)), DYING_TREE_WASTELAND)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.8F, 0.2F, 1)))); public static final ConfiguredFeature WETLAND_TREES = register("wetland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE.weighted(0.5F)), WILLOW_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.1F, 1)))); // Biome Flower Listings @@ -195,6 +196,8 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature FERN_GRASS_8 = register("fern_grass_8", BOPFeatures.FERN_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(8))); public static final ConfiguredFeature FERN_GRASS_16 = register("fern_grass_16", BOPFeatures.FERN_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(16))); + public static final ConfiguredFeature FERN_24 = register("fern_24", BOPFeatures.FERN.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(24))); + public static final ConfiguredFeature WASTELAND_GRASS_2 = register("wasteland_grass_2", BOPFeatures.WASTELAND_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(2))); public static final ConfiguredFeature BUSH_10 = register("bush_10", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.bush.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10))); @@ -226,6 +229,7 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature LARGE_FERN_7 = register("large_fern_7", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.LARGE_FERN.defaultBlockState())).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(7))); public static final ConfiguredFeature LARGE_FERN_14 = register("large_fern_14", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.LARGE_FERN.defaultBlockState())).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(14))); + public static final ConfiguredFeature LARGE_FERN_25 = register("large_fern_25", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.LARGE_FERN.defaultBlockState())).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(25))); ///////////////////////////////////////////////////////////////////// @@ -286,9 +290,10 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature BRAMBLE_EXTRA = register("bramble_extra", BOPFeatures.BRAMBLE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10))); public static final ConfiguredFeature CRAG_SPLATTER = register("crag_splatter", BOPFeatures.CRAG_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(128))); public static final ConfiguredFeature DENSE_BAYOU_VINES = register("dense_bayou_vines", BOPFeatures.DENSE_BAYOU_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128)); + public static final ConfiguredFeature DIORITE_DISK = register("diorite_disk", Feature.DISK.configured(new SphereReplaceConfig(Blocks.DIORITE.defaultBlockState(), FeatureSpread.of(3, 4), 2, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState(), Blocks.PODZOL.defaultBlockState(), Blocks.SAND.defaultBlockState(), Blocks.GRAVEL.defaultBlockState(), Blocks.GRANITE.defaultBlockState(), Blocks.ANDESITE.defaultBlockState(), Blocks.DIORITE.defaultBlockState(), Blocks.COAL_ORE.defaultBlockState(), Blocks.IRON_ORE.defaultBlockState(), Blocks.STONE.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(14)); public static final ConfiguredFeature FLESH_TENDON = register("flesh_tendon", BOPFeatures.FLESH_TENDON.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(65))); public static final ConfiguredFeature GRAVEL_DISK_EXTRA = register("gravel_disk_extra", Feature.DISK.configured(new SphereReplaceConfig(Blocks.GRAVEL.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(6)); - public static final ConfiguredFeature HUGE_BROWN_MUSHROOM_EXTRA = register("huge_brown_mushroom_extra", Features.HUGE_BROWN_MUSHROOM.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(19))); + public static final ConfiguredFeature HUGE_BROWN_MUSHROOM_EXTRA = register("huge_brown_mushroom_extra", Features.HUGE_BROWN_MUSHROOM.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(21))); public static final ConfiguredFeature HUGE_GLOWSHROOM = register("huge_glowshroom", BOPFeatures.HUGE_GLOWSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(6))); public static final ConfiguredFeature HUGE_GLOWSHROOM_EXTRA = register("huge_glowshroom_extra", BOPFeatures.HUGE_GLOWSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(18))); public static final ConfiguredFeature HUGE_RED_MUSHROOM_EXTRA = register("huge_red_mushroom_extra", Features.HUGE_RED_MUSHROOM.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(6))); @@ -302,15 +307,15 @@ public class BOPConfiguredFeatures public static final ConfiguredFeature NETHER_VINES = register("nether_vines", BOPFeatures.NETHER_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(150))); public static final ConfiguredFeature OBSIDIAN_SPLATTER = register("obsidian_splatter", BOPFeatures.OBSIDIAN_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(12))); public static final ConfiguredFeature ORANGE_SAND_DISK = register("orange_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.orange_sand.defaultBlockState(), FeatureSpread.of(2, 4), 2, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(3)); - public static final ConfiguredFeature PODZOL_SPLATTER = register("podzol_splatter", BOPFeatures.PODZOL_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(16))); + public static final ConfiguredFeature PODZOL_SPLATTER = register("podzol_splatter", BOPFeatures.PODZOL_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(22))); public static final ConfiguredFeature PUMPKIN_PATCH = register("pumpkin_patch", BOPFeatures.PUMPKIN_PATCH.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35))); public static final ConfiguredFeature RAINFOREST_CLIFFS_VINES = register("overgrown_cliffs_vines", BOPFeatures.RAINFOREST_CLIFFS_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128)); public static final ConfiguredFeature SCATTERED_ROCKS = register("scattered_rocks", BOPFeatures.SCATTERED_ROCKS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3))); public static final ConfiguredFeature SCRUB_EXTRA = register("scrub_extra", BOPFeatures.SCRUB.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35))); - public static final ConfiguredFeature SCRUB_NORMAL = register("scrub_normal", BOPFeatures.SCRUB.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10))); + public static final ConfiguredFeature SCRUB_NORMAL = register("scrub_normal", BOPFeatures.SCRUB.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(5))); public static final ConfiguredFeature SHORT_BAMBOO_10 = register("short_bamboo_10", BOPFeatures.SHORT_BAMBOO.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10))); public static final ConfiguredFeature SHORT_BAMBOO_5 = register("short_bamboo_5", BOPFeatures.SHORT_BAMBOO.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(5))); - public static final ConfiguredFeature SMALL_BROWN_MUSHROOM = register("small_brown_mushroom", BOPFeatures.SMALL_BROWN_MUSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(2))); + public static final ConfiguredFeature SMALL_BROWN_MUSHROOM = register("small_brown_mushroom", BOPFeatures.SMALL_BROWN_MUSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3))); public static final ConfiguredFeature SMALL_CRYSTAL = register("small_crystal", BOPFeatures.SMALL_CRYSTAL.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(40))); public static final ConfiguredFeature SMALL_GLOWSHROOM = register("small_glowshroom", BOPFeatures.SMALL_GLOWSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3))); public static final ConfiguredFeature SMALL_GLOWSHROOM_EXTRA = register("small_glowshroom_extra", BOPFeatures.SMALL_GLOWSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(12))); diff --git a/src/main/java/biomesoplenty/common/world/gen/feature/BOPFeatures.java b/src/main/java/biomesoplenty/common/world/gen/feature/BOPFeatures.java index 17212bb26..b7db088e8 100644 --- a/src/main/java/biomesoplenty/common/world/gen/feature/BOPFeatures.java +++ b/src/main/java/biomesoplenty/common/world/gen/feature/BOPFeatures.java @@ -118,6 +118,7 @@ public class BOPFeatures public static final Feature BRAMBLE = register("bramble", new BrambleFeature(NoFeatureConfig.CODEC)); public static final Feature CRAG_SPLATTER = register("crag_splatter", new CragSplatterFeature(NoFeatureConfig.CODEC)); public static final Feature DENSE_BAYOU_VINES = register("dense_bayou_vines", new DenseBayouVinesFeature(NoFeatureConfig.CODEC)); + public static final Feature FERN = register("fern", new FernFeature(NoFeatureConfig.CODEC)); public static final Feature FERN_GRASS = register("fern_grass", new FernGrassFeature(NoFeatureConfig.CODEC)); public static final Feature FLESH_TENDON = register("flesh_tendon", new FleshTendonFeature(NoFeatureConfig.CODEC)); public static final Feature GRASS_SPLATTER = register("grass_splatter", new GrassSplatterFeature(NoFeatureConfig.CODEC)); diff --git a/src/main/java/biomesoplenty/common/world/gen/feature/FernFeature.java b/src/main/java/biomesoplenty/common/world/gen/feature/FernFeature.java new file mode 100644 index 000000000..3ad63ffdf --- /dev/null +++ b/src/main/java/biomesoplenty/common/world/gen/feature/FernFeature.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * 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 com.mojang.serialization.Codec; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ISeedReader; +import net.minecraft.world.gen.ChunkGenerator; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.NoFeatureConfig; + +import java.util.Random; + +public class FernFeature extends Feature +{ + public FernFeature(Codec deserializer) + { + super(deserializer); + } + + public BlockState chooseGrassState(Random rand) + { + return Blocks.FERN.defaultBlockState(); + } + + @Override + public boolean place(ISeedReader world, ChunkGenerator chunkGenerator, Random rand, BlockPos pos, NoFeatureConfig config) + { + BlockState BlockState = this.chooseGrassState(rand); + + for (BlockState BlockState1 = world.getBlockState(pos); (BlockState1.isAir(world, pos) || BlockState1.is(BlockTags.LEAVES)) && pos.getY() > 0; BlockState1 = world.getBlockState(pos)) + { + pos = pos.below(); + } + + int i = 0; + + for (int j = 0; j < 128; ++j) + { + BlockPos blockpos = pos.offset(rand.nextInt(8) - rand.nextInt(8), rand.nextInt(4) - rand.nextInt(4), rand.nextInt(8) - rand.nextInt(8)); + if (world.isEmptyBlock(blockpos) && BlockState.canSurvive(world, blockpos)) + { + world.setBlock(blockpos, BlockState, 2); + ++i; + } + } + + return i > 0; + } +} \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/BOPSurfaceBuilders.java b/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/BOPSurfaceBuilders.java index d5db2b428..be4a8ee96 100644 --- a/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/BOPSurfaceBuilders.java +++ b/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/BOPSurfaceBuilders.java @@ -21,8 +21,8 @@ public class BOPSurfaceBuilders public static final SurfaceBuilderConfig BLACKSTONE_SURFACE = new SurfaceBuilderConfig(Blocks.BLACKSTONE.defaultBlockState(), Blocks.BLACKSTONE.defaultBlockState(), Blocks.BLACKSTONE.defaultBlockState()); public static final SurfaceBuilderConfig BASALT_SURFACE = new SurfaceBuilderConfig(Blocks.BASALT.defaultBlockState(), Blocks.BASALT.defaultBlockState(), Blocks.GRAVEL.defaultBlockState()); public static final SurfaceBuilderConfig TERRACOTTA_SURFACE = new SurfaceBuilderConfig(Blocks.TERRACOTTA.defaultBlockState(), Blocks.TERRACOTTA.defaultBlockState(), Blocks.GRAVEL.defaultBlockState()); + public static final SurfaceBuilderConfig DIORITE_SURFACE = new SurfaceBuilderConfig(Blocks.DIORITE.defaultBlockState(), Blocks.DIORITE.defaultBlockState(), Blocks.DIORITE.defaultBlockState()); public static final SurfaceBuilderConfig MAGMA_SURFACE = new SurfaceBuilderConfig(Blocks.MAGMA_BLOCK.defaultBlockState(), Blocks.MAGMA_BLOCK.defaultBlockState(), Blocks.BASALT.defaultBlockState()); - public static final SurfaceBuilderConfig MUD_SURFACE = new SurfaceBuilderConfig(BOPBlocks.mud.defaultBlockState(), BOPBlocks.mud.defaultBlockState(), BOPBlocks.mud.defaultBlockState()); public static final SurfaceBuilderConfig SNOW_SNOW_GRAVEL_SURFACE = new SurfaceBuilderConfig(Blocks.SNOW_BLOCK.defaultBlockState(), Blocks.SNOW_BLOCK.defaultBlockState(), Blocks.GRAVEL.defaultBlockState()); public static final SurfaceBuilderConfig WHITE_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.white_sand.defaultBlockState(), BOPBlocks.white_sand.defaultBlockState(), BOPBlocks.white_sand.defaultBlockState()); public static final SurfaceBuilderConfig ORANGE_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.orange_sand.defaultBlockState(), BOPBlocks.orange_sand.defaultBlockState(), BOPBlocks.orange_sand.defaultBlockState()); @@ -36,7 +36,6 @@ public class BOPSurfaceBuilders public static final SurfaceBuilder TERRACOTTA = register("terracotta", new TerracottaSurfaceBuilder(SurfaceBuilderConfig.CODEC)); public static final SurfaceBuilder MARSH = register("marsh", new MarshSurfaceBuilder(SurfaceBuilderConfig.CODEC)); public static final SurfaceBuilder MANGROVE = register("mangrove", new MangroveSurfaceBuilder(SurfaceBuilderConfig.CODEC)); - public static final SurfaceBuilder MUD = register("mud", new MudSurfaceBuilder(SurfaceBuilderConfig.CODEC)); public static final SurfaceBuilder PODZOL = register("podzol", new PodzolSurfaceBuilder(SurfaceBuilderConfig.CODEC)); public static final SurfaceBuilder VOLCANO = register("volcano", new VolcanoSurfaceBuilder(SurfaceBuilderConfig.CODEC)); public static final SurfaceBuilder DEEP_TOP_LAYER = register("deep_top_layer", new DeepTopLayerSurfaceBuilder(SurfaceBuilderConfig.CODEC)); diff --git a/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/MudSurfaceBuilder.java b/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/MudSurfaceBuilder.java deleted file mode 100644 index 73079ba3a..000000000 --- a/src/main/java/biomesoplenty/common/world/gen/surfacebuilders/MudSurfaceBuilder.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * 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.surfacebuilders; - -import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders; -import com.mojang.serialization.Codec; -import net.minecraft.block.BlockState; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; -import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig; - -import java.util.Random; - -public class MudSurfaceBuilder extends SurfaceBuilder -{ - public MudSurfaceBuilder(Codec deserializer) - { - super(deserializer); - } - - @Override - public void apply(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, BlockState defaultBlock, BlockState defaultFluid, int seaLevel, long seed, SurfaceBuilderConfig config) { - if (noise > 1.7D) - { - SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, BOPSurfaceBuilders.MUD_SURFACE); - } - else - { - SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_GRASS); - } - - } -} \ 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 6990c6825..3cad18e70 100644 --- a/src/main/java/biomesoplenty/init/ModBiomes.java +++ b/src/main/java/biomesoplenty/init/ModBiomes.java @@ -133,7 +133,8 @@ public class ModBiomes registerBiome(new ConiferousForestBiome(), "coniferous_forest"); registerBiome(new ConiferousLakesBiome(), "coniferous_lakes"); registerBiome(new DeadForestBiome(), "dead_forest"); - registerBiome(new DenseBayouBiome(), "dense_bayou"); + registerBiome(new DeadSwampBiome(), "dead_swamp"); + registerBiome(new DeepBayouBiome(), "deep_bayou"); registerBiome(new DrylandBiome(), "dryland"); registerBiome(new DrySteppeBiome(), "dry_steppe"); registerBiome(new FirClearingBiome(), "fir_clearing"); @@ -141,17 +142,18 @@ public class ModBiomes registerBiome(new FungalJungleBiome(), "fungal_jungle"); registerBiome(new GoldenPrairieBiome(), "golden_prairie"); registerBiome(new GroveBiome(), "grove"); + registerBiome(new GroveLakesBiome(), "grove_lakes"); registerBiome(new HighlandBiome(), "highland"); registerBiome(new HighlandCragBiome(), "highland_crag"); registerBiome(new HighlandMoorBiome(), "highland_moor"); registerBiome(new JadeCliffsBiome(), "jade_cliffs"); registerBiome(new JadeGrasslandBiome(), "jade_grassland"); registerBiome(new LavenderFieldBiome(), "lavender_field"); + registerBiome(new LavenderForestBiome(), "lavender_forest"); registerBiome(new LushDesertBiome(), "lush_desert"); registerBiome(new LushSavannaBiome(), "lush_savanna"); registerBiome(new MeadowBiome(), "meadow"); registerBiome(new MeadowForestBiome(), "meadow_forest"); - registerBiome(new MuskegBiome(), "muskeg"); registerBiome(new MysticGroveBiome(), "mystic_grove"); registerBiome(new MysticPlainsBiome(), "mystic_plains"); registerBiome(new OminousWoodsBiome(), "ominous_woods"); @@ -166,8 +168,8 @@ public class ModBiomes registerBiome(new RedwoodForestBiome(), "redwood_forest"); registerBiome(new RedwoodHillsBiome(), "redwood_hills"); registerBiome(new SeasonalForestBiome(), "seasonal_forest"); + registerBiome(new SeasonalOrchardBiome(), "seasonal_orchard"); registerBiome(new SeasonalPumpkinPatchBiome(), "seasonal_pumpkin_patch"); - registerBiome(new ShroomyWetlandBiome(), "shroomy_wetland"); registerBiome(new ShrublandBiome(), "shrubland"); registerBiome(new ShrublandHillsBiome(), "shrubland_hills"); registerBiome(new SilkgladeBiome(), "silkglade"); @@ -183,6 +185,7 @@ public class ModBiomes registerBiome(new WastelandBiome(), "wasteland"); registerBiome(new WetlandBiome(), "wetland"); registerBiome(new WetlandMarshBiome(), "wetland_marsh"); + registerBiome(new WoodedWastelandBiome(), "wooded_wasteland"); //Nether Biomes registerBiome(new CrystallineChasmBiome(), "crystalline_chasm"); @@ -194,7 +197,7 @@ public class ModBiomes BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.STANDARD_BIOME); //Sub/Island Biomes (Note: Rarity supports two decimal places) - registerSubBiome(bayou, dense_bayou, 1.0F, 100); + registerSubBiome(bayou, deep_bayou, 1.0F, 100); registerSubBiome(bayou, bayou_mangrove, 1.0F, 100); registerSubBiome(cherry_blossom_grove, bamboo_grove, 0.8F, 100); @@ -202,15 +205,21 @@ public class ModBiomes registerSubBiome(coniferous_forest, fir_clearing, 0.75F, 100); registerSubBiome(coniferous_forest, coniferous_lakes, 1.0F, 100); + registerSubBiome(dead_forest, dead_swamp, 0.75F, 100); + registerSubBiome(dryland, dry_steppe, 1.0F, 100); registerSubBiome(fungal_jungle, overgrown_fungal_jungle, 0.8F, 100); + registerSubBiome(grove, grove_lakes, 0.75F, 100); + registerSubBiome(highland, highland_crag, 1.25F, 100); registerSubBiome(highland, highland_moor, 0.75F, 100); registerSubBiome(jade_cliffs, jade_grassland, 0.85F, 100); + registerSubBiome(lavender_field, lavender_forest, 0.6F, 100); + registerSubBiome(lush_desert, lush_savanna, 0.65F, 100); registerSubBiome(meadow, flower_meadow, 1.0F, 100); @@ -227,7 +236,8 @@ public class ModBiomes registerSubBiome(redwood_forest, redwood_hills, 0.75F, 100); - registerSubBiome(seasonal_forest, seasonal_pumpkin_patch, 0.45F, 100); + registerSubBiome(seasonal_forest, seasonal_orchard, 0.75F, 100); + registerSubBiome(seasonal_forest, seasonal_pumpkin_patch, 0.75F, 100); registerSubBiome(shrubland, shrubland_hills, 0.75F, 100); @@ -239,8 +249,9 @@ public class ModBiomes registerSubBiome(tundra, tundra_basin, 1.5F, 100); registerSubBiome(tundra, tundra_bog, 2.0F, 100); - registerSubBiome(wetland, wetland_marsh, 1.25F, 100); - registerSubBiome(wetland, shroomy_wetland, 1.0F, 100); + registerSubBiome(wasteland, wooded_wasteland, 0.85F, 100); + + registerSubBiome(wetland, wetland_marsh, 1.0F, 100); BiomeRegistry.configureSubBiomes(); BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.SUB_BIOME); @@ -306,7 +317,8 @@ public class ModBiomes registerVillagerType(coniferous_forest, VillagerType.TAIGA); registerVillagerType(coniferous_lakes, VillagerType.TAIGA); registerVillagerType(dead_forest, VillagerType.TAIGA); - registerVillagerType(dense_bayou, VillagerType.SWAMP); + registerVillagerType(dead_swamp, VillagerType.TAIGA); + registerVillagerType(deep_bayou, VillagerType.SWAMP); registerVillagerType(dryland, VillagerType.SAVANNA); registerVillagerType(dry_steppe, VillagerType.SAVANNA); registerVillagerType(fir_clearing, VillagerType.TAIGA); @@ -315,16 +327,17 @@ public class ModBiomes registerVillagerType(golden_prairie, VillagerType.PLAINS); registerVillagerType(gravel_beach, VillagerType.PLAINS); registerVillagerType(grove, VillagerType.PLAINS); + registerVillagerType(grove_lakes, VillagerType.PLAINS); registerVillagerType(highland, VillagerType.PLAINS); registerVillagerType(highland_crag, VillagerType.PLAINS); registerVillagerType(highland_moor, VillagerType.PLAINS); registerVillagerType(jade_cliffs, VillagerType.PLAINS); registerVillagerType(lavender_field, VillagerType.PLAINS); + registerVillagerType(lavender_forest, VillagerType.PLAINS); registerVillagerType(lush_desert, VillagerType.SAVANNA); registerVillagerType(lush_savanna, VillagerType.SAVANNA); registerVillagerType(meadow, VillagerType.TAIGA); registerVillagerType(meadow_forest, VillagerType.TAIGA); - registerVillagerType(muskeg, VillagerType.SNOW); registerVillagerType(mystic_grove, VillagerType.PLAINS); registerVillagerType(mystic_plains, VillagerType.PLAINS); registerVillagerType(ominous_woods, VillagerType.SWAMP); @@ -341,8 +354,8 @@ public class ModBiomes registerVillagerType(redwood_forest_edge, VillagerType.PLAINS); registerVillagerType(redwood_hills, VillagerType.PLAINS); registerVillagerType(seasonal_forest, VillagerType.PLAINS); + registerVillagerType(seasonal_orchard, VillagerType.PLAINS); registerVillagerType(seasonal_pumpkin_patch, VillagerType.PLAINS); - registerVillagerType(shroomy_wetland, VillagerType.SWAMP); registerVillagerType(shrubland, VillagerType.PLAINS); registerVillagerType(shrubland_hills, VillagerType.PLAINS); registerVillagerType(silkglade, VillagerType.SWAMP); @@ -360,6 +373,7 @@ public class ModBiomes registerVillagerType(wasteland, VillagerType.DESERT); registerVillagerType(wetland, VillagerType.SWAMP); registerVillagerType(wetland_marsh, VillagerType.SWAMP); + registerVillagerType(wooded_wasteland, VillagerType.DESERT); } private static void registerVillagerType(RegistryKey key, VillagerType type) diff --git a/src/main/resources/assets/biomesoplenty/lang/en_us.json b/src/main/resources/assets/biomesoplenty/lang/en_us.json index f109999fa..1459840be 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_us.json +++ b/src/main/resources/assets/biomesoplenty/lang/en_us.json @@ -18,7 +18,8 @@ "biome.biomesoplenty.coniferous_lakes": "Coniferous Lakes", "biome.biomesoplenty.crystalline_chasm": "Crystalline Chasm", "biome.biomesoplenty.dead_forest": "Dead Forest", - "biome.biomesoplenty.dense_bayou": "Dense Bayou", + "biome.biomesoplenty.dead_swamp": "Dead Swamp", + "biome.biomesoplenty.deep_bayou": "Deep Bayou", "biome.biomesoplenty.dryland": "Dryland", "biome.biomesoplenty.dry_steppe": "Dry Steppe", "biome.biomesoplenty.fir_clearing": "Fir Clearing", @@ -27,17 +28,18 @@ "biome.biomesoplenty.golden_prairie": "Golden Prairie", "biome.biomesoplenty.gravel_beach": "Gravel Beach", "biome.biomesoplenty.grove": "Grove", + "biome.biomesoplenty.grove_lakes": "Grove Lakes", "biome.biomesoplenty.highland": "Highland", "biome.biomesoplenty.highland_crag": "Highland Crag", "biome.biomesoplenty.highland_moor": "Highland Moor", "biome.biomesoplenty.jade_cliffs": "Jade Cliffs", "biome.biomesoplenty.jade_grassland": "Jade Grassland", "biome.biomesoplenty.lavender_field": "Lavender Field", + "biome.biomesoplenty.lavender_forest": "Lavender Forest", "biome.biomesoplenty.lush_desert": "Lush Desert", "biome.biomesoplenty.lush_savanna": "Lush Savanna", "biome.biomesoplenty.meadow": "Meadow", "biome.biomesoplenty.meadow_forest": "Meadow Forest", - "biome.biomesoplenty.muskeg": "Muskeg", "biome.biomesoplenty.mystic_grove": "Mystic Grove", "biome.biomesoplenty.mystic_plains": "Mystic Plains", "biome.biomesoplenty.ominous_mire": "Ominous Mire", @@ -54,8 +56,8 @@ "biome.biomesoplenty.redwood_forest_edge": "Redwood Forest Edge", "biome.biomesoplenty.redwood_hills": "Redwood Hills", "biome.biomesoplenty.seasonal_forest": "Seasonal Forest", + "biome.biomesoplenty.seasonal_orchard": "Seasonal Orchard", "biome.biomesoplenty.seasonal_pumpkin_patch": "Seasonal Pumpkin Patch", - "biome.biomesoplenty.shroomy_wetland": "Shroomy Wetland", "biome.biomesoplenty.shrubland": "Shrubland", "biome.biomesoplenty.shrubland_hills": "Shrubland Hills", "biome.biomesoplenty.silkglade": "Silkglade", @@ -76,6 +78,7 @@ "biome.biomesoplenty.wetland": "Wetland", "biome.biomesoplenty.wetland_marsh": "Wetland Marsh", "biome.biomesoplenty.withered_abyss": "Withered Abyss", + "biome.biomesoplenty.wooded_wasteland": "Wooded Wasteland", "item.biomesoplenty.bop_icon": "BOP Icon", "item.biomesoplenty.cherry_boat": "Cherry Boat", diff --git a/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/all_biomes.json b/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/all_biomes.json index 97d86f157..cfc0bc124 100644 --- a/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/all_biomes.json +++ b/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/all_biomes.json @@ -75,10 +75,16 @@ "biome": "biomesoplenty:dead_forest" } }, - "dense_bayou": { + "dead_swamp": { "trigger": "minecraft:location", "conditions": { - "biome": "biomesoplenty:dense_bayou" + "biome": "biomesoplenty:dead_swamp" + } + }, + "deep_bayou": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:deep_bayou" } }, "dryland": { @@ -128,6 +134,12 @@ "conditions": { "biome": "biomesoplenty:grove" } + }, + "grove_lakes": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:grove_lakes" + } }, "highland": { "trigger": "minecraft:location", @@ -164,6 +176,12 @@ "conditions": { "biome": "biomesoplenty:lavender_field" } + }, + "lavender_forest": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:lavender_forest" + } }, "lush_desert": { "trigger": "minecraft:location", @@ -188,12 +206,6 @@ "conditions": { "biome": "biomesoplenty:meadow_forest" } - }, - "muskeg": { - "trigger": "minecraft:location", - "conditions": { - "biome": "biomesoplenty:muskeg" - } }, "mystic_grove": { "trigger": "minecraft:location", @@ -290,18 +302,18 @@ "conditions": { "biome": "biomesoplenty:seasonal_forest" } + }, + "seasonal_orchard": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:seasonal_orchard" + } }, "seasonal_pumpkin_patch": { "trigger": "minecraft:location", "conditions": { "biome": "biomesoplenty:seasonal_pumpkin_patch" } - }, - "shroomy_wetland": { - "trigger": "minecraft:location", - "conditions": { - "biome": "biomesoplenty:shroomy_wetland" - } }, "shrubland": { "trigger": "minecraft:location", @@ -422,6 +434,12 @@ "conditions": { "biome": "biomesoplenty:withered_abyss" } + }, + "wooded_wasteland": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:wooded_wasteland" + } } }, "rewards": { diff --git a/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/root.json b/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/root.json index 16b0c9519..801200006 100644 --- a/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/root.json +++ b/src/main/resources/data/biomesoplenty/advancements/biomesoplenty/root.json @@ -74,10 +74,16 @@ "biome": "biomesoplenty:dead_forest" } }, - "dense_bayou": { + "dead_swamp": { "trigger": "minecraft:location", "conditions": { - "biome": "biomesoplenty:dense_bayou" + "biome": "biomesoplenty:dead_swamp" + } + }, + "deep_bayou": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:deep_bayou" } }, "dryland": { @@ -127,6 +133,12 @@ "conditions": { "biome": "biomesoplenty:grove" } + }, + "grove_lakes": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:grove_lakes" + } }, "highland": { "trigger": "minecraft:location", @@ -163,6 +175,12 @@ "conditions": { "biome": "biomesoplenty:lavender_field" } + }, + "lavender_forest": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:lavender_forest" + } }, "lush_desert": { "trigger": "minecraft:location", @@ -187,12 +205,6 @@ "conditions": { "biome": "biomesoplenty:meadow_forest" } - }, - "muskeg": { - "trigger": "minecraft:location", - "conditions": { - "biome": "biomesoplenty:muskeg" - } }, "mystic_grove": { "trigger": "minecraft:location", @@ -289,18 +301,18 @@ "conditions": { "biome": "biomesoplenty:seasonal_forest" } + }, + "seasonal_orchard": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:seasonal_orchard" + } }, "seasonal_pumpkin_patch": { "trigger": "minecraft:location", "conditions": { "biome": "biomesoplenty:seasonal_pumpkin_patch" } - }, - "shroomy_wetland": { - "trigger": "minecraft:location", - "conditions": { - "biome": "biomesoplenty:shroomy_wetland" - } }, "shrubland": { "trigger": "minecraft:location", @@ -421,6 +433,12 @@ "conditions": { "biome": "biomesoplenty:withered_abyss" } + }, + "wooded_wasteland": { + "trigger": "minecraft:location", + "conditions": { + "biome": "biomesoplenty:wooded_wasteland" + } } }, "requirements": [ @@ -435,7 +453,8 @@ "coniferous_lakes", "crystalline_chasm", "dead_forest", - "dense_bayou", + "dead_swamp", + "deep_bayou", "dryland", "dry_steppe", "fir_clearing", @@ -444,17 +463,18 @@ "golden_prairie", "gravel_beach", "grove", + "grove_lakes", "highland", "highland_crag", "highland_moor", "jade_cliffs", "jade_grassland", "lavender_field", + "lavender_forest", "lush_desert", "lush_savanna", "meadow", "meadow_forest", - "muskeg", "mystic_grove", "mystic_plains", "ominous_woods", @@ -471,8 +491,8 @@ "redwood_forest_edge", "redwood_hills", "seasonal_forest", + "seasonal_orchard", "seasonal_pumpkin_patch", - "shroomy_wetland", "shrubland", "shrubland_hills", "silkglade", @@ -492,7 +512,8 @@ "wasteland", "wetland", "wetland_marsh", - "withered_abyss" + "withered_abyss", + "wooded_wasteland" ] ] } \ No newline at end of file