Converted Biome generation to new BCLib builder

This commit is contained in:
Frank 2021-12-07 12:11:08 +01:00
parent 96c65b7bb2
commit 016a3048bd
29 changed files with 871 additions and 618 deletions

View file

@ -88,11 +88,13 @@ public class EndBiomes {
/** /**
* Put existing {@link EndBiome} as a sub-biome into selected parent. * Put existing {@link EndBiome} as a sub-biome into selected parent.
* *
* @param biome - {@link EndBiome} instance * @param biomeConfig - {@link EndBiome.Config} instance
* @param parent - {@link EndBiome} to be linked with * @param parent - {@link EndBiome} to be linked with
* @return registered {@link EndBiome} * @return registered {@link EndBiome}
*/ */
public static EndBiome registerSubBiome(EndBiome biome, EndBiome parent) { public static EndBiome registerSubBiome(EndBiome.Config biomeConfig, EndBiome parent) {
final EndBiome biome = EndBiome.create(biomeConfig);
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerSubBiome(parent, biome); BiomeAPI.registerSubBiome(parent, biome);
} }
@ -102,11 +104,12 @@ public class EndBiomes {
/** /**
* Registers {@link EndBiome} and adds it into worldgen. * Registers {@link EndBiome} and adds it into worldgen.
* *
* @param biome - {@link EndBiome} instance * @param biomeConfig - {@link EndBiome.Config} instance
* @param type - {@link BiomeType} * @param type - {@link BiomeType}
* @return registered {@link EndBiome} * @return registered {@link EndBiome}
*/ */
public static EndBiome registerBiome(EndBiome biome, BiomeType type) { public static EndBiome registerBiome(EndBiome.Config biomeConfig, BiomeType type) {
final EndBiome biome = EndBiome.create(biomeConfig);
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
if (type == BiomeType.LAND) { if (type == BiomeType.LAND) {
BiomeAPI.registerEndLandBiome(biome); BiomeAPI.registerEndLandBiome(biome);
@ -146,7 +149,8 @@ public class EndBiomes {
} }
} }
public static EndCaveBiome registerCaveBiome(EndCaveBiome biome) { public static EndCaveBiome registerCaveBiome(EndCaveBiome.Config biomeConfig) {
final EndCaveBiome biome = EndCaveBiome.create(biomeConfig);
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerBiome(biome); BiomeAPI.registerBiome(biome);
CAVE_BIOMES.addBiome(biome); CAVE_BIOMES.addBiome(biome);

View file

@ -321,16 +321,12 @@ public class EndFeatures {
}*/ }*/
} }
public static BCLBiomeBuilder addDefaultFeatures(ResourceLocation biomeID, BCLBiomeBuilder builder, boolean hasCaves) { public static BCLBiomeBuilder addDefaultFeatures(BCLBiomeBuilder builder, boolean hasCaves) {
builder.feature(FLAVOLITE_LAYER); builder.feature(FLAVOLITE_LAYER);
builder.feature(THALLASIUM_ORE); builder.feature(THALLASIUM_ORE);
builder.feature(ENDER_ORE); builder.feature(ENDER_ORE);
builder.feature(CRASHED_SHIP); builder.feature(CRASHED_SHIP);
if (biomeID.getPath().endsWith("_cave")) {
return builder;
}
// TODO replace cave features with carvers // TODO replace cave features with carvers
if (hasCaves) { if (hasCaves) {
builder.feature(ROUND_CAVE); builder.feature(ROUND_CAVE);

View file

@ -1,23 +1,63 @@
package ru.betterend.world.biome; package ru.betterend.world.biome;
import java.util.function.BiFunction;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biome;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.bclib.interfaces.StructureFeaturesAccessor;
import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds;
public class EndBiome extends BCLBiome { public class EndBiome extends BCLBiome {
public EndBiome(BCLBiomeDef def) { public abstract static class Config {
super(updateDef(def)); protected static final StructureFeaturesAccessor VANILLA_FEATURES = (StructureFeaturesAccessor)new StructureFeatures();
public final ResourceLocation ID;
protected Config(String name) {
this.ID = BetterEnd.makeID(name);
} }
public EndBiome(ResourceLocation id, Biome biome, float fogDensity, float genChance, boolean hasCaves) { protected abstract void addCustomBuildData(BCLBiomeBuilder builder);
super(id, biome, fogDensity, genChance);
this.addCustomData("has_caves", hasCaves); public BiFunction<ResourceLocation, Biome, EndBiome> getSupplier(){
return EndBiome::new;
} }
private static BCLBiomeDef updateDef(BCLBiomeDef def) { protected boolean hasCaves(){
EndFeatures.addDefaultFeatures(def); return true;
return def; }
}
public EndBiome(ResourceLocation biomeID, Biome biome) {
super(biomeID, biome);
}
public static EndBiome create(Config biomeConfig){
BCLBiomeBuilder builder = BCLBiomeBuilder
.start(biomeConfig.ID)
.category(Biome.BiomeCategory.THEEND)
.music(SoundEvents.MUSIC_END)
.waterColor(4159204)
.waterFogColor(329011)
.fogColor(0xA080A0)
.skyColor(0)
.mood(EndSounds.AMBIENT_DUST_WASTELANDS)
.temperature(0.5f)
.wetness(0.5f)
.precipitation(Biome.Precipitation.NONE);
biomeConfig.addCustomBuildData(builder);
EndFeatures.addDefaultFeatures(builder, biomeConfig.hasCaves());
EndBiome biome = builder.build(biomeConfig.getSupplier());
biome.addCustomData("has_caves", biomeConfig.hasCaves());
return biome;
} }
} }

View file

@ -1,25 +1,33 @@
package ru.betterend.world.biome.air; package ru.betterend.world.biome.air;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class BiomeIceStarfield extends EndBiome { public class BiomeIceStarfield extends EndBiome.Config {
public BiomeIceStarfield() { public BiomeIceStarfield() {
super(new BCLBiomeDef(BetterEnd.makeID("ice_starfield")).addCustomData("has_caves", false) super("ice_starfield");
.addStructureFeature(EndStructures.GIANT_ICE_STAR.getFeatureConfigured()) }
.setFogColor(224, 245, 254)
.setTemperature(0F) @Override
.setFogDensity(2.2F) protected boolean hasCaves() {
.setFoliageColor(193, 244, 244) return false;
.setGenChance(0.25F) }
.setParticles(EndParticles.SNOWFLAKE, 0.002F)
.addFeature(EndFeatures.ICE_STAR) @Override
.addFeature(EndFeatures.ICE_STAR_SMALL) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.addMobSpawn(EntityType.ENDERMAN, 20, 1, 4)); builder.structure(EndStructures.GIANT_ICE_STAR.getFeatureConfigured())
.fogColor(224, 245, 254)
.temperature(0F)
.fogDensity(2.2F)
.foliageColor(193, 244, 244)
.genChance(0.25F)
.particles(EndParticles.SNOWFLAKE, 0.002F)
.feature(EndFeatures.ICE_STAR)
.feature(EndFeatures.ICE_STAR_SMALL)
.spawn(EntityType.ENDERMAN, 20, 1, 4);
} }
} }

View file

@ -1,17 +1,17 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef; import java.util.function.BiFunction;
import ru.betterend.BetterEnd;
import net.minecraft.resources.ResourceLocation;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.EndBiome;
public class EmptyAuroraCaveBiome extends EndCaveBiome { public class EmptyAuroraCaveBiome extends EndCaveBiome.Config {
public EmptyAuroraCaveBiome() { public static class Biome extends EndCaveBiome {
super(new BCLBiomeDef(BetterEnd.makeID("empty_aurora_cave")).setFogColor(150, 30, 68) public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) {
.setFogDensity(2.0F) super(biomeID, biome);
.setPlantsColor(108, 25, 46)
.setWaterAndFogColor(186, 77, 237)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F));
this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1); this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1);
@ -27,4 +27,24 @@ public class EmptyAuroraCaveBiome extends EndCaveBiome {
public float getCeilDensity() { public float getCeilDensity() {
return 0.1F; return 0.1F;
} }
}
public EmptyAuroraCaveBiome() {
super("empty_aurora_cave");
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
super.addCustomBuildData(builder);
builder.fogColor(150, 30, 68)
.fogDensity(2.0F)
.plantsColor(108, 25, 46)
.waterAndFogColor(186, 77, 237)
.particles(EndParticles.GLOWING_SPHERE, 0.001F);
}
@Override
public BiFunction<ResourceLocation, net.minecraft.world.level.biome.Biome, EndBiome> getSupplier() {
return EmptyAuroraCaveBiome.Biome::new;
}
} }

View file

@ -1,12 +1,17 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef; import java.util.function.BiFunction;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import net.minecraft.resources.ResourceLocation;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.registry.EndFeatures;
import ru.betterend.world.biome.EndBiome;
public class EmptyEndCaveBiome extends EndCaveBiome.Config {
public static class Biome extends EndCaveBiome {
public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) {
super(biomeID, biome);
public class EmptyEndCaveBiome extends EndCaveBiome {
public EmptyEndCaveBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("empty_end_cave")).setFogDensity(2.0F));
this.addFloorFeature(EndFeatures.END_STONE_STALAGMITE, 1); this.addFloorFeature(EndFeatures.END_STONE_STALAGMITE, 1);
this.addCeilFeature(EndFeatures.END_STONE_STALACTITE, 1); this.addCeilFeature(EndFeatures.END_STONE_STALACTITE, 1);
} }
@ -20,4 +25,20 @@ public class EmptyEndCaveBiome extends EndCaveBiome {
public float getCeilDensity() { public float getCeilDensity() {
return 0.1F; return 0.1F;
} }
}
public EmptyEndCaveBiome() {
super("empty_end_cave");
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
super.addCustomBuildData(builder);
builder.fogDensity(2.0F);
}
@Override
public BiFunction<ResourceLocation, net.minecraft.world.level.biome.Biome, EndBiome> getSupplier() {
return Biome::new;
}
} }

View file

@ -1,17 +1,17 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef; import java.util.function.BiFunction;
import ru.betterend.BetterEnd;
import net.minecraft.resources.ResourceLocation;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.EndBiome;
public class EmptySmaragdantCaveBiome extends EndCaveBiome { public class EmptySmaragdantCaveBiome extends EndCaveBiome.Config {
public EmptySmaragdantCaveBiome() { public static class Biome extends EndCaveBiome {
super(new BCLBiomeDef(BetterEnd.makeID("empty_smaragdant_cave")).setFogColor(0, 253, 182) public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) {
.setFogDensity(2.0F) super(biomeID, biome);
.setPlantsColor(0, 131, 145)
.setWaterAndFogColor(31, 167, 212)
.setParticles(EndParticles.SMARAGDANT, 0.001F));
this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL, 1); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL, 1);
this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL_SHARD, 20); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL_SHARD, 20);
@ -28,4 +28,24 @@ public class EmptySmaragdantCaveBiome extends EndCaveBiome {
public float getCeilDensity() { public float getCeilDensity() {
return 0.1F; return 0.1F;
} }
}
public EmptySmaragdantCaveBiome() {
super("empty_smaragdant_cave");
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
super.addCustomBuildData(builder);
builder.fogColor(0, 253, 182)
.fogDensity(2.0F)
.plantsColor(0, 131, 145)
.waterAndFogColor(31, 167, 212)
.particles(EndParticles.SMARAGDANT, 0.001F);
}
@Override
public BiFunction<ResourceLocation, net.minecraft.world.level.biome.Biome, EndBiome> getSupplier() {
return EmptySmaragdantCaveBiome.Biome::new;
}
} }

View file

@ -1,37 +1,60 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import java.util.Random;
import java.util.function.BiFunction;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biome.BiomeCategory; import net.minecraft.world.level.biome.Biome.BiomeCategory;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.GenerationStep;
import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.Feature;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.api.biomes.BiomeAPI;
import ru.bclib.util.WeightedList; import ru.bclib.util.WeightedList;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.BCLFeature;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature; import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature;
import java.util.Random;
public class EndCaveBiome extends EndBiome { public class EndCaveBiome extends EndBiome {
public static abstract class Config extends EndBiome.Config {
protected Config(String name) {
super(name);
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
BCLFeature feature = BCLFeature.makeChunkFeature(
BetterEnd.makeID(ID.getPath() + "_cave_populator"),
GenerationStep.Decoration.RAW_GENERATION,
new CaveChunkPopulatorFeature(() -> (EndCaveBiome) BiomeAPI.getBiome(ID))
);
builder.category(BiomeCategory.NONE)
.feature(feature)
.music(EndSounds.MUSIC_CAVES)
.loop(EndSounds.AMBIENT_CAVES);
}
@Override
protected boolean hasCaves() {
return false;
}
@Override
public BiFunction<ResourceLocation, Biome, EndBiome> getSupplier() {
return EndCaveBiome::new;
}
}
private WeightedList<Feature<?>> floorFeatures = new WeightedList<Feature<?>>(); private WeightedList<Feature<?>> floorFeatures = new WeightedList<Feature<?>>();
private WeightedList<Feature<?>> ceilFeatures = new WeightedList<Feature<?>>(); private WeightedList<Feature<?>> ceilFeatures = new WeightedList<Feature<?>>();
public EndCaveBiome(BCLBiomeDef definition) { public EndCaveBiome(ResourceLocation biomeID, Biome biome) {
super(makeDef(definition)); super(biomeID, biome);
}
private static BCLBiomeDef makeDef(BCLBiomeDef definition) {
BCLFeature feature = BCLFeature.makeChunkFeature(
BetterEnd.makeID(definition.getID().getPath() + "_cave_populator"),
new CaveChunkPopulatorFeature(() -> (EndCaveBiome) BiomeAPI.getBiome(definition.getID()))
);
definition.setCategory(BiomeCategory.NONE).addFeature(feature);
definition.setMusic(EndSounds.MUSIC_CAVES);
definition.setLoop(EndSounds.AMBIENT_CAVES);
return definition;
} }
public void addFloorFeature(Feature<?> feature, float weight) { public void addFloorFeature(Feature<?> feature, float weight) {
@ -65,4 +88,8 @@ public class EndCaveBiome extends EndBiome {
public BlockState getWall(BlockPos pos) { public BlockState getWall(BlockPos pos) {
return null; return null;
} }
public static EndCaveBiome create(EndBiome.Config biomeConfig){
return (EndCaveBiome) EndBiome.create(biomeConfig);
}
} }

View file

@ -1,22 +1,25 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import java.util.function.BiFunction;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.noise.OpenSimplexNoise;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.world.biome.EndBiome;
public class JadeCaveBiome extends EndCaveBiome { public class JadeCaveBiome extends EndCaveBiome.Config {
public static class Biome extends EndCaveBiome {
private static final OpenSimplexNoise WALL_NOISE = new OpenSimplexNoise("jade_cave".hashCode()); private static final OpenSimplexNoise WALL_NOISE = new OpenSimplexNoise("jade_cave".hashCode());
private static final OpenSimplexNoise DEPTH_NOISE = new OpenSimplexNoise("depth_noise".hashCode()); private static final OpenSimplexNoise DEPTH_NOISE = new OpenSimplexNoise("depth_noise".hashCode());
private static final BlockState[] JADE = new BlockState[3]; private static final BlockState[] JADE = new BlockState[3];
public JadeCaveBiome() { public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) {
super(new BCLBiomeDef(BetterEnd.makeID("jade_cave")).setFogColor(118, 150, 112) super(biomeID, biome);
.setFogDensity(2.0F)
.setWaterAndFogColor(95, 223, 255));
JADE[0] = EndBlocks.VIRID_JADESTONE.stone.defaultBlockState(); JADE[0] = EndBlocks.VIRID_JADESTONE.stone.defaultBlockState();
JADE[1] = EndBlocks.AZURE_JADESTONE.stone.defaultBlockState(); JADE[1] = EndBlocks.AZURE_JADESTONE.stone.defaultBlockState();
JADE[2] = EndBlocks.SANDY_JADESTONE.stone.defaultBlockState(); JADE[2] = EndBlocks.SANDY_JADESTONE.stone.defaultBlockState();
@ -29,4 +32,22 @@ public class JadeCaveBiome extends EndCaveBiome {
index = Mth.abs(index) % 3; index = Mth.abs(index) % 3;
return JADE[index]; return JADE[index];
} }
}
public JadeCaveBiome() {
super("jade_cave");
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
super.addCustomBuildData(builder);
builder.fogColor(118, 150, 112)
.fogDensity(2.0F)
.waterAndFogColor(95, 223, 255);
}
@Override
public BiFunction<ResourceLocation, net.minecraft.world.level.biome.Biome, EndBiome> getSupplier() {
return JadeCaveBiome.Biome::new;
}
} }

View file

@ -1,22 +1,21 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import java.util.function.BiFunction;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.bclib.blocks.BlockProperties; import ru.bclib.blocks.BlockProperties;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.EndBiome;
public class LushAuroraCaveBiome extends EndCaveBiome { public class LushAuroraCaveBiome extends EndCaveBiome.Config {
public LushAuroraCaveBiome() { public static class Biome extends EndCaveBiome {
super(new BCLBiomeDef(BetterEnd.makeID("lush_aurora_cave")).setFogColor(150, 30, 68) public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) {
.setFogDensity(2.0F) super(biomeID, biome);
.setPlantsColor(108, 25, 46)
.setWaterAndFogColor(186, 77, 237)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.setSurface(EndBlocks.CAVE_MOSS));
this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1); this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1);
this.addFloorFeature(EndFeatures.CAVE_BUSH, 5); this.addFloorFeature(EndFeatures.CAVE_BUSH, 5);
@ -45,4 +44,25 @@ public class LushAuroraCaveBiome extends EndCaveBiome {
return EndBlocks.CAVE_MOSS.defaultBlockState() return EndBlocks.CAVE_MOSS.defaultBlockState()
.setValue(BlockProperties.TRIPLE_SHAPE, BlockProperties.TripleShape.TOP); .setValue(BlockProperties.TRIPLE_SHAPE, BlockProperties.TripleShape.TOP);
} }
}
public LushAuroraCaveBiome() {
super("lush_aurora_cave");
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
super.addCustomBuildData(builder);
builder.fogColor(150, 30, 68)
.fogDensity(2.0F)
.plantsColor(108, 25, 46)
.waterAndFogColor(186, 77, 237)
.particles(EndParticles.GLOWING_SPHERE, 0.001F)
.surface(EndBlocks.CAVE_MOSS);
}
@Override
public BiFunction<ResourceLocation, net.minecraft.world.level.biome.Biome, EndBiome> getSupplier() {
return LushAuroraCaveBiome.Biome::new;
}
} }

View file

@ -1,19 +1,18 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef; import java.util.function.BiFunction;
import ru.betterend.BetterEnd;
import net.minecraft.resources.ResourceLocation;
import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.EndBiome;
public class LushSmaragdantCaveBiome extends EndCaveBiome { public class LushSmaragdantCaveBiome extends EndCaveBiome.Config {
public LushSmaragdantCaveBiome() { public static class Biome extends EndCaveBiome {
super(new BCLBiomeDef(BetterEnd.makeID("lush_smaragdant_cave")).setFogColor(0, 253, 182) public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) {
.setFogDensity(2.0F) super(biomeID, biome);
.setPlantsColor(0, 131, 145)
.setWaterAndFogColor(31, 167, 212)
.setParticles(EndParticles.SMARAGDANT, 0.001F)
.setSurface(EndBlocks.CAVE_MOSS));
this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL, 1); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL, 1);
this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL_SHARD, 20); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL_SHARD, 20);
@ -30,4 +29,25 @@ public class LushSmaragdantCaveBiome extends EndCaveBiome {
public float getCeilDensity() { public float getCeilDensity() {
return 0.1F; return 0.1F;
} }
}
public LushSmaragdantCaveBiome() {
super("lush_smaragdant_cave");
}
@Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
super.addCustomBuildData(builder);
builder.fogColor(0, 253, 182)
.fogDensity(2.0F)
.plantsColor(0, 131, 145)
.waterAndFogColor(31, 167, 212)
.particles(EndParticles.SMARAGDANT, 0.001F)
.surface(EndBlocks.CAVE_MOSS);
}
@Override
public BiFunction<ResourceLocation, net.minecraft.world.level.biome.Biome, EndBiome> getSupplier() {
return LushSmaragdantCaveBiome.Biome::new;
}
} }

View file

@ -1,9 +1,7 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
@ -11,30 +9,34 @@ import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class AmberLandBiome extends EndBiome { public class AmberLandBiome extends EndBiome.Config {
public AmberLandBiome() { public AmberLandBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("amber_land")) super("amber_land");
.setFogColor(255, 184, 71) }
.setFogDensity(2.0F)
.setPlantsColor(219, 115, 38) @Override
.setWaterAndFogColor(145, 108, 72) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setMusic(EndSounds.MUSIC_FOREST) builder.fogColor(255, 184, 71)
.setLoop(EndSounds.AMBIENT_AMBER_LAND) .fogDensity(2.0F)
.setParticles(EndParticles.AMBER_SPHERE, 0.001F) .plantsColor(219, 115, 38)
.setSurface(EndBlocks.AMBER_MOSS) .waterAndFogColor(145, 108, 72)
.addFeature(EndFeatures.AMBER_ORE) .music(EndSounds.MUSIC_FOREST)
.addFeature(EndFeatures.END_LAKE_RARE) .loop(EndSounds.AMBIENT_AMBER_LAND)
.addFeature(EndFeatures.HELIX_TREE) .particles(EndParticles.AMBER_SPHERE, 0.001F)
.addFeature(EndFeatures.LANCELEAF) .surface(EndBlocks.AMBER_MOSS)
.addFeature(EndFeatures.GLOW_PILLAR) .feature(EndFeatures.AMBER_ORE)
.addFeature(EndFeatures.AMBER_GRASS) .feature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.AMBER_ROOT) .feature(EndFeatures.HELIX_TREE)
.addFeature(EndFeatures.BULB_MOSS) .feature(EndFeatures.LANCELEAF)
.addFeature(EndFeatures.BULB_MOSS_WOOD) .feature(EndFeatures.GLOW_PILLAR)
.addFeature(EndFeatures.CHARNIA_ORANGE) .feature(EndFeatures.AMBER_GRASS)
.addFeature(EndFeatures.CHARNIA_RED) .feature(EndFeatures.AMBER_ROOT)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.BULB_MOSS)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4) .feature(EndFeatures.BULB_MOSS_WOOD)
.addMobSpawn(EndEntities.END_SLIME, 30, 1, 2)); .feature(EndFeatures.CHARNIA_ORANGE)
.feature(EndFeatures.CHARNIA_RED)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 4)
.spawn(EndEntities.END_SLIME, 30, 1, 2);
} }
} }

View file

@ -1,36 +1,43 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class BlossomingSpiresBiome extends EndBiome { public class BlossomingSpiresBiome extends EndBiome.Config {
public BlossomingSpiresBiome() { public BlossomingSpiresBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("blossoming_spires")) super("blossoming_spires");
.addCustomData("has_caves", false) }
.setFogColor(241, 146, 229)
.setFogDensity(1.7F) @Override
.setPlantsColor(122, 45, 122) protected boolean hasCaves() {
.setSurface(EndBlocks.PINK_MOSS) return false;
.setMusic(EndSounds.MUSIC_FOREST) }
.setLoop(EndSounds.AMBIENT_BLOSSOMING_SPIRES)
.addFeature(EndFeatures.SPIRE) @Override
.addFeature(EndFeatures.FLOATING_SPIRE) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.addFeature(EndFeatures.TENANEA) builder.fogColor(241, 146, 229)
.addFeature(EndFeatures.TENANEA_BUSH) .fogDensity(1.7F)
.addFeature(EndFeatures.BULB_VINE) .plantsColor(122, 45, 122)
.addFeature(EndFeatures.BUSHY_GRASS) .surface(EndBlocks.PINK_MOSS)
.addFeature(EndFeatures.BUSHY_GRASS_WG) .music(EndSounds.MUSIC_FOREST)
.addFeature(EndFeatures.BLOSSOM_BERRY) .loop(EndSounds.AMBIENT_BLOSSOMING_SPIRES)
.addFeature(EndFeatures.TWISTED_MOSS) .feature(EndFeatures.SPIRE)
.addFeature(EndFeatures.TWISTED_MOSS_WOOD) .feature(EndFeatures.FLOATING_SPIRE)
.addFeature(EndFeatures.SILK_MOTH_NEST) .feature(EndFeatures.TENANEA)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4) .feature(EndFeatures.TENANEA_BUSH)
.addMobSpawn(EndEntities.SILK_MOTH, 5, 1, 2)); .feature(EndFeatures.BULB_VINE)
.feature(EndFeatures.BUSHY_GRASS)
.feature(EndFeatures.BUSHY_GRASS_WG)
.feature(EndFeatures.BLOSSOM_BERRY)
.feature(EndFeatures.TWISTED_MOSS)
.feature(EndFeatures.TWISTED_MOSS_WOOD)
.feature(EndFeatures.SILK_MOTH_NEST)
.spawn(EntityType.ENDERMAN, 50, 1, 4)
.spawn(EndEntities.SILK_MOTH, 5, 1, 2);
} }
} }

View file

@ -1,44 +1,47 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.Features; import net.minecraft.data.worldgen.placement.EndPlacements;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class ChorusForestBiome extends EndBiome { public class ChorusForestBiome extends EndBiome.Config {
public ChorusForestBiome() { public ChorusForestBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("chorus_forest")) super("chorus_forest");
.setFogColor(87, 26, 87) }
.setFogDensity(1.5F)
.setPlantsColor(122, 45, 122) @Override
.setWaterAndFogColor(73, 30, 73) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setSurface(EndBlocks.CHORUS_NYLIUM) builder.fogColor(87, 26, 87)
.setParticles(ParticleTypes.PORTAL, 0.01F) .fogDensity(1.5F)
.setLoop(EndSounds.AMBIENT_CHORUS_FOREST) .plantsColor(122, 45, 122)
.setMusic(EndSounds.MUSIC_DARK) .waterAndFogColor(73, 30, 73)
.addFeature(EndFeatures.VIOLECITE_LAYER) .surface(EndBlocks.CHORUS_NYLIUM)
.addFeature(EndFeatures.END_LAKE_RARE) .particles(ParticleTypes.PORTAL, 0.01F)
.addFeature(EndFeatures.PYTHADENDRON_TREE) .loop(EndSounds.AMBIENT_CHORUS_FOREST)
.addFeature(EndFeatures.PYTHADENDRON_BUSH) .music(EndSounds.MUSIC_DARK)
.addFeature(EndFeatures.PURPLE_POLYPORE) .feature(EndFeatures.VIOLECITE_LAYER)
.addFeature(Decoration.VEGETAL_DECORATION, Features.CHORUS_PLANT) .feature(EndFeatures.END_LAKE_RARE)
.addFeature(Decoration.VEGETAL_DECORATION, Features.CHORUS_PLANT) .feature(EndFeatures.PYTHADENDRON_TREE)
.addFeature(EndFeatures.CHORUS_GRASS) .feature(EndFeatures.PYTHADENDRON_BUSH)
.addFeature(EndFeatures.CHORUS_MUSHROOM) .feature(EndFeatures.PURPLE_POLYPORE)
.addFeature(EndFeatures.TAIL_MOSS) .feature(Decoration.VEGETAL_DECORATION, EndPlacements.CHORUS_PLANT)
.addFeature(EndFeatures.TAIL_MOSS_WOOD) //TODO: 1.18 why was this added twice?
.addFeature(EndFeatures.CHARNIA_PURPLE) //.feature(Decoration.VEGETAL_DECORATION, EndPlacements.CHORUS_PLANT)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.CHORUS_GRASS)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.CHORUS_MUSHROOM)
.addMobSpawn(EndEntities.END_SLIME, 5, 1, 2) .feature(EndFeatures.TAIL_MOSS)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); .feature(EndFeatures.TAIL_MOSS_WOOD)
.feature(EndFeatures.CHARNIA_PURPLE)
.feature(EndFeatures.CHARNIA_RED_RARE)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EndEntities.END_SLIME, 5, 1, 2)
.spawn(EntityType.ENDERMAN, 50, 1, 4);
} }
} }

View file

@ -1,23 +1,26 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class CrystalMountainsBiome extends EndBiome { public class CrystalMountainsBiome extends EndBiome.Config {
public CrystalMountainsBiome() { public CrystalMountainsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("crystal_mountains")) super("crystal_mountains");
.addStructureFeature(EndStructures.MOUNTAIN.getFeatureConfigured()) }
.setPlantsColor(255, 133, 211)
.setSurface(EndBlocks.CRYSTAL_MOSS) @Override
.setMusic(EndSounds.MUSIC_OPENSPACE) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.addFeature(EndFeatures.ROUND_CAVE) builder.structure(EndStructures.MOUNTAIN.getFeatureConfigured())
.addFeature(EndFeatures.CRYSTAL_GRASS) .plantsColor(255, 133, 211)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .surface(EndBlocks.CRYSTAL_MOSS)
.music(EndSounds.MUSIC_OPENSPACE)
.feature(EndFeatures.ROUND_CAVE)
.feature(EndFeatures.CRYSTAL_GRASS)
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,35 +1,38 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class DragonGraveyardsBiome extends EndBiome { public class DragonGraveyardsBiome extends EndBiome.Config {
public DragonGraveyardsBiome() { public DragonGraveyardsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("dragon_graveyards")) super("dragon_graveyards");
.setGenChance(0.1F) }
.setFogColor(244, 46, 79)
.setFogDensity(1.3F) @Override
.setParticles(EndParticles.FIREFLY, 0.0007F) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setMusic(EndSounds.MUSIC_OPENSPACE) builder.genChance(0.1f)
.setLoop(EndSounds.AMBIENT_GLOWING_GRASSLANDS) .fogColor(244, 46, 79)
.setSurface(EndBlocks.SANGNUM) .fogDensity(1.3F)
.setWaterAndFogColor(203, 59, 167) .particles(EndParticles.FIREFLY, 0.0007F)
.setPlantsColor(244, 46, 79) .music(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.OBSIDIAN_PILLAR_BASEMENT) .loop(EndSounds.AMBIENT_GLOWING_GRASSLANDS)
.addFeature(EndFeatures.DRAGON_BONE_BLOCK_ORE) .surface(EndBlocks.SANGNUM)
.addFeature(EndFeatures.FALLEN_PILLAR) .waterAndFogColor(203, 59, 167)
.addFeature(EndFeatures.OBSIDIAN_BOULDER) .plantsColor(244, 46, 79)
.addFeature(EndFeatures.GIGANTIC_AMARANITA) .feature(EndFeatures.OBSIDIAN_PILLAR_BASEMENT)
.addFeature(EndFeatures.LARGE_AMARANITA) .feature(EndFeatures.DRAGON_BONE_BLOCK_ORE)
.addFeature(EndFeatures.SMALL_AMARANITA) .feature(EndFeatures.FALLEN_PILLAR)
.addFeature(EndFeatures.GLOBULAGUS) .feature(EndFeatures.OBSIDIAN_BOULDER)
.addFeature(EndFeatures.CLAWFERN) .feature(EndFeatures.GIGANTIC_AMARANITA)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .feature(EndFeatures.LARGE_AMARANITA)
.feature(EndFeatures.SMALL_AMARANITA)
.feature(EndFeatures.GLOBULAGUS)
.feature(EndFeatures.CLAWFERN)
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,29 +1,31 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class DryShrublandBiome extends EndBiome { public class DryShrublandBiome extends EndBiome.Config {
public DryShrublandBiome() { public DryShrublandBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("dry_shrubland")) super("dry_shrubland");
.setFogColor(132, 35, 13) }
.setFogDensity(1.2F)
.setWaterAndFogColor(113, 88, 53) @Override
.setPlantsColor(237, 122, 66) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setSurface(EndBlocks.RUTISCUS) builder.fogColor(132, 35, 13)
.setMusic(EndSounds.MUSIC_OPENSPACE) .fogDensity(1.2F)
.addFeature(EndFeatures.LUCERNIA_BUSH_RARE) .waterAndFogColor(113, 88, 53)
.addFeature(EndFeatures.ORANGO) .plantsColor(237, 122, 66)
.addFeature(EndFeatures.AERIDIUM) .surface(EndBlocks.RUTISCUS)
.addFeature(EndFeatures.LUTEBUS) .music(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.LAMELLARIUM) .feature(EndFeatures.LUCERNIA_BUSH_RARE)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.ORANGO)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .feature(EndFeatures.AERIDIUM)
.feature(EndFeatures.LUTEBUS)
.feature(EndFeatures.LAMELLARIUM)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,26 +1,29 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class DustWastelandsBiome extends EndBiome { public class DustWastelandsBiome extends EndBiome.Config {
public DustWastelandsBiome() { public DustWastelandsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("dust_wastelands")) super("dust_wastelands");
.setFogColor(226, 239, 168) }
.setFogDensity(2)
.setWaterAndFogColor(192, 180, 131) @Override
.setSurface(EndBlocks.ENDSTONE_DUST) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setDepth(1.5F) builder.fogColor(226, 239, 168)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F) .fogDensity(2)
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS) .waterAndFogColor(192, 180, 131)
.setMusic(EndSounds.MUSIC_OPENSPACE) .surface(EndBlocks.ENDSTONE_DUST)
.addStructureFeature(StructureFeatures.END_CITY) //TODO: 1.18 removed
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); //.depth(1.5F)
.particles(ParticleTypes.WHITE_ASH, 0.01F)
.loop(EndSounds.AMBIENT_DUST_WASTELANDS)
.music(EndSounds.MUSIC_OPENSPACE)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,10 +1,7 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
@ -12,38 +9,42 @@ import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class FoggyMushroomlandBiome extends EndBiome { public class FoggyMushroomlandBiome extends EndBiome.Config {
public FoggyMushroomlandBiome() { public FoggyMushroomlandBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("foggy_mushroomland")) super("foggy_mushroomland");
.addStructureFeature(EndStructures.GIANT_MOSSY_GLOWSHROOM }
.getFeatureConfigured())
.setPlantsColor(73, 210, 209) @Override
.setFogColor(41, 122, 173) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setFogDensity(3) builder.structure(EndStructures.GIANT_MOSSY_GLOWSHROOM.getFeatureConfigured())
.setWaterAndFogColor(119, 227, 250) .plantsColor(73, 210, 209)
.setSurface(EndBlocks.END_MOSS, EndBlocks.END_MYCELIUM) .fogColor(41, 122, 173)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F) .fogDensity(3)
.setLoop(EndSounds.AMBIENT_FOGGY_MUSHROOMLAND) .waterAndFogColor(119, 227, 250)
.setMusic(EndSounds.MUSIC_FOREST) //TODO: 1.18 surface Rules
.addFeature(EndFeatures.END_LAKE) //.surface(EndBlocks.END_MOSS, EndBlocks.END_MYCELIUM)
.addFeature(EndFeatures.MOSSY_GLOWSHROOM) .particles(EndParticles.GLOWING_SPHERE, 0.001F)
.addFeature(EndFeatures.BLUE_VINE) .loop(EndSounds.AMBIENT_FOGGY_MUSHROOMLAND)
.addFeature(EndFeatures.UMBRELLA_MOSS) .music(EndSounds.MUSIC_FOREST)
.addFeature(EndFeatures.CREEPING_MOSS) .feature(EndFeatures.END_LAKE)
.addFeature(EndFeatures.DENSE_VINE) .feature(EndFeatures.MOSSY_GLOWSHROOM)
//.addFeature(EndFeatures.PEARLBERRY) .feature(EndFeatures.BLUE_VINE)
.addFeature(EndFeatures.CYAN_MOSS) .feature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.CYAN_MOSS_WOOD) .feature(EndFeatures.CREEPING_MOSS)
.addFeature(EndFeatures.END_LILY) .feature(EndFeatures.DENSE_VINE)
.addFeature(EndFeatures.BUBBLE_CORAL) //.feature(EndFeatures.PEARLBERRY)
.addFeature(EndFeatures.CHARNIA_CYAN) .feature(EndFeatures.CYAN_MOSS)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) .feature(EndFeatures.CYAN_MOSS_WOOD)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.END_LILY)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.BUBBLE_CORAL)
.addMobSpawn(EndEntities.DRAGONFLY, 80, 2, 5) .feature(EndFeatures.CHARNIA_CYAN)
.addMobSpawn(EndEntities.END_FISH, 20, 2, 5) .feature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addMobSpawn(EndEntities.CUBOZOA, 10, 3, 8) .feature(EndFeatures.CHARNIA_RED_RARE)
.addMobSpawn(EndEntities.END_SLIME, 10, 1, 2) .structure(VANILLA_FEATURES.getEND_CITY())
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); .spawn(EndEntities.DRAGONFLY, 80, 2, 5)
.spawn(EndEntities.END_FISH, 20, 2, 5)
.spawn(EndEntities.CUBOZOA, 10, 3, 8)
.spawn(EndEntities.END_SLIME, 10, 1, 2)
.spawn(EntityType.ENDERMAN, 10, 1, 2);
} }
} }

View file

@ -1,40 +1,42 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class GlowingGrasslandsBiome extends EndBiome { public class GlowingGrasslandsBiome extends EndBiome.Config {
public GlowingGrasslandsBiome() { public GlowingGrasslandsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("glowing_grasslands")) super("glowing_grasslands");
.setFogColor(99, 228, 247) }
.setFogDensity(1.3F)
.setParticles(EndParticles.FIREFLY, 0.001F) @Override
.setMusic(EndSounds.MUSIC_OPENSPACE) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setLoop(EndSounds.AMBIENT_GLOWING_GRASSLANDS) builder.fogColor(99, 228, 247)
.setSurface(EndBlocks.END_MOSS) .fogDensity(1.3F)
.setWaterAndFogColor(92, 250, 230) .particles(EndParticles.FIREFLY, 0.001F)
.setPlantsColor(73, 210, 209) .music(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.END_LAKE_RARE) .loop(EndSounds.AMBIENT_GLOWING_GRASSLANDS)
.addFeature(EndFeatures.LUMECORN) .surface(EndBlocks.END_MOSS)
.addFeature(EndFeatures.BLOOMING_COOKSONIA) .waterAndFogColor(92, 250, 230)
.addFeature(EndFeatures.SALTEAGO) .plantsColor(73, 210, 209)
.addFeature(EndFeatures.VAIOLUSH_FERN) .feature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.FRACTURN) .feature(EndFeatures.LUMECORN)
.addFeature(EndFeatures.UMBRELLA_MOSS_RARE) .feature(EndFeatures.BLOOMING_COOKSONIA)
.addFeature(EndFeatures.CREEPING_MOSS_RARE) .feature(EndFeatures.SALTEAGO)
.addFeature(EndFeatures.TWISTED_UMBRELLA_MOSS_RARE) .feature(EndFeatures.VAIOLUSH_FERN)
.addFeature(EndFeatures.CHARNIA_CYAN) .feature(EndFeatures.FRACTURN)
.addFeature(EndFeatures.CHARNIA_GREEN) .feature(EndFeatures.UMBRELLA_MOSS_RARE)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) .feature(EndFeatures.CREEPING_MOSS_RARE)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.TWISTED_UMBRELLA_MOSS_RARE)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.CHARNIA_CYAN)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .feature(EndFeatures.CHARNIA_GREEN)
.feature(EndFeatures.CHARNIA_LIGHT_BLUE)
.feature(EndFeatures.CHARNIA_RED_RARE)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,40 +1,42 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class LanternWoodsBiome extends EndBiome { public class LanternWoodsBiome extends EndBiome.Config {
public LanternWoodsBiome() { public LanternWoodsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("lantern_woods")) super("lantern_woods");
.setFogColor(189, 82, 70) }
.setFogDensity(1.1F)
.setWaterAndFogColor(171, 234, 226) @Override
.setPlantsColor(254, 85, 57) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setSurface(EndBlocks.RUTISCUS) builder.fogColor(189, 82, 70)
.setMusic(EndSounds.MUSIC_FOREST) .fogDensity(1.1F)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F) .waterAndFogColor(171, 234, 226)
.addFeature(EndFeatures.END_LAKE_NORMAL) .plantsColor(254, 85, 57)
.addFeature(EndFeatures.FLAMAEA) .surface(EndBlocks.RUTISCUS)
.addFeature(EndFeatures.LUCERNIA) .music(EndSounds.MUSIC_FOREST)
.addFeature(EndFeatures.LUCERNIA_BUSH) .particles(EndParticles.GLOWING_SPHERE, 0.001F)
.addFeature(EndFeatures.FILALUX) .feature(EndFeatures.END_LAKE_NORMAL)
.addFeature(EndFeatures.AERIDIUM) .feature(EndFeatures.FLAMAEA)
.addFeature(EndFeatures.LAMELLARIUM) .feature(EndFeatures.LUCERNIA)
.addFeature(EndFeatures.BOLUX_MUSHROOM) .feature(EndFeatures.LUCERNIA_BUSH)
.addFeature(EndFeatures.AURANT_POLYPORE) .feature(EndFeatures.FILALUX)
.addFeature(EndFeatures.POND_ANEMONE) .feature(EndFeatures.AERIDIUM)
.addFeature(EndFeatures.CHARNIA_ORANGE) .feature(EndFeatures.LAMELLARIUM)
.addFeature(EndFeatures.CHARNIA_RED) .feature(EndFeatures.BOLUX_MUSHROOM)
.addFeature(EndFeatures.RUSCUS) .feature(EndFeatures.AURANT_POLYPORE)
.addFeature(EndFeatures.RUSCUS_WOOD) .feature(EndFeatures.POND_ANEMONE)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.CHARNIA_ORANGE)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .feature(EndFeatures.CHARNIA_RED)
.feature(EndFeatures.RUSCUS)
.feature(EndFeatures.RUSCUS_WOOD)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,42 +1,46 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class MegalakeBiome extends EndBiome { public class MegalakeBiome extends EndBiome.Config {
public MegalakeBiome() { public MegalakeBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("megalake")) super("megalake");
.addStructureFeature(EndStructures.MEGALAKE.getFeatureConfigured()) }
.setPlantsColor(73, 210, 209)
.setFogColor(178, 209, 248) @Override
.setWaterAndFogColor(96, 163, 255) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setFogDensity(1.75F) builder.structure(EndStructures.MEGALAKE.getFeatureConfigured())
.setMusic(EndSounds.MUSIC_WATER) .plantsColor(73, 210, 209)
.setLoop(EndSounds.AMBIENT_MEGALAKE) .fogColor(178, 209, 248)
.setSurface(EndBlocks.END_MOSS, EndBlocks.ENDSTONE_DUST) .waterAndFogColor(96, 163, 255)
.setDepth(0F) .fogDensity(1.75F)
.addFeature(EndFeatures.END_LOTUS) .music(EndSounds.MUSIC_WATER)
.addFeature(EndFeatures.END_LOTUS_LEAF) .loop(EndSounds.AMBIENT_MEGALAKE)
.addFeature(EndFeatures.BUBBLE_CORAL_RARE) //TODO: 1.18 surface Rules
.addFeature(EndFeatures.END_LILY_RARE) //.surface(EndBlocks.END_MOSS, EndBlocks.ENDSTONE_DUST)
.addFeature(EndFeatures.UMBRELLA_MOSS) //TODO: 1.18 removed
.addFeature(EndFeatures.CREEPING_MOSS) //.depth(0F)
//.addFeature(EndFeatures.PEARLBERRY) .feature(EndFeatures.END_LOTUS)
.addFeature(EndFeatures.CHARNIA_CYAN) .feature(EndFeatures.END_LOTUS_LEAF)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) .feature(EndFeatures.BUBBLE_CORAL_RARE)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.END_LILY_RARE)
.addFeature(EndFeatures.MENGER_SPONGE) .feature(EndFeatures.UMBRELLA_MOSS)
.addMobSpawn(EndEntities.DRAGONFLY, 50, 1, 3) .feature(EndFeatures.CREEPING_MOSS)
.addMobSpawn(EndEntities.END_FISH, 50, 3, 8) //.feature(EndFeatures.PEARLBERRY)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8) .feature(EndFeatures.CHARNIA_CYAN)
.addMobSpawn(EndEntities.END_SLIME, 5, 1, 2) .feature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); .feature(EndFeatures.CHARNIA_RED_RARE)
.feature(EndFeatures.MENGER_SPONGE)
.spawn(EndEntities.DRAGONFLY, 50, 1, 3)
.spawn(EndEntities.END_FISH, 50, 3, 8)
.spawn(EndEntities.CUBOZOA, 50, 3, 8)
.spawn(EndEntities.END_SLIME, 5, 1, 2)
.spawn(EntityType.ENDERMAN, 10, 1, 2);
} }
} }

View file

@ -1,8 +1,7 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
@ -11,35 +10,40 @@ import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class MegalakeGroveBiome extends EndBiome { public class MegalakeGroveBiome extends EndBiome.Config {
public MegalakeGroveBiome() { public MegalakeGroveBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("megalake_grove")) super("megalake_grove");
.addStructureFeature(EndStructures.MEGALAKE_SMALL.getFeatureConfigured()) }
.setPlantsColor(73, 210, 209)
.setFogColor(178, 209, 248) @Override
.setWaterAndFogColor(96, 163, 255) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setFogDensity(2.0F) builder.structure(EndStructures.MEGALAKE_SMALL.getFeatureConfigured())
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F) .plantsColor(73, 210, 209)
.setMusic(EndSounds.MUSIC_WATER) .fogColor(178, 209, 248)
.setLoop(EndSounds.AMBIENT_MEGALAKE_GROVE) .waterAndFogColor(96, 163, 255)
.setSurface(EndBlocks.END_MOSS) .fogDensity(2.0F)
.setDepth(0F) .particles(EndParticles.GLOWING_SPHERE, 0.001F)
.addFeature(EndFeatures.LACUGROVE) .music(EndSounds.MUSIC_WATER)
.addFeature(EndFeatures.END_LOTUS) .loop(EndSounds.AMBIENT_MEGALAKE_GROVE)
.addFeature(EndFeatures.END_LOTUS_LEAF) .surface(EndBlocks.END_MOSS)
.addFeature(EndFeatures.BUBBLE_CORAL_RARE) //TODO: 1.18 removed
.addFeature(EndFeatures.END_LILY_RARE) //.depth(0F)
.addFeature(EndFeatures.UMBRELLA_MOSS) .feature(EndFeatures.LACUGROVE)
//.addFeature(EndFeatures.PEARLBERRY) .feature(EndFeatures.END_LOTUS)
.addFeature(EndFeatures.CREEPING_MOSS) .feature(EndFeatures.END_LOTUS_LEAF)
.addFeature(EndFeatures.CHARNIA_CYAN) .feature(EndFeatures.BUBBLE_CORAL_RARE)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) .feature(EndFeatures.END_LILY_RARE)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.MENGER_SPONGE) //.feature(EndFeatures.PEARLBERRY)
.addMobSpawn(EndEntities.DRAGONFLY, 20, 1, 3) .feature(EndFeatures.CREEPING_MOSS)
.addMobSpawn(EndEntities.END_FISH, 20, 3, 8) .feature(EndFeatures.CHARNIA_CYAN)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8) .feature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addMobSpawn(EndEntities.END_SLIME, 5, 1, 2) .feature(EndFeatures.CHARNIA_RED_RARE)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); .feature(EndFeatures.MENGER_SPONGE)
.spawn(EndEntities.DRAGONFLY, 20, 1, 3)
.spawn(EndEntities.END_FISH, 20, 3, 8)
.spawn(EndEntities.CUBOZOA, 50, 3, 8)
.spawn(EndEntities.END_SLIME, 5, 1, 2)
.spawn(EntityType.ENDERMAN, 10, 1, 2);
} }
} }

View file

@ -1,34 +1,36 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class NeonOasisBiome extends EndBiome { public class NeonOasisBiome extends EndBiome.Config {
public NeonOasisBiome() { public NeonOasisBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("neon_oasis")) super("neon_oasis");
.setGenChance(0.5F) }
.setFogColor(226, 239, 168)
.setFogDensity(2) @Override
.setWaterAndFogColor(106, 238, 215) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setSurface(EndBlocks.ENDSTONE_DUST, EndBlocks.END_MOSS) builder.genChance(0.5F)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F) .fogColor(226, 239, 168)
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS) .fogDensity(2)
.setMusic(EndSounds.MUSIC_OPENSPACE) .waterAndFogColor(106, 238, 215)
.addFeature(EndFeatures.DESERT_LAKE) //TODO: 1.18 surface Rules
.addFeature(EndFeatures.NEON_CACTUS) //.surface(EndBlocks.ENDSTONE_DUST, EndBlocks.END_MOSS)
.addFeature(EndFeatures.UMBRELLA_MOSS) .particles(ParticleTypes.WHITE_ASH, 0.01F)
.addFeature(EndFeatures.CREEPING_MOSS) .loop(EndSounds.AMBIENT_DUST_WASTELANDS)
.addFeature(EndFeatures.CHARNIA_GREEN) .music(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.CHARNIA_CYAN) .feature(EndFeatures.DESERT_LAKE)
.addFeature(EndFeatures.CHARNIA_RED) .feature(EndFeatures.NEON_CACTUS)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.UMBRELLA_MOSS)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .feature(EndFeatures.CREEPING_MOSS)
.feature(EndFeatures.CHARNIA_GREEN)
.feature(EndFeatures.CHARNIA_CYAN)
.feature(EndFeatures.CHARNIA_RED)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -2,24 +2,27 @@ package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class PaintedMountainsBiome extends EndBiome { public class PaintedMountainsBiome extends EndBiome.Config {
public PaintedMountainsBiome() { public PaintedMountainsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("painted_mountains")) super("painted_mountains");
.addStructureFeature(EndStructures.PAINTED_MOUNTAIN.getFeatureConfigured()) }
.setFogColor(226, 239, 168)
.setFogDensity(2) @Override
.setWaterAndFogColor(192, 180, 131) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setMusic(EndSounds.MUSIC_OPENSPACE) builder.structure(EndStructures.PAINTED_MOUNTAIN.getFeatureConfigured())
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS) .fogColor(226, 239, 168)
.setSurface(EndBlocks.ENDSTONE_DUST) .fogDensity(2)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F) .waterAndFogColor(192, 180, 131)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .music(EndSounds.MUSIC_OPENSPACE)
.loop(EndSounds.AMBIENT_DUST_WASTELANDS)
.surface(EndBlocks.ENDSTONE_DUST)
.particles(ParticleTypes.WHITE_ASH, 0.01F)
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }

View file

@ -1,44 +1,46 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class ShadowForestBiome extends EndBiome { public class ShadowForestBiome extends EndBiome.Config {
public ShadowForestBiome() { public ShadowForestBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("shadow_forest")) super("shadow_forest");
.setFogColor(0, 0, 0) }
.setFogDensity(2.5F)
.setPlantsColor(45, 45, 45) @Override
.setWaterAndFogColor(42, 45, 80) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setSurface(EndBlocks.SHADOW_GRASS) builder.fogColor(0, 0, 0)
.setParticles(ParticleTypes.MYCELIUM, 0.01F) .fogDensity(2.5F)
.setLoop(EndSounds.AMBIENT_CHORUS_FOREST) .plantsColor(45, 45, 45)
.setMusic(EndSounds.MUSIC_DARK) .waterAndFogColor(42, 45, 80)
.addFeature(EndFeatures.VIOLECITE_LAYER) .surface(EndBlocks.SHADOW_GRASS)
.addFeature(EndFeatures.END_LAKE_RARE) .particles(ParticleTypes.MYCELIUM, 0.01F)
.addFeature(EndFeatures.DRAGON_TREE) .loop(EndSounds.AMBIENT_CHORUS_FOREST)
.addFeature(EndFeatures.DRAGON_TREE_BUSH) .music(EndSounds.MUSIC_DARK)
.addFeature(EndFeatures.SHADOW_PLANT) .feature(EndFeatures.VIOLECITE_LAYER)
.addFeature(EndFeatures.MURKWEED) .feature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.NEEDLEGRASS) .feature(EndFeatures.DRAGON_TREE)
.addFeature(EndFeatures.SHADOW_BERRY) .feature(EndFeatures.DRAGON_TREE_BUSH)
.addFeature(EndFeatures.TWISTED_VINE) .feature(EndFeatures.SHADOW_PLANT)
.addFeature(EndFeatures.PURPLE_POLYPORE) .feature(EndFeatures.MURKWEED)
.addFeature(EndFeatures.TAIL_MOSS) .feature(EndFeatures.NEEDLEGRASS)
.addFeature(EndFeatures.TAIL_MOSS_WOOD) .feature(EndFeatures.SHADOW_BERRY)
.addFeature(EndFeatures.CHARNIA_PURPLE) .feature(EndFeatures.TWISTED_VINE)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.PURPLE_POLYPORE)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.TAIL_MOSS)
.addMobSpawn(EndEntities.SHADOW_WALKER, 80, 2, 4) .feature(EndFeatures.TAIL_MOSS_WOOD)
.addMobSpawn(EntityType.ENDERMAN, 40, 1, 4) .feature(EndFeatures.CHARNIA_PURPLE)
.addMobSpawn(EntityType.PHANTOM, 1, 1, 2)); .feature(EndFeatures.CHARNIA_RED_RARE)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EndEntities.SHADOW_WALKER, 80, 2, 4)
.spawn(EntityType.ENDERMAN, 40, 1, 4)
.spawn(EntityType.PHANTOM, 1, 1, 2);
} }
} }

View file

@ -1,38 +1,47 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.surface.SurfaceBuilders;
public class SulphurSpringsBiome extends EndBiome { public class SulphurSpringsBiome extends EndBiome.Config {
public SulphurSpringsBiome() { public SulphurSpringsBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("sulphur_springs")) super("sulphur_springs");
.addCustomData("has_caves", false) }
.setSurface(SurfaceBuilders.SULPHURIC_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG))
.setMusic(EndSounds.MUSIC_OPENSPACE) @Override
.setLoop(EndSounds.AMBIENT_SULPHUR_SPRINGS) protected boolean hasCaves() {
.setWaterColor(25, 90, 157) return false;
.setWaterFogColor(30, 65, 61) }
.setFogColor(207, 194, 62)
.setFogDensity(1.5F) @Override
.setDepth(0F) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setParticles(EndParticles.SULPHUR_PARTICLE, 0.001F) builder
.addFeature(EndFeatures.GEYSER) //TODO: 1.18 surface Rules
.addFeature(EndFeatures.SURFACE_VENT) //.surface(SurfaceBuilders.SULPHURIC_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG))
.addFeature(EndFeatures.SULPHURIC_LAKE) .music(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.SULPHURIC_CAVE) .loop(EndSounds.AMBIENT_SULPHUR_SPRINGS)
.addFeature(EndFeatures.HYDRALUX) .waterColor(25, 90, 157)
.addFeature(EndFeatures.CHARNIA_GREEN) .waterFogColor(30, 65, 61)
.addFeature(EndFeatures.CHARNIA_ORANGE) .fogColor(207, 194, 62)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .fogDensity(1.5F)
.addMobSpawn(EndEntities.END_FISH, 50, 3, 8) //TODO: 1.18 removed
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8) //.depth(0F)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); .particles(EndParticles.SULPHUR_PARTICLE, 0.001F)
.feature(EndFeatures.GEYSER)
.feature(EndFeatures.SURFACE_VENT)
.feature(EndFeatures.SULPHURIC_LAKE)
.feature(EndFeatures.SULPHURIC_CAVE)
.feature(EndFeatures.HYDRALUX)
.feature(EndFeatures.CHARNIA_GREEN)
.feature(EndFeatures.CHARNIA_ORANGE)
.feature(EndFeatures.CHARNIA_RED_RARE)
.spawn(EndEntities.END_FISH, 50, 3, 8)
.spawn(EndEntities.CUBOZOA, 50, 3, 8)
.spawn(EntityType.ENDERMAN, 50, 1, 4);
} }
} }

View file

@ -1,27 +1,29 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.surface.SurfaceBuilders;
public class UmbraValleyBiome extends EndBiome { public class UmbraValleyBiome extends EndBiome.Config {
public UmbraValleyBiome() { public UmbraValleyBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("umbra_valley")) super("umbra_valley");
.setFogColor(100, 100, 100) }
.setPlantsColor(172, 189, 190)
.setWaterAndFogColor(69, 104, 134) @Override
.setSurface(SurfaceBuilders.UMBRA_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG)) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setParticles(EndParticles.AMBER_SPHERE, 0.0001F) builder.fogColor(100, 100, 100)
.setLoop(EndSounds.UMBRA_VALLEY) .plantsColor(172, 189, 190)
.setMusic(EndSounds.MUSIC_DARK) .waterAndFogColor(69, 104, 134)
.addFeature(EndFeatures.UMBRALITH_ARCH) //TODO: 1.18 surface Rules
.addFeature(EndFeatures.THIN_UMBRALITH_ARCH) //.surface(SurfaceBuilders.UMBRA_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG))
.addFeature(EndFeatures.INFLEXIA) .particles(EndParticles.AMBER_SPHERE, 0.0001F)
.addFeature(EndFeatures.FLAMMALIX) .loop(EndSounds.UMBRA_VALLEY)
); .music(EndSounds.MUSIC_DARK)
.feature(EndFeatures.UMBRALITH_ARCH)
.feature(EndFeatures.THIN_UMBRALITH_ARCH)
.feature(EndFeatures.INFLEXIA)
.feature(EndFeatures.FLAMMALIX);
} }
} }

View file

@ -1,44 +1,46 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class UmbrellaJungleBiome extends EndBiome { public class UmbrellaJungleBiome extends EndBiome.Config {
public UmbrellaJungleBiome() { public UmbrellaJungleBiome() {
super(new BCLBiomeDef(BetterEnd.makeID("umbrella_jungle")) super("umbrella_jungle");
.setFogColor(87, 223, 221) }
.setWaterAndFogColor(119, 198, 253)
.setFoliageColor(27, 183, 194) @Override
.setFogDensity(2.3F) protected void addCustomBuildData(BCLBiomeBuilder builder) {
.setParticles(EndParticles.JUNGLE_SPORE, 0.001F) builder.fogColor(87, 223, 221)
.setMusic(EndSounds.MUSIC_FOREST) .waterAndFogColor(119, 198, 253)
.setLoop(EndSounds.AMBIENT_UMBRELLA_JUNGLE) .foliageColor(27, 183, 194)
.setSurface(EndBlocks.JUNGLE_MOSS) .fogDensity(2.3F)
.addFeature(EndFeatures.END_LAKE) .particles(EndParticles.JUNGLE_SPORE, 0.001F)
.addFeature(EndFeatures.UMBRELLA_TREE) .music(EndSounds.MUSIC_FOREST)
.addFeature(EndFeatures.JELLYSHROOM) .loop(EndSounds.AMBIENT_UMBRELLA_JUNGLE)
.addFeature(EndFeatures.TWISTED_UMBRELLA_MOSS) .surface(EndBlocks.JUNGLE_MOSS)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_FLOOR) .feature(EndFeatures.END_LAKE)
.addFeature(EndFeatures.JUNGLE_GRASS) .feature(EndFeatures.UMBRELLA_TREE)
.addFeature(EndFeatures.CYAN_MOSS) .feature(EndFeatures.JELLYSHROOM)
.addFeature(EndFeatures.CYAN_MOSS_WOOD) .feature(EndFeatures.TWISTED_UMBRELLA_MOSS)
.addFeature(EndFeatures.JUNGLE_FERN_WOOD) .feature(EndFeatures.SMALL_JELLYSHROOM_FLOOR)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_WALL) .feature(EndFeatures.JUNGLE_GRASS)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_WOOD) .feature(EndFeatures.CYAN_MOSS)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_CEIL) .feature(EndFeatures.CYAN_MOSS_WOOD)
.addFeature(EndFeatures.JUNGLE_VINE) .feature(EndFeatures.JUNGLE_FERN_WOOD)
.addFeature(EndFeatures.CHARNIA_CYAN) .feature(EndFeatures.SMALL_JELLYSHROOM_WALL)
.addFeature(EndFeatures.CHARNIA_GREEN) .feature(EndFeatures.SMALL_JELLYSHROOM_WOOD)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) .feature(EndFeatures.SMALL_JELLYSHROOM_CEIL)
.addFeature(EndFeatures.CHARNIA_RED_RARE) .feature(EndFeatures.JUNGLE_VINE)
.addStructureFeature(StructureFeatures.END_CITY) .feature(EndFeatures.CHARNIA_CYAN)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); .feature(EndFeatures.CHARNIA_GREEN)
.feature(EndFeatures.CHARNIA_LIGHT_BLUE)
.feature(EndFeatures.CHARNIA_RED_RARE)
.structure(VANILLA_FEATURES.getEND_CITY())
.spawn(EntityType.ENDERMAN, 50, 1, 2);
} }
} }