Removed Glowstone Grotto nether biome (NOTE: CONFIGS NEED TO BE DELETED OR YOUR GAME WILL CRASH ON LOAD!)
This commit is contained in:
parent
42680921e5
commit
16d0e0f7a7
10 changed files with 44 additions and 210 deletions
|
@ -81,7 +81,6 @@ public class BOPBiomes
|
|||
public static Optional<Biome> xeric_shrubland = Optional.empty();
|
||||
|
||||
public static Optional<Biome> ashen_inferno = Optional.empty();
|
||||
public static Optional<Biome> glowstone_grotto = Optional.empty();
|
||||
public static Optional<Biome> undergarden = Optional.empty();
|
||||
public static Optional<Biome> visceral_heap = Optional.empty();
|
||||
}
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
package biomesoplenty.common.biome.nether;
|
||||
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.NetherBiomeBOP;
|
||||
import biomesoplenty.common.world.biome.BiomeFeatureHelper;
|
||||
import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.fluid.Fluids;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.carver.WorldCarver;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.placement.*;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class GlowstoneGrottoBiome extends NetherBiomeBOP
|
||||
{
|
||||
public GlowstoneGrottoBiome()
|
||||
{
|
||||
super((new Builder()).surfaceBuilder(SurfaceBuilder.NETHER, SurfaceBuilder.CONFIG_HELL).precipitation(RainType.NONE).biomeCategory(Category.NETHER).depth(0.1F).scale(0.2F).temperature(2.0F).downfall(0.0F).waterColor(4159204).waterFogColor(329011).parent((String)null));
|
||||
|
||||
//Terrain
|
||||
this.addStructureStart(Feature.NETHER_BRIDGE.configured(IFeatureConfig.NONE));
|
||||
this.addCarver(GenerationStage.Carving.AIR, makeCarver(WorldCarver.HELL_CAVE, new ProbabilityConfig(0.2F)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.SPRING.configured(DefaultBiomeFeatures.LAVA_SPRING_CONFIG).decorated(Placement.COUNT_VERY_BIASED_RANGE.configured(new CountRangeConfig(20, 8, 16, 256))));
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMushrooms(this);
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.NETHER_BRIDGE.configured(IFeatureConfig.NONE).decorated(Placement.NOPE.configured(IPlacementConfig.NONE)));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.SPRING.configured(DefaultBiomeFeatures.OPEN_NETHER_SPRING_CONFIG).decorated(Placement.COUNT_RANGE.configured(new CountRangeConfig(8, 4, 8, 128))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(DefaultBiomeFeatures.HELL_FIRE_CONFIG).decorated(Placement.HELL_FIRE.configured(new FrequencyConfig(10))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.GLOWSTONE_BLOB.configured(IFeatureConfig.NONE).decorated(Placement.LIGHT_GEM_CHANCE.configured(new FrequencyConfig(50))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.GLOWSTONE_BLOB.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_RANGE.configured(new CountRangeConfig(50, 0, 0, 128))));
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, BOPBiomeFeatures.GLOWSTONE_SPIKES.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(10))));
|
||||
|
||||
//Base Decorations
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.BROWN_MUSHROOM.defaultBlockState())).decorated(Placement.CHANCE_RANGE.configured(new ChanceRangeConfig(0.25F, 0, 0, 128))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.RED_MUSHROOM.defaultBlockState())).decorated(Placement.CHANCE_RANGE.configured(new ChanceRangeConfig(0.25F, 0, 0, 128))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.ORE.configured(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NETHERRACK, Blocks.NETHER_QUARTZ_ORE.defaultBlockState(), 14)).decorated(Placement.COUNT_RANGE.configured(new CountRangeConfig(16, 10, 20, 128))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.ORE.configured(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NETHERRACK, Blocks.MAGMA_BLOCK.defaultBlockState(), 33)).decorated(Placement.MAGMA.configured(new FrequencyConfig(4))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.SPRING.configured(DefaultBiomeFeatures.CLOSED_NETHER_SPRING_CONFIG).decorated(Placement.COUNT_RANGE.configured(new CountRangeConfig(16, 10, 20, 128))));
|
||||
|
||||
//Entities
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.GHAST, 20, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.ZOMBIE_PIGMAN, 50, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.MAGMA_CUBE, 2, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.ENDERMAN, 1, 4, 4));
|
||||
|
||||
this.addWeight(BOPClimates.NETHER, 3);
|
||||
}
|
||||
}
|
|
@ -35,7 +35,7 @@ public class VisceralHeapBiome extends NetherBiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.GLOWSTONE_BLOB.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_RANGE.configured(new CountRangeConfig(7, 0, 0, 128))));
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, BOPBiomeFeatures.FLESH_SPLATTER.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(500))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, BOPBiomeFeatures.BONE_SPINE.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(15))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, BOPBiomeFeatures.BONE_SPINE.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(10))));
|
||||
|
||||
//Base Decorations
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.BROWN_MUSHROOM.defaultBlockState())).decorated(Placement.CHANCE_RANGE.configured(new ChanceRangeConfig(0.1F, 0, 0, 128))));
|
||||
|
|
|
@ -126,7 +126,6 @@ public class BOPBiomeFeatures
|
|||
public static final Feature<NoFeatureConfig> FLESH_SPLATTER = new FleshSplatterFeature(NoFeatureConfig::deserialize);
|
||||
public static final Feature<NoFeatureConfig> BONE_SPINE = new BoneSpineFeature(NoFeatureConfig::deserialize);
|
||||
public static final Feature<NoFeatureConfig> ASH_SPLATTER = new AshSplatterFeature(NoFeatureConfig::deserialize);
|
||||
public static final Feature<NoFeatureConfig> GLOWSTONE_SPIKES = new GlowstoneSpikesFeature(NoFeatureConfig::deserialize);
|
||||
public static final Feature<NoFeatureConfig> PODZOL_SPLATTER = new PodzolSplatterFeature(NoFeatureConfig::deserialize);
|
||||
public static final Feature<NoFeatureConfig> MYCELIUM_SPLATTER = new MyceliumSplatterFeature(NoFeatureConfig::deserialize);
|
||||
public static final Feature<NoFeatureConfig> SMALL_RED_MUSHROOM = new SmallRedMushroomFeature(NoFeatureConfig::deserialize);
|
||||
|
|
|
@ -21,7 +21,7 @@ public class BoneSpineFeature extends Feature<NoFeatureConfig>
|
|||
{
|
||||
protected IBlockPosQuery placeOn = (world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.flesh;
|
||||
protected IBlockPosQuery replace = (world, pos) -> world.getBlockState(pos).isAir(world, pos);
|
||||
private int maxHeight = 8;
|
||||
private int maxHeight = 5;
|
||||
|
||||
public BoneSpineFeature(Function<Dynamic<?>, ? extends NoFeatureConfig> deserializer)
|
||||
{
|
||||
|
@ -47,32 +47,11 @@ public class BoneSpineFeature extends Feature<NoFeatureConfig>
|
|||
|
||||
BlockPos pos = startPos.above();
|
||||
|
||||
int height = 2 + p_212245_3_.nextInt(2);
|
||||
int height = 1 + p_212245_3_.nextInt(maxHeight - 1);
|
||||
|
||||
boolean spine = false;
|
||||
if (p_212245_3_.nextInt(3) == 0)
|
||||
{
|
||||
spine = true;
|
||||
height = 2 + p_212245_3_.nextInt(maxHeight + 1);
|
||||
}
|
||||
|
||||
for (int y = 0; y < height; y++)
|
||||
for (int y = 0; y <= height; y++)
|
||||
{
|
||||
this.setBlock(world, pos.offset(0, y, 0), Blocks.BONE_BLOCK.defaultBlockState());
|
||||
|
||||
if (spine == true && y % 2 == 1)
|
||||
{
|
||||
this.setBlock(world, pos.offset(1, y, 0), Blocks.BONE_BLOCK.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.X));
|
||||
this.setBlock(world, pos.offset(-1, y, 0), Blocks.BONE_BLOCK.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.X));
|
||||
this.setBlock(world, pos.offset(0, y, 1), Blocks.BONE_BLOCK.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.Z));
|
||||
this.setBlock(world, pos.offset(0, y, -1), Blocks.BONE_BLOCK.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.Z));
|
||||
}
|
||||
}
|
||||
|
||||
this.setBlock(world, pos.offset(0, height, 0), Blocks.BONE_BLOCK.defaultBlockState());
|
||||
if (height % 2 == 0)
|
||||
{
|
||||
this.setBlock(world, pos.offset(0, height + 1, 0), Blocks.BONE_BLOCK.defaultBlockState());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
import biomesoplenty.common.util.block.IBlockPosQuery;
|
||||
import com.mojang.datafixers.Dynamic;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.gen.ChunkGenerator;
|
||||
import net.minecraft.world.gen.GenerationSettings;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class GlowstoneSpikesFeature extends Feature<NoFeatureConfig>
|
||||
{
|
||||
protected IBlockPosQuery placeOn = (world, pos) -> world.getBlockState(pos).getBlock() == Blocks.NETHERRACK;
|
||||
protected IBlockPosQuery replace = (world, pos) -> world.getBlockState(pos).isAir(world, pos);
|
||||
int minRadius = 2;
|
||||
int maxRadius = 3;
|
||||
int minHeight = 4;
|
||||
int maxHeight = 11;
|
||||
|
||||
public GlowstoneSpikesFeature(Function<Dynamic<?>, ? extends NoFeatureConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean place(IWorld world, ChunkGenerator<? extends GenerationSettings> p_212245_2_, Random rand, BlockPos startPos, NoFeatureConfig p_212245_5_)
|
||||
{
|
||||
int randRadius = this.minRadius + rand.nextInt(this.maxRadius - this.minRadius);
|
||||
int height = this.minHeight + rand.nextInt(this.maxHeight - this.minHeight);
|
||||
|
||||
while (startPos.getY() > 1 && this.replace.matches(world, startPos)) {startPos = startPos.below();}
|
||||
|
||||
for (int x = 0; x <= randRadius - 1; x++)
|
||||
{
|
||||
for (int z = 0; z <= randRadius - 1; z++)
|
||||
{
|
||||
if (!this.placeOn.matches(world, startPos.offset(x, 0, z)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BlockPos pos = startPos.above();
|
||||
|
||||
// Generate
|
||||
for (int y = 0; y < height - 1; y++)
|
||||
{
|
||||
int radius = (randRadius * (height - y) / height) + 1;
|
||||
int radiusStart = MathHelper.ceil(0.25D - radius / 2.0D);
|
||||
int radiusEnd = MathHelper.floor(0.25D + radius / 2.0D);
|
||||
|
||||
for (int x = radiusStart; x <= radiusEnd; x++)
|
||||
{
|
||||
for (int z = radiusStart; z <= radiusEnd; z++)
|
||||
{
|
||||
if (this.replace.matches(world, pos.offset(x, y, z)))
|
||||
{
|
||||
world.setBlock(pos.offset(x, y, z), Blocks.GLOWSTONE.defaultBlockState(), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -118,7 +118,6 @@ public class ModBiomes
|
|||
|
||||
//Nether Biomes
|
||||
registerBiome(new AshenInfernoBiome(), "ashen_inferno");
|
||||
registerBiome(new GlowstoneGrottoBiome(), "glowstone_grotto");
|
||||
registerBiome(new UndergardenBiome(), "undergarden");
|
||||
registerBiome(new VisceralHeapBiome(), "visceral_heap");
|
||||
|
||||
|
@ -255,7 +254,6 @@ public class ModBiomes
|
|||
|
||||
//Nether Biomes
|
||||
registerBiomeToDictionary(ashen_inferno, Type.NETHER, Type.HOT);
|
||||
registerBiomeToDictionary(glowstone_grotto, Type.NETHER, Type.HOT);
|
||||
registerBiomeToDictionary(undergarden, Type.NETHER, Type.HOT);
|
||||
registerBiomeToDictionary(visceral_heap, Type.NETHER, Type.HOT);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"biome.biomesoplenty.flower_meadow": "Flower Meadow",
|
||||
"biome.biomesoplenty.fungal_jungle": "Fungal Jungle",
|
||||
"biome.biomesoplenty.ghost_forest": "Ghost Forest",
|
||||
"biome.biomesoplenty.glowstone_grotto": "Glowstone Grotto",
|
||||
"biome.biomesoplenty.grassland": "Grassland",
|
||||
"biome.biomesoplenty.gravel_beach": "Gravel Beach",
|
||||
"biome.biomesoplenty.grove": "Grove",
|
||||
|
|
|
@ -26,6 +26,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:alps_foothills"
|
||||
}
|
||||
},
|
||||
"ashen_inferno": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:ashen_inferno"
|
||||
}
|
||||
},
|
||||
"bayou": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -368,6 +374,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra"
|
||||
}
|
||||
},
|
||||
"undergarden": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:undergarden"
|
||||
}
|
||||
},
|
||||
"visceral_heap": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:visceral_heap"
|
||||
}
|
||||
},
|
||||
"volcano": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -410,30 +428,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:xeric_shrubland"
|
||||
}
|
||||
},
|
||||
"ashen_inferno": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:ashen_inferno"
|
||||
}
|
||||
},
|
||||
"glowstone_grotto": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:glowstone_grotto"
|
||||
}
|
||||
},
|
||||
"undergarden": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:undergarden"
|
||||
}
|
||||
},
|
||||
"visceral_heap": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:visceral_heap"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rewards": {
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:alps_foothills"
|
||||
}
|
||||
},
|
||||
"ashen_inferno": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:ashen_inferno"
|
||||
}
|
||||
},
|
||||
"bayou": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -367,6 +373,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra"
|
||||
}
|
||||
},
|
||||
"undergarden": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:undergarden"
|
||||
}
|
||||
},
|
||||
"visceral_heap": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:visceral_heap"
|
||||
}
|
||||
},
|
||||
"volcano": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -409,36 +427,13 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:xeric_shrubland"
|
||||
}
|
||||
},
|
||||
"ashen_inferno": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:ashen_inferno"
|
||||
}
|
||||
},
|
||||
"glowstone_grotto": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:glowstone_grotto"
|
||||
}
|
||||
},
|
||||
"undergarden": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:undergarden"
|
||||
}
|
||||
},
|
||||
"visceral_heap": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:visceral_heap"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"alps",
|
||||
"alps_foothills",
|
||||
"ashen_inferno",
|
||||
"bayou",
|
||||
"bog",
|
||||
"boreal_forest",
|
||||
|
@ -496,17 +491,15 @@
|
|||
"tropical_rainforest",
|
||||
"tropics",
|
||||
"tundra",
|
||||
"undergarden",
|
||||
"visceral_heap",
|
||||
"volcano",
|
||||
"volcano_edge",
|
||||
"wasteland",
|
||||
"wetland",
|
||||
"white_beach",
|
||||
"woodland",
|
||||
"xeric_shrubland",
|
||||
"ashen_inferno",
|
||||
"glowstone_grotto",
|
||||
"undergarden",
|
||||
"visceral_heap"
|
||||
"xeric_shrubland"
|
||||
]
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue