Continue mapping migration

This commit is contained in:
Aleksey 2021-04-12 21:38:22 +03:00
parent 99ade39404
commit f03fd03bd0
499 changed files with 12567 additions and 12723 deletions

View file

@ -1,39 +1,36 @@
package ru.betterend.world.biome;
import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.core.Registry;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.Music;
import net.minecraft.sounds.Musics;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.biome.AmbientAdditionsSettings;
import net.minecraft.world.level.biome.AmbientMoodSettings;
import net.minecraft.world.level.biome.AmbientParticleSettings;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biome.BiomeCategory;
import net.minecraft.world.level.biome.Biome.Precipitation;
import net.minecraft.world.level.biome.BiomeGenerationSettings;
import net.minecraft.world.level.biome.BiomeSpecialEffects.Builder;
import net.minecraft.world.level.biome.MobSpawnSettings;
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.client.sound.MusicType;
import net.minecraft.world.entity.EntityType;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.sound.BiomeAdditionsSound;
import net.minecraft.sound.BiomeMoodSound;
import net.minecraft.sound.MusicSound;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.core.Registry;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biome.Category;
import net.minecraft.world.level.biome.Biome.Precipitation;
import net.minecraft.world.biome.BiomeEffects.Builder;
import net.minecraft.world.biome.BiomeParticleConfig;
import net.minecraft.world.biome.GenerationSettings;
import net.minecraft.world.biome.SpawnSettings;
import net.minecraft.world.biome.SpawnSettings.SpawnEntry;
import net.minecraft.world.gen.GenerationStep.Carver;
import net.minecraft.world.gen.GenerationStep.Feature;
import net.minecraft.world.gen.ProbabilityConfig;
import net.minecraft.world.gen.carver.ConfiguredCarver;
import net.minecraft.world.level.levelgen.GenerationStep.Carving;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilder;
import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilders;
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;
import net.minecraft.world.level.levelgen.feature.configurations.ProbabilityFeatureConfiguration;
import net.minecraft.world.level.levelgen.surfacebuilders.ConfiguredSurfaceBuilder;
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilder;
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration;
import com.google.common.collect.Lists;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures;
import ru.betterend.util.MHelper;
@ -44,16 +41,16 @@ import ru.betterend.world.surface.SurfaceBuilders;
public class BiomeDefinition {
private static final int DEF_FOLIAGE = MHelper.color(197, 210, 112);
private final List<ConfiguredStructureFeature<?, ?>> structures = Lists.newArrayList();
private final List<FeatureInfo> features = Lists.newArrayList();
private final List<CarverInfo> carvers = Lists.newArrayList();
private final List<SpawnInfo> mobs = Lists.newArrayList();
private final List<SpawnEntry> spawns = Lists.newArrayList();
private final List<SpawnerData> spawns = Lists.newArrayList();
private BiomeParticleConfig particleConfig;
private BiomeAdditionsSound additions;
private BiomeMoodSound mood;
private AmbientParticleSettings particleConfig;
private AmbientAdditionsSettings additions;
private AmbientMoodSettings mood;
private SoundEvent music;
private SoundEvent loop;
@ -69,56 +66,58 @@ public class BiomeDefinition {
private float genChance = 1F;
private boolean hasCaves = true;
private boolean isCaveBiome = false;
private ConfiguredSurfaceBuilder<?> surface;
public BiomeDefinition(String name) {
this.id = BetterEnd.makeID(name);
}
public BiomeDefinition setCaveBiome() {
isCaveBiome = true;
return this;
}
public BiomeDefinition setSurface(Block block) {
setSurface(SurfaceBuilder.DEFAULT.withConfig(new TernarySurfaceConfig(block.defaultBlockState(),
Blocks.END_STONE.defaultBlockState(), Blocks.END_STONE.defaultBlockState())));
setSurface(SurfaceBuilder.DEFAULT.configured(new SurfaceBuilderBaseConfiguration(
block.defaultBlockState(),
Blocks.END_STONE.defaultBlockState(),
Blocks.END_STONE.defaultBlockState()
)));
return this;
}
public BiomeDefinition setSurface(Block block1, Block block2) {
setSurface(DoubleBlockSurfaceBuilder.register("be_" + id.getPath() + "_surface").setBlock1(block1)
.setBlock2(block2).configured());
setSurface(DoubleBlockSurfaceBuilder.register("be_" + id.getPath() + "_surface").setBlock1(block1).setBlock2(block2).configured());
return this;
}
public BiomeDefinition setSurface(ConfiguredSurfaceBuilder<?> builder) {
this.surface = builder;
return this;
}
public BiomeDefinition setSurface(SurfaceBuilder<TernarySurfaceConfig> builder) {
return setSurface(builder.withConfig(SurfaceBuilders.DEFAULT_END_CONFIG));
public BiomeDefinition setSurface(SurfaceBuilder<SurfaceBuilderBaseConfiguration> builder) {
return setSurface(builder.configured(SurfaceBuilders.DEFAULT_END_CONFIG));
}
public BiomeDefinition setParticles(ParticleOptions particle, float probability) {
this.particleConfig = new BiomeParticleConfig(particle, probability);
this.particleConfig = new AmbientParticleSettings(particle, probability);
return this;
}
public BiomeDefinition setGenChance(float genChance) {
this.genChance = genChance;
return this;
}
public BiomeDefinition setDepth(float depth) {
this.depth = depth;
return this;
}
public BiomeDefinition addMobSpawn(EntityType<?> type, int weight, int minGroupSize, int maxGroupSize) {
ResourceLocation eID = Registry.ENTITY_TYPE.getId(type);
ResourceLocation eID = Registry.ENTITY_TYPE.getKey(type);
if (eID != Registry.ENTITY_TYPE.getDefaultKey()) {
SpawnInfo info = new SpawnInfo();
info.type = type;
@ -129,8 +128,8 @@ public class BiomeDefinition {
}
return this;
}
public BiomeDefinition addMobSpawn(SpawnEntry entry) {
public BiomeDefinition addMobSpawn(SpawnerData entry) {
spawns.add(entry);
return this;
}
@ -139,12 +138,12 @@ public class BiomeDefinition {
structures.add(feature);
return this;
}
public BiomeDefinition addStructureFeature(EndStructureFeature feature) {
structures.add(feature.getFeatureConfigured());
return this;
}
public BiomeDefinition addFeature(EndFeature feature) {
FeatureInfo info = new FeatureInfo();
info.featureStep = feature.getFeatureStep();
@ -153,14 +152,14 @@ public class BiomeDefinition {
return this;
}
public BiomeDefinition addFeature(Feature featureStep, ConfiguredFeature<?, ?> feature) {
public BiomeDefinition addFeature(Decoration featureStep, ConfiguredFeature<?, ?> feature) {
FeatureInfo info = new FeatureInfo();
info.featureStep = featureStep;
info.feature = feature;
features.add(info);
return this;
}
private int getColor(int r, int g, int b) {
r = Mth.clamp(r, 0, 255);
g = Mth.clamp(g, 0, 255);
@ -187,21 +186,21 @@ public class BiomeDefinition {
this.waterFogColor = getColor(r, g, b);
return this;
}
public BiomeDefinition setWaterAndFogColor(int r, int g, int b) {
return setWaterColor(r, g, b).setWaterFogColor(r, g, b);
}
public BiomeDefinition setFoliageColor(int r, int g, int b) {
this.foliageColor = getColor(r, g, b);
return this;
}
public BiomeDefinition setGrassColor(int r, int g, int b) {
this.grassColor = getColor(r, g, b);
return this;
}
public BiomeDefinition setPlantsColor(int r, int g, int b) {
return this.setFoliageColor(r, g, b).setGrassColor(r, g, b);
}
@ -212,12 +211,12 @@ public class BiomeDefinition {
}
public BiomeDefinition setMood(SoundEvent mood) {
this.mood = new BiomeMoodSound(mood, 6000, 8, 2.0D);
this.mood = new AmbientMoodSettings(mood, 6000, 8, 2.0D);
return this;
}
public BiomeDefinition setAdditions(SoundEvent additions) {
this.additions = new BiomeAdditionsSound(additions, 0.0111);
this.additions = new AmbientAdditionsSettings(additions, 0.0111);
return this;
}
@ -225,48 +224,49 @@ public class BiomeDefinition {
this.music = music;
return this;
}
public BiomeDefinition setCaves(boolean hasCaves) {
this.hasCaves = hasCaves;
return this;
}
public Biome build() {
SpawnSettings.Builder spawnSettings = new SpawnSettings.Builder();
GenerationSettings.Builder generationSettings = new GenerationSettings.Builder();
MobSpawnSettings.Builder spawnSettings = new MobSpawnSettings.Builder();
BiomeGenerationSettings.Builder generationSettings = new BiomeGenerationSettings.Builder();
Builder effects = new Builder();
mobs.forEach((spawn) -> {
spawnSettings.spawn(spawn.type.getSpawnGroup(),
new SpawnSettings.SpawnEntry(spawn.type, spawn.weight, spawn.minGroupSize, spawn.maxGroupSize));
spawnSettings.addSpawn(spawn.type.getCategory(), new MobSpawnSettings.SpawnerData(spawn.type, spawn.weight, spawn.minGroupSize, spawn.maxGroupSize));
});
spawns.forEach((entry) -> {
spawnSettings.spawn(entry.type.getSpawnGroup(), entry);
spawnSettings.addSpawn(entry.type.getCategory(), entry);
});
EndFeatures.addDefaultFeatures(this);
generationSettings.surfaceBuilder(surface == null ? ConfiguredSurfaceBuilders.END : surface);
structures.forEach((structure) -> generationSettings.structureFeature(structure));
features.forEach((info) -> generationSettings.feature(info.featureStep, info.feature));
carvers.forEach((info) -> generationSettings.carver(info.carverStep, info.carver));
generationSettings.surfaceBuilder(surface == null ? net.minecraft.data.worldgen.SurfaceBuilders.END : surface);
structures.forEach((structure) -> generationSettings.addStructureStart(structure));
features.forEach((info) -> generationSettings.addFeature(info.featureStep, info.feature));
carvers.forEach((info) -> generationSettings.addCarver(info.carverStep, info.carver));
effects.skyColor(0).waterColor(waterColor).waterFogColor(waterFogColor).fogColor(fogColor)
.foliageColor(foliageColor).grassColor(grassColor);
if (loop != null)
effects.loopSound(loop);
if (mood != null)
effects.moodSound(mood);
if (additions != null)
effects.additionsSound(additions);
if (particleConfig != null)
effects.particleConfig(particleConfig);
effects.music(music != null ? new MusicSound(music, 600, 2400, true) : MusicType.END);
effects.skyColor(0).waterColor(waterColor).waterFogColor(waterFogColor).fogColor(fogColor).foliageColorOverride(foliageColor).grassColorOverride(grassColor);
if (loop != null) effects.ambientLoopSound(loop);
if (mood != null) effects.ambientMoodSound(mood);
if (additions != null) effects.ambientAdditionsSound(additions);
if (particleConfig != null) effects.ambientParticle(particleConfig);
effects.backgroundMusic(music != null ? new Music(music, 600, 2400, true) : Musics.END);
return new Biome.Builder().precipitation(Precipitation.NONE)
.category(isCaveBiome ? Category.NONE : Category.THEEND).depth(depth).scale(0.2F).temperature(2.0F)
.downfall(0.0F).effects(effects.build()).spawnSettings(spawnSettings.build())
.generationSettings(generationSettings.build()).build();
return new Biome.BiomeBuilder()
.precipitation(Precipitation.NONE)
.biomeCategory(isCaveBiome ? BiomeCategory.NONE : BiomeCategory.THEEND)
.depth(depth)
.scale(0.2F)
.temperature(2.0F)
.downfall(0.0F)
.specialEffects(effects.build())
.mobSpawnSettings(spawnSettings.build())
.generationSettings(generationSettings.build())
.build();
}
private static final class SpawnInfo {
@ -277,19 +277,19 @@ public class BiomeDefinition {
}
private static final class FeatureInfo {
Feature featureStep;
Decoration featureStep;
ConfiguredFeature<?, ?> feature;
}
private static final class CarverInfo {
Carver carverStep;
ConfiguredCarver<ProbabilityConfig> carver;
Carving carverStep;
ConfiguredWorldCarver<ProbabilityFeatureConfiguration> carver;
}
public ResourceLocation getID() {
return id;
}
public float getFodDensity() {
return fogDensity;
}
@ -302,7 +302,7 @@ public class BiomeDefinition {
return hasCaves;
}
public BiomeDefinition addCarver(Carver carverStep, ConfiguredCarver<ProbabilityConfig> carver) {
public BiomeDefinition addCarver(Carving carverStep, ConfiguredWorldCarver<ProbabilityFeatureConfiguration> carver) {
CarverInfo info = new CarverInfo();
info.carverStep = carverStep;
info.carver = carver;

View file

@ -3,14 +3,12 @@ package ru.betterend.world.biome;
import java.io.InputStream;
import java.util.List;
import java.util.Random;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.biome.Biome;
import com.google.common.collect.Lists;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.core.Registry;
import net.minecraft.world.level.biome.Biome;
import ru.betterend.config.Configs;
import ru.betterend.util.JsonFactory;
import ru.betterend.util.StructureHelper;
@ -82,7 +80,7 @@ public class EndBiome {
biome.biomeParent = this;
subbiomes.add(biome);
}
public boolean containsSubBiome(EndBiome biome) {
return subbiomes.contains(biome);
}
@ -137,7 +135,7 @@ public class EndBiome {
public float getFogDensity() {
return fogDensity;
}
protected void readStructureList() {
String ns = mcID.getNamespace();
String nm = mcID.getPath();
@ -162,11 +160,11 @@ public class EndBiome {
}
}
}
public EndFeature getStructuresFeature() {
return structuresFeature;
}
public Biome getActualBiome() {
return this.actualBiome;
}
@ -174,15 +172,15 @@ public class EndBiome {
public float getGenChance() {
return this.genChance;
}
public float getGenChanceImmutable() {
return this.genChanceUnmutable;
}
public boolean hasCaves() {
return hasCaves;
}
public void updateActualBiomes(Registry<Biome> biomeRegistry) {
subbiomes.forEach((sub) -> {
if (sub != this) {
@ -194,7 +192,7 @@ public class EndBiome {
}
this.actualBiome = biomeRegistry.get(mcID);
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
@ -203,7 +201,7 @@ public class EndBiome {
EndBiome biome = (EndBiome) obj;
return biome == null ? false : biome.mcID.equals(mcID);
}
@Override
public int hashCode() {
return mcID.hashCode();

View file

@ -9,9 +9,15 @@ import ru.betterend.world.biome.EndBiome;
public class BiomeIceStarfield extends EndBiome {
public BiomeIceStarfield() {
super(new BiomeDefinition("ice_starfield").setFogColor(224, 245, 254).setFogDensity(2.2F)
.setFoliageColor(193, 244, 244).setGenChance(0.25F).setParticles(EndParticles.SNOWFLAKE, 0.002F)
.addStructureFeature(EndStructures.GIANT_ICE_STAR).addFeature(EndFeatures.ICE_STAR)
.addFeature(EndFeatures.ICE_STAR_SMALL).addMobSpawn(EntityType.ENDERMAN, 20, 1, 4));
super(new BiomeDefinition("ice_starfield")
.setFogColor(224, 245, 254)
.setFogDensity(2.2F)
.setFoliageColor(193, 244, 244)
.setGenChance(0.25F)
.setParticles(EndParticles.SNOWFLAKE, 0.002F)
.addStructureFeature(EndStructures.GIANT_ICE_STAR)
.addFeature(EndFeatures.ICE_STAR)
.addFeature(EndFeatures.ICE_STAR_SMALL)
.addMobSpawn(EntityType.ENDERMAN, 20, 1, 4));
}
}

View file

@ -1,10 +1,9 @@
package ru.betterend.world.biome.cave;
import java.util.Random;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.util.collection.WeightedList;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.ai.behavior.WeightedList;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.Feature;
import ru.betterend.registry.EndBiomes;
import ru.betterend.world.biome.BiomeDefinition;
@ -15,42 +14,44 @@ import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature;
public class EndCaveBiome extends EndBiome {
private WeightedList<Feature<?>> floorFeatures = new WeightedList<Feature<?>>();
private WeightedList<Feature<?>> ceilFeatures = new WeightedList<Feature<?>>();
public EndCaveBiome(BiomeDefinition definition) {
super(makeDef(definition));
}
private static BiomeDefinition makeDef(BiomeDefinition definition) {
EndFeature feature = EndFeature.makeChunkFeature(definition.getID().getPath() + "_cave_populator",
new CaveChunkPopulatorFeature(() -> (EndCaveBiome) EndBiomes.getBiome(definition.getID())));
EndFeature feature = EndFeature.makeChunkFeature(
definition.getID().getPath() + "_cave_populator",
new CaveChunkPopulatorFeature(() -> (EndCaveBiome) EndBiomes.getBiome(definition.getID()))
);
definition.addFeature(feature).setCaveBiome();
return definition;
}
public void addFloorFeature(Feature<?> feature, int weight) {
floorFeatures.add(feature, weight);
}
public void addCeilFeature(Feature<?> feature, int weight) {
ceilFeatures.add(feature, weight);
}
public Feature<?> getFloorFeature(Random random) {
return floorFeatures.isEmpty() ? null : floorFeatures.pickRandom(random);
return floorFeatures.isEmpty() ? null : floorFeatures.getOne(random);
}
public Feature<?> getCeilFeature(Random random) {
return ceilFeatures.isEmpty() ? null : ceilFeatures.pickRandom(random);
return ceilFeatures.isEmpty() ? null : ceilFeatures.getOne(random);
}
public float getFloorDensity() {
return 0;
}
public float getCeilDensity() {
return 0;
}
public BlockState getCeil(BlockPos pos) {
return null;
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.cave;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.state.BlockState;
import ru.betterend.blocks.BlockProperties;
import ru.betterend.blocks.BlockProperties.TripleShape;
import ru.betterend.registry.EndBlocks;
@ -12,34 +12,39 @@ import ru.betterend.world.biome.BiomeDefinition;
public class LushAuroraCaveBiome extends EndCaveBiome {
public LushAuroraCaveBiome() {
super(new BiomeDefinition("lush_aurora_cave").setFogColor(150, 30, 68).setFogDensity(2.0F)
.setPlantsColor(108, 25, 46).setWaterAndFogColor(186, 77, 237).setMusic(EndSounds.MUSIC_FOREST)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F).setSurface(EndBlocks.CAVE_MOSS));
super(new BiomeDefinition("lush_aurora_cave")
.setFogColor(150, 30, 68)
.setFogDensity(2.0F)
.setPlantsColor(108, 25, 46)
.setWaterAndFogColor(186, 77, 237)
.setMusic(EndSounds.MUSIC_FOREST)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.setSurface(EndBlocks.CAVE_MOSS));
this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1);
this.addFloorFeature(EndFeatures.CAVE_BUSH, 5);
this.addFloorFeature(EndFeatures.CAVE_GRASS, 40);
this.addFloorFeature(EndFeatures.END_STONE_STALAGMITE_CAVEMOSS, 5);
this.addCeilFeature(EndFeatures.CAVE_BUSH, 1);
this.addCeilFeature(EndFeatures.CAVE_PUMPKIN, 1);
this.addCeilFeature(EndFeatures.RUBINEA, 3);
this.addCeilFeature(EndFeatures.MAGNULA, 1);
this.addCeilFeature(EndFeatures.END_STONE_STALACTITE_CAVEMOSS, 10);
}
@Override
public float getFloorDensity() {
return 0.2F;
}
@Override
public float getCeilDensity() {
return 0.1F;
}
@Override
public BlockState getCeil(BlockPos pos) {
return EndBlocks.CAVE_MOSS.defaultBlockState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP);
return EndBlocks.CAVE_MOSS.defaultBlockState().setValue(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP);
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures;
@ -12,15 +12,27 @@ import ru.betterend.world.biome.EndBiome;
public class AmberLandBiome extends EndBiome {
public AmberLandBiome() {
super(new BiomeDefinition("amber_land").setFogColor(255, 184, 71).setFogDensity(2.0F)
.setPlantsColor(219, 115, 38).setWaterAndFogColor(145, 108, 72).setMusic(EndSounds.MUSIC_FOREST)
.setParticles(EndParticles.AMBER_SPHERE, 0.001F).setSurface(EndBlocks.AMBER_MOSS)
.addFeature(EndFeatures.AMBER_ORE).addFeature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.HELIX_TREE).addFeature(EndFeatures.LANCELEAF)
.addFeature(EndFeatures.GLOW_PILLAR).addFeature(EndFeatures.AMBER_GRASS)
.addFeature(EndFeatures.AMBER_ROOT).addFeature(EndFeatures.BULB_MOSS)
.addFeature(EndFeatures.BULB_MOSS_WOOD).addFeature(EndFeatures.CHARNIA_ORANGE)
.addFeature(EndFeatures.CHARNIA_RED).addStructureFeature(ConfiguredStructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4).addMobSpawn(EndEntities.END_SLIME, 30, 1, 2));
super(new BiomeDefinition("amber_land")
.setFogColor(255, 184, 71)
.setFogDensity(2.0F)
.setPlantsColor(219, 115, 38)
.setWaterAndFogColor(145, 108, 72)
.setMusic(EndSounds.MUSIC_FOREST)
.setParticles(EndParticles.AMBER_SPHERE, 0.001F)
.setSurface(EndBlocks.AMBER_MOSS)
.addFeature(EndFeatures.AMBER_ORE)
.addFeature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.HELIX_TREE)
.addFeature(EndFeatures.LANCELEAF)
.addFeature(EndFeatures.GLOW_PILLAR)
.addFeature(EndFeatures.AMBER_GRASS)
.addFeature(EndFeatures.AMBER_ROOT)
.addFeature(EndFeatures.BULB_MOSS)
.addFeature(EndFeatures.BULB_MOSS_WOOD)
.addFeature(EndFeatures.CHARNIA_ORANGE)
.addFeature(EndFeatures.CHARNIA_RED)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)
.addMobSpawn(EndEntities.END_SLIME, 30, 1, 2));
}
}

View file

@ -10,14 +10,26 @@ import ru.betterend.world.biome.EndBiome;
public class BlossomingSpiresBiome extends EndBiome {
public BlossomingSpiresBiome() {
super(new BiomeDefinition("blossoming_spires").setFogColor(241, 146, 229).setFogDensity(1.7F)
.setPlantsColor(122, 45, 122).setCaves(false).setSurface(EndBlocks.PINK_MOSS)
.setMusic(EndSounds.MUSIC_FOREST).setLoop(EndSounds.AMBIENT_BLOSSOMING_SPIRES)
.addFeature(EndFeatures.SPIRE).addFeature(EndFeatures.FLOATING_SPIRE).addFeature(EndFeatures.TENANEA)
.addFeature(EndFeatures.TENANEA_BUSH).addFeature(EndFeatures.BULB_VINE)
.addFeature(EndFeatures.BUSHY_GRASS).addFeature(EndFeatures.BUSHY_GRASS_WG)
.addFeature(EndFeatures.BLOSSOM_BERRY).addFeature(EndFeatures.TWISTED_MOSS)
.addFeature(EndFeatures.TWISTED_MOSS_WOOD).addFeature(EndFeatures.SILK_MOTH_NEST)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4).addMobSpawn(EndEntities.SILK_MOTH, 5, 1, 2));
super(new BiomeDefinition("blossoming_spires")
.setFogColor(241, 146, 229)
.setFogDensity(1.7F)
.setPlantsColor(122, 45, 122)
.setCaves(false)
.setSurface(EndBlocks.PINK_MOSS)
.setMusic(EndSounds.MUSIC_FOREST)
.setLoop(EndSounds.AMBIENT_BLOSSOMING_SPIRES)
.addFeature(EndFeatures.SPIRE)
.addFeature(EndFeatures.FLOATING_SPIRE)
.addFeature(EndFeatures.TENANEA)
.addFeature(EndFeatures.TENANEA_BUSH)
.addFeature(EndFeatures.BULB_VINE)
.addFeature(EndFeatures.BUSHY_GRASS)
.addFeature(EndFeatures.BUSHY_GRASS_WG)
.addFeature(EndFeatures.BLOSSOM_BERRY)
.addFeature(EndFeatures.TWISTED_MOSS)
.addFeature(EndFeatures.TWISTED_MOSS_WOOD)
.addFeature(EndFeatures.SILK_MOTH_NEST)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)
.addMobSpawn(EndEntities.SILK_MOTH, 5, 1, 2));
}
}

View file

@ -1,10 +1,10 @@
package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.gen.GenerationStep.Feature;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeatures;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import net.minecraft.data.worldgen.Features;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures;
@ -14,18 +14,30 @@ import ru.betterend.world.biome.EndBiome;
public class ChorusForestBiome extends EndBiome {
public ChorusForestBiome() {
super(new BiomeDefinition("chorus_forest").setFogColor(87, 26, 87).setFogDensity(1.5F)
.setPlantsColor(122, 45, 122).setWaterAndFogColor(73, 30, 73).setSurface(EndBlocks.CHORUS_NYLIUM)
.setParticles(ParticleTypes.PORTAL, 0.01F).setLoop(EndSounds.AMBIENT_CHORUS_FOREST)
.setMusic(EndSounds.MUSIC_DARK).addFeature(EndFeatures.VIOLECITE_LAYER)
.addFeature(EndFeatures.END_LAKE_RARE).addFeature(EndFeatures.PYTHADENDRON_TREE)
.addFeature(EndFeatures.PYTHADENDRON_BUSH).addFeature(EndFeatures.PURPLE_POLYPORE)
.addFeature(Feature.VEGETAL_DECORATION, ConfiguredFeatures.CHORUS_PLANT)
.addFeature(Feature.VEGETAL_DECORATION, ConfiguredFeatures.CHORUS_PLANT)
.addFeature(EndFeatures.CHORUS_GRASS).addFeature(EndFeatures.CHORUS_MUSHROOM)
.addFeature(EndFeatures.TAIL_MOSS).addFeature(EndFeatures.TAIL_MOSS_WOOD)
.addFeature(EndFeatures.CHARNIA_PURPLE).addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(ConfiguredStructureFeatures.END_CITY).addMobSpawn(EndEntities.END_SLIME, 5, 1, 2)
super(new BiomeDefinition("chorus_forest")
.setFogColor(87, 26, 87)
.setFogDensity(1.5F)
.setPlantsColor(122, 45, 122)
.setWaterAndFogColor(73, 30, 73)
.setSurface(EndBlocks.CHORUS_NYLIUM)
.setParticles(ParticleTypes.PORTAL, 0.01F)
.setLoop(EndSounds.AMBIENT_CHORUS_FOREST)
.setMusic(EndSounds.MUSIC_DARK)
.addFeature(EndFeatures.VIOLECITE_LAYER)
.addFeature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.PYTHADENDRON_TREE)
.addFeature(EndFeatures.PYTHADENDRON_BUSH)
.addFeature(EndFeatures.PURPLE_POLYPORE)
.addFeature(Decoration.VEGETAL_DECORATION, Features.CHORUS_PLANT)
.addFeature(Decoration.VEGETAL_DECORATION, Features.CHORUS_PLANT)
.addFeature(EndFeatures.CHORUS_GRASS)
.addFeature(EndFeatures.CHORUS_MUSHROOM)
.addFeature(EndFeatures.TAIL_MOSS)
.addFeature(EndFeatures.TAIL_MOSS_WOOD)
.addFeature(EndFeatures.CHARNIA_PURPLE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EndEntities.END_SLIME, 5, 1, 2)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4));
}
}

View file

@ -10,9 +10,13 @@ import ru.betterend.world.biome.EndBiome;
public class CrystalMountainsBiome extends EndBiome {
public CrystalMountainsBiome() {
super(new BiomeDefinition("crystal_mountains").setPlantsColor(255, 133, 211).setSurface(EndBlocks.CRYSTAL_MOSS)
.setMusic(EndSounds.MUSIC_OPENSPACE).addStructureFeature(EndStructures.MOUNTAIN)
.addFeature(EndFeatures.ROUND_CAVE).addFeature(EndFeatures.CRYSTAL_GRASS)
super(new BiomeDefinition("crystal_mountains")
.setPlantsColor(255, 133, 211)
.setSurface(EndBlocks.CRYSTAL_MOSS)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.addStructureFeature(EndStructures.MOUNTAIN)
.addFeature(EndFeatures.ROUND_CAVE)
.addFeature(EndFeatures.CRYSTAL_GRASS)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -10,14 +10,24 @@ import ru.betterend.world.biome.EndBiome;
public class DragonGraveyardsBiome extends EndBiome {
public DragonGraveyardsBiome() {
super(new BiomeDefinition("dragon_graveyards").setGenChance(0.1F).setFogColor(244, 46, 79).setFogDensity(1.3F)
.setParticles(EndParticles.FIREFLY, 0.0007F).setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_GLOWING_GRASSLANDS).setSurface(EndBlocks.SANGNUM)
.setWaterAndFogColor(203, 59, 167).setPlantsColor(244, 46, 79)
.addFeature(EndFeatures.OBSIDIAN_PILLAR_BASEMENT).addFeature(EndFeatures.FALLEN_PILLAR)
.addFeature(EndFeatures.OBSIDIAN_BOULDER).addFeature(EndFeatures.GIGANTIC_AMARANITA)
.addFeature(EndFeatures.LARGE_AMARANITA).addFeature(EndFeatures.SMALL_AMARANITA)
.addFeature(EndFeatures.GLOBULAGUS).addFeature(EndFeatures.CLAWFERN)
super(new BiomeDefinition("dragon_graveyards")
.setGenChance(0.1F)
.setFogColor(244, 46, 79)
.setFogDensity(1.3F)
.setParticles(EndParticles.FIREFLY, 0.0007F)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_GLOWING_GRASSLANDS)
.setSurface(EndBlocks.SANGNUM)
.setWaterAndFogColor(203, 59, 167)
.setPlantsColor(244, 46, 79)
.addFeature(EndFeatures.OBSIDIAN_PILLAR_BASEMENT)
.addFeature(EndFeatures.FALLEN_PILLAR)
.addFeature(EndFeatures.OBSIDIAN_BOULDER)
.addFeature(EndFeatures.GIGANTIC_AMARANITA)
.addFeature(EndFeatures.LARGE_AMARANITA)
.addFeature(EndFeatures.SMALL_AMARANITA)
.addFeature(EndFeatures.GLOBULAGUS)
.addFeature(EndFeatures.CLAWFERN)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds;
@ -10,10 +10,18 @@ import ru.betterend.world.biome.EndBiome;
public class DryShrublandBiome extends EndBiome {
public DryShrublandBiome() {
super(new BiomeDefinition("dry_shrubland").setFogColor(132, 35, 13).setFogDensity(1.2F)
.setWaterAndFogColor(113, 88, 53).setPlantsColor(237, 122, 66).setSurface(EndBlocks.RUTISCUS)
.setMusic(EndSounds.MUSIC_OPENSPACE).addFeature(EndFeatures.ORANGO).addFeature(EndFeatures.AERIDIUM)
.addFeature(EndFeatures.LUTEBUS).addFeature(EndFeatures.LAMELLARIUM)
.addStructureFeature(ConfiguredStructureFeatures.END_CITY).addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
super(new BiomeDefinition("dry_shrubland")
.setFogColor(132, 35, 13)
.setFogDensity(1.2F)
.setWaterAndFogColor(113, 88, 53)
.setPlantsColor(237, 122, 66)
.setSurface(EndBlocks.RUTISCUS)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.ORANGO)
.addFeature(EndFeatures.AERIDIUM)
.addFeature(EndFeatures.LUTEBUS)
.addFeature(EndFeatures.LAMELLARIUM)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -1,8 +1,8 @@
package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
@ -10,10 +10,15 @@ import ru.betterend.world.biome.EndBiome;
public class DustWastelandsBiome extends EndBiome {
public DustWastelandsBiome() {
super(new BiomeDefinition("dust_wastelands").setFogColor(226, 239, 168).setFogDensity(2)
.setWaterAndFogColor(192, 180, 131).setSurface(EndBlocks.ENDSTONE_DUST)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F).setLoop(EndSounds.AMBIENT_DUST_WASTELANDS)
.setMusic(EndSounds.MUSIC_OPENSPACE).addStructureFeature(ConfiguredStructureFeatures.END_CITY)
super(new BiomeDefinition("dust_wastelands")
.setFogColor(226, 239, 168)
.setFogDensity(2)
.setWaterAndFogColor(192, 180, 131)
.setSurface(EndBlocks.ENDSTONE_DUST)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F)
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures;
@ -13,20 +13,35 @@ import ru.betterend.world.biome.EndBiome;
public class FoggyMushroomlandBiome extends EndBiome {
public FoggyMushroomlandBiome() {
super(new BiomeDefinition("foggy_mushroomland").setPlantsColor(73, 210, 209).setFogColor(41, 122, 173)
.setFogDensity(3).setWaterAndFogColor(119, 227, 250)
super(new BiomeDefinition("foggy_mushroomland")
.setPlantsColor(73, 210, 209)
.setFogColor(41, 122, 173)
.setFogDensity(3)
.setWaterAndFogColor(119, 227, 250)
.setSurface(EndBlocks.END_MOSS, EndBlocks.END_MYCELIUM)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F).setLoop(EndSounds.AMBIENT_FOGGY_MUSHROOMLAND)
.setMusic(EndSounds.MUSIC_FOREST).addStructureFeature(EndStructures.GIANT_MOSSY_GLOWSHROOM)
.addFeature(EndFeatures.END_LAKE).addFeature(EndFeatures.MOSSY_GLOWSHROOM)
.addFeature(EndFeatures.BLUE_VINE).addFeature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.CREEPING_MOSS).addFeature(EndFeatures.DENSE_VINE)
.addFeature(EndFeatures.PEARLBERRY).addFeature(EndFeatures.CYAN_MOSS)
.addFeature(EndFeatures.CYAN_MOSS_WOOD).addFeature(EndFeatures.END_LILY)
.addFeature(EndFeatures.BUBBLE_CORAL).addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE).addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(ConfiguredStructureFeatures.END_CITY).addMobSpawn(EndEntities.DRAGONFLY, 80, 2, 5)
.addMobSpawn(EndEntities.END_FISH, 20, 2, 5).addMobSpawn(EndEntities.CUBOZOA, 10, 3, 8)
.addMobSpawn(EndEntities.END_SLIME, 10, 1, 2).addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.setLoop(EndSounds.AMBIENT_FOGGY_MUSHROOMLAND)
.setMusic(EndSounds.MUSIC_FOREST)
.addStructureFeature(EndStructures.GIANT_MOSSY_GLOWSHROOM)
.addFeature(EndFeatures.END_LAKE)
.addFeature(EndFeatures.MOSSY_GLOWSHROOM)
.addFeature(EndFeatures.BLUE_VINE)
.addFeature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.CREEPING_MOSS)
.addFeature(EndFeatures.DENSE_VINE)
.addFeature(EndFeatures.PEARLBERRY)
.addFeature(EndFeatures.CYAN_MOSS)
.addFeature(EndFeatures.CYAN_MOSS_WOOD)
.addFeature(EndFeatures.END_LILY)
.addFeature(EndFeatures.BUBBLE_CORAL)
.addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EndEntities.DRAGONFLY, 80, 2, 5)
.addMobSpawn(EndEntities.END_FISH, 20, 2, 5)
.addMobSpawn(EndEntities.CUBOZOA, 10, 3, 8)
.addMobSpawn(EndEntities.END_SLIME, 10, 1, 2)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles;
@ -11,16 +11,29 @@ import ru.betterend.world.biome.EndBiome;
public class GlowingGrasslandsBiome extends EndBiome {
public GlowingGrasslandsBiome() {
super(new BiomeDefinition("glowing_grasslands").setFogColor(99, 228, 247).setFogDensity(1.3F)
.setParticles(EndParticles.FIREFLY, 0.001F).setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_GLOWING_GRASSLANDS).setSurface(EndBlocks.END_MOSS)
.setWaterAndFogColor(92, 250, 230).setPlantsColor(73, 210, 209).addFeature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.LUMECORN).addFeature(EndFeatures.BLOOMING_COOKSONIA)
.addFeature(EndFeatures.SALTEAGO).addFeature(EndFeatures.VAIOLUSH_FERN).addFeature(EndFeatures.FRACTURN)
.addFeature(EndFeatures.UMBRELLA_MOSS_RARE).addFeature(EndFeatures.CREEPING_MOSS_RARE)
.addFeature(EndFeatures.TWISTED_UMBRELLA_MOSS_RARE).addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_GREEN).addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE).addStructureFeature(ConfiguredStructureFeatures.END_CITY)
super(new BiomeDefinition("glowing_grasslands")
.setFogColor(99, 228, 247)
.setFogDensity(1.3F)
.setParticles(EndParticles.FIREFLY, 0.001F)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_GLOWING_GRASSLANDS)
.setSurface(EndBlocks.END_MOSS)
.setWaterAndFogColor(92, 250, 230)
.setPlantsColor(73, 210, 209)
.addFeature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.LUMECORN)
.addFeature(EndFeatures.BLOOMING_COOKSONIA)
.addFeature(EndFeatures.SALTEAGO)
.addFeature(EndFeatures.VAIOLUSH_FERN)
.addFeature(EndFeatures.FRACTURN)
.addFeature(EndFeatures.UMBRELLA_MOSS_RARE)
.addFeature(EndFeatures.CREEPING_MOSS_RARE)
.addFeature(EndFeatures.TWISTED_UMBRELLA_MOSS_RARE)
.addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_GREEN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles;
@ -11,15 +11,29 @@ import ru.betterend.world.biome.EndBiome;
public class LanternWoodsBiome extends EndBiome {
public LanternWoodsBiome() {
super(new BiomeDefinition("lantern_woods").setFogColor(189, 82, 70).setFogDensity(1.1F)
.setWaterAndFogColor(171, 234, 226).setPlantsColor(254, 85, 57).setSurface(EndBlocks.RUTISCUS)
.setMusic(EndSounds.MUSIC_FOREST).setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.addFeature(EndFeatures.END_LAKE_NORMAL).addFeature(EndFeatures.FLAMAEA)
.addFeature(EndFeatures.LUCERNIA).addFeature(EndFeatures.LUCERNIA_BUSH).addFeature(EndFeatures.FILALUX)
.addFeature(EndFeatures.AERIDIUM).addFeature(EndFeatures.LAMELLARIUM)
.addFeature(EndFeatures.BOLUX_MUSHROOM).addFeature(EndFeatures.AURANT_POLYPORE)
.addFeature(EndFeatures.POND_ANEMONE).addFeature(EndFeatures.CHARNIA_ORANGE)
.addFeature(EndFeatures.CHARNIA_RED).addFeature(EndFeatures.RUSCUS).addFeature(EndFeatures.RUSCUS_WOOD)
.addStructureFeature(ConfiguredStructureFeatures.END_CITY).addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
super(new BiomeDefinition("lantern_woods")
.setFogColor(189, 82, 70)
.setFogDensity(1.1F)
.setWaterAndFogColor(171, 234, 226)
.setPlantsColor(254, 85, 57)
.setSurface(EndBlocks.RUTISCUS)
.setMusic(EndSounds.MUSIC_FOREST)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.addFeature(EndFeatures.END_LAKE_NORMAL)
.addFeature(EndFeatures.FLAMAEA)
.addFeature(EndFeatures.LUCERNIA)
.addFeature(EndFeatures.LUCERNIA_BUSH)
.addFeature(EndFeatures.FILALUX)
.addFeature(EndFeatures.AERIDIUM)
.addFeature(EndFeatures.LAMELLARIUM)
.addFeature(EndFeatures.BOLUX_MUSHROOM)
.addFeature(EndFeatures.AURANT_POLYPORE)
.addFeature(EndFeatures.POND_ANEMONE)
.addFeature(EndFeatures.CHARNIA_ORANGE)
.addFeature(EndFeatures.CHARNIA_RED)
.addFeature(EndFeatures.RUSCUS)
.addFeature(EndFeatures.RUSCUS_WOOD)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -11,17 +11,31 @@ import ru.betterend.world.biome.EndBiome;
public class MegalakeBiome extends EndBiome {
public MegalakeBiome() {
super(new BiomeDefinition("megalake").setPlantsColor(73, 210, 209).setFogColor(178, 209, 248)
.setWaterAndFogColor(96, 163, 255).setFogDensity(1.75F).setMusic(EndSounds.MUSIC_WATER)
.setLoop(EndSounds.AMBIENT_MEGALAKE).setSurface(EndBlocks.END_MOSS, EndBlocks.ENDSTONE_DUST)
.setDepth(0F).addStructureFeature(EndStructures.MEGALAKE).addFeature(EndFeatures.END_LOTUS)
.addFeature(EndFeatures.END_LOTUS_LEAF).addFeature(EndFeatures.BUBBLE_CORAL_RARE)
.addFeature(EndFeatures.END_LILY_RARE).addFeature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.CREEPING_MOSS).addFeature(EndFeatures.PEARLBERRY)
.addFeature(EndFeatures.CHARNIA_CYAN).addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE).addFeature(EndFeatures.MENGER_SPONGE)
.addMobSpawn(EndEntities.DRAGONFLY, 50, 1, 3).addMobSpawn(EndEntities.END_FISH, 50, 3, 8)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8).addMobSpawn(EndEntities.END_SLIME, 5, 1, 2)
super(new BiomeDefinition("megalake")
.setPlantsColor(73, 210, 209)
.setFogColor(178, 209, 248)
.setWaterAndFogColor(96, 163, 255)
.setFogDensity(1.75F)
.setMusic(EndSounds.MUSIC_WATER)
.setLoop(EndSounds.AMBIENT_MEGALAKE)
.setSurface(EndBlocks.END_MOSS, EndBlocks.ENDSTONE_DUST)
.setDepth(0F)
.addStructureFeature(EndStructures.MEGALAKE)
.addFeature(EndFeatures.END_LOTUS)
.addFeature(EndFeatures.END_LOTUS_LEAF)
.addFeature(EndFeatures.BUBBLE_CORAL_RARE)
.addFeature(EndFeatures.END_LILY_RARE)
.addFeature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.CREEPING_MOSS)
.addFeature(EndFeatures.PEARLBERRY)
.addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addFeature(EndFeatures.MENGER_SPONGE)
.addMobSpawn(EndEntities.DRAGONFLY, 50, 1, 3)
.addMobSpawn(EndEntities.END_FISH, 50, 3, 8)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8)
.addMobSpawn(EndEntities.END_SLIME, 5, 1, 2)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
}
}

View file

@ -12,18 +12,33 @@ import ru.betterend.world.biome.EndBiome;
public class MegalakeGroveBiome extends EndBiome {
public MegalakeGroveBiome() {
super(new BiomeDefinition("megalake_grove").setPlantsColor(73, 210, 209).setFogColor(178, 209, 248)
.setWaterAndFogColor(96, 163, 255).setFogDensity(2.0F).setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.setMusic(EndSounds.MUSIC_WATER).setLoop(EndSounds.AMBIENT_MEGALAKE_GROVE)
.setSurface(EndBlocks.END_MOSS).setDepth(0F).addStructureFeature(EndStructures.MEGALAKE_SMALL)
.addFeature(EndFeatures.LACUGROVE).addFeature(EndFeatures.END_LOTUS)
.addFeature(EndFeatures.END_LOTUS_LEAF).addFeature(EndFeatures.BUBBLE_CORAL_RARE)
.addFeature(EndFeatures.END_LILY_RARE).addFeature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.PEARLBERRY).addFeature(EndFeatures.CREEPING_MOSS)
.addFeature(EndFeatures.CHARNIA_CYAN).addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE).addFeature(EndFeatures.MENGER_SPONGE)
.addMobSpawn(EndEntities.DRAGONFLY, 20, 1, 3).addMobSpawn(EndEntities.END_FISH, 20, 3, 8)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8).addMobSpawn(EndEntities.END_SLIME, 5, 1, 2)
super(new BiomeDefinition("megalake_grove")
.setPlantsColor(73, 210, 209)
.setFogColor(178, 209, 248)
.setWaterAndFogColor(96, 163, 255)
.setFogDensity(2.0F)
.setParticles(EndParticles.GLOWING_SPHERE, 0.001F)
.setMusic(EndSounds.MUSIC_WATER)
.setLoop(EndSounds.AMBIENT_MEGALAKE_GROVE)
.setSurface(EndBlocks.END_MOSS)
.setDepth(0F)
.addStructureFeature(EndStructures.MEGALAKE_SMALL)
.addFeature(EndFeatures.LACUGROVE)
.addFeature(EndFeatures.END_LOTUS)
.addFeature(EndFeatures.END_LOTUS_LEAF)
.addFeature(EndFeatures.BUBBLE_CORAL_RARE)
.addFeature(EndFeatures.END_LILY_RARE)
.addFeature(EndFeatures.UMBRELLA_MOSS)
.addFeature(EndFeatures.PEARLBERRY)
.addFeature(EndFeatures.CREEPING_MOSS)
.addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addFeature(EndFeatures.MENGER_SPONGE)
.addMobSpawn(EndEntities.DRAGONFLY, 20, 1, 3)
.addMobSpawn(EndEntities.END_FISH, 20, 3, 8)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8)
.addMobSpawn(EndEntities.END_SLIME, 5, 1, 2)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
}
}

View file

@ -1,8 +1,8 @@
package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds;
@ -11,10 +11,17 @@ import ru.betterend.world.biome.EndBiome;
public class NeonOasisBiome extends EndBiome {
public NeonOasisBiome() {
super(new BiomeDefinition("neon_oasis").setGenChance(0.5F).setFogColor(226, 239, 168).setFogDensity(2)
.setWaterAndFogColor(192, 180, 131).setSurface(EndBlocks.ENDSTONE_DUST, EndBlocks.END_MOSS)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F).setLoop(EndSounds.AMBIENT_DUST_WASTELANDS)
.setMusic(EndSounds.MUSIC_OPENSPACE).addFeature(EndFeatures.NEON_CACTUS)
.addStructureFeature(ConfiguredStructureFeatures.END_CITY).addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
super(new BiomeDefinition("neon_oasis")
.setGenChance(0.5F)
.setFogColor(226, 239, 168)
.setFogDensity(2)
.setWaterAndFogColor(192, 180, 131)
.setSurface(EndBlocks.ENDSTONE_DUST, EndBlocks.END_MOSS)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F)
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.addFeature(EndFeatures.NEON_CACTUS)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.entity.EntityType;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures;
@ -10,10 +10,16 @@ import ru.betterend.world.biome.EndBiome;
public class PaintedMountainsBiome extends EndBiome {
public PaintedMountainsBiome() {
super(new BiomeDefinition("painted_mountains").setFogColor(226, 239, 168).setFogDensity(2).setCaves(false)
.setWaterAndFogColor(192, 180, 131).setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS).setSurface(EndBlocks.ENDSTONE_DUST)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F).addStructureFeature(EndStructures.PAINTED_MOUNTAIN)
super(new BiomeDefinition("painted_mountains")
.setFogColor(226, 239, 168)
.setFogDensity(2)
.setCaves(false)
.setWaterAndFogColor(192, 180, 131)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_DUST_WASTELANDS)
.setSurface(EndBlocks.ENDSTONE_DUST)
.setParticles(ParticleTypes.WHITE_ASH, 0.01F)
.addStructureFeature(EndStructures.PAINTED_MOUNTAIN)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}

View file

@ -1,8 +1,8 @@
package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures;
@ -12,18 +12,32 @@ import ru.betterend.world.biome.EndBiome;
public class ShadowForestBiome extends EndBiome {
public ShadowForestBiome() {
super(new BiomeDefinition("shadow_forest").setFogColor(0, 0, 0).setFogDensity(2.5F).setPlantsColor(45, 45, 45)
.setWaterAndFogColor(42, 45, 80).setSurface(EndBlocks.SHADOW_GRASS)
.setParticles(ParticleTypes.MYCELIUM, 0.01F).setLoop(EndSounds.AMBIENT_CHORUS_FOREST)
.setMusic(EndSounds.MUSIC_DARK).addFeature(EndFeatures.VIOLECITE_LAYER)
.addFeature(EndFeatures.END_LAKE_RARE).addFeature(EndFeatures.DRAGON_TREE)
.addFeature(EndFeatures.DRAGON_TREE_BUSH).addFeature(EndFeatures.SHADOW_PLANT)
.addFeature(EndFeatures.MURKWEED).addFeature(EndFeatures.NEEDLEGRASS)
.addFeature(EndFeatures.SHADOW_BERRY).addFeature(EndFeatures.TWISTED_VINE)
.addFeature(EndFeatures.PURPLE_POLYPORE).addFeature(EndFeatures.TAIL_MOSS)
.addFeature(EndFeatures.TAIL_MOSS_WOOD).addFeature(EndFeatures.CHARNIA_PURPLE)
.addFeature(EndFeatures.CHARNIA_RED_RARE).addStructureFeature(ConfiguredStructureFeatures.END_CITY)
.addMobSpawn(EndEntities.SHADOW_WALKER, 80, 2, 4).addMobSpawn(EntityType.ENDERMAN, 40, 1, 4)
super(new BiomeDefinition("shadow_forest")
.setFogColor(0, 0, 0)
.setFogDensity(2.5F)
.setPlantsColor(45, 45, 45)
.setWaterAndFogColor(42, 45, 80)
.setSurface(EndBlocks.SHADOW_GRASS)
.setParticles(ParticleTypes.MYCELIUM, 0.01F)
.setLoop(EndSounds.AMBIENT_CHORUS_FOREST)
.setMusic(EndSounds.MUSIC_DARK)
.addFeature(EndFeatures.VIOLECITE_LAYER)
.addFeature(EndFeatures.END_LAKE_RARE)
.addFeature(EndFeatures.DRAGON_TREE)
.addFeature(EndFeatures.DRAGON_TREE_BUSH)
.addFeature(EndFeatures.SHADOW_PLANT)
.addFeature(EndFeatures.MURKWEED)
.addFeature(EndFeatures.NEEDLEGRASS)
.addFeature(EndFeatures.SHADOW_BERRY)
.addFeature(EndFeatures.TWISTED_VINE)
.addFeature(EndFeatures.PURPLE_POLYPORE)
.addFeature(EndFeatures.TAIL_MOSS)
.addFeature(EndFeatures.TAIL_MOSS_WOOD)
.addFeature(EndFeatures.CHARNIA_PURPLE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EndEntities.SHADOW_WALKER, 80, 2, 4)
.addMobSpawn(EntityType.ENDERMAN, 40, 1, 4)
.addMobSpawn(EntityType.PHANTOM, 1, 1, 2));
}
}

View file

@ -11,15 +11,27 @@ import ru.betterend.world.surface.SurfaceBuilders;
public class SulphurSpringsBiome extends EndBiome {
public SulphurSpringsBiome() {
super(new BiomeDefinition("sulphur_springs").setSurface(SurfaceBuilders.SULPHURIC_SURFACE)
.setMusic(EndSounds.MUSIC_OPENSPACE).setLoop(EndSounds.AMBIENT_SULPHUR_SPRINGS)
.setWaterColor(25, 90, 157).setWaterFogColor(30, 65, 61).setFogColor(207, 194, 62).setFogDensity(1.5F)
.setCaves(false).setDepth(0F).setParticles(EndParticles.SULPHUR_PARTICLE, 0.001F)
.addFeature(EndFeatures.GEYSER).addFeature(EndFeatures.SURFACE_VENT)
.addFeature(EndFeatures.SULPHURIC_LAKE).addFeature(EndFeatures.SULPHURIC_CAVE)
.addFeature(EndFeatures.HYDRALUX).addFeature(EndFeatures.CHARNIA_GREEN)
.addFeature(EndFeatures.CHARNIA_ORANGE).addFeature(EndFeatures.CHARNIA_RED_RARE)
.addMobSpawn(EndEntities.END_FISH, 50, 3, 8).addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8)
super(new BiomeDefinition("sulphur_springs")
.setSurface(SurfaceBuilders.SULPHURIC_SURFACE)
.setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_SULPHUR_SPRINGS)
.setWaterColor(25, 90, 157)
.setWaterFogColor(30, 65, 61)
.setFogColor(207, 194, 62)
.setFogDensity(1.5F)
.setCaves(false)
.setDepth(0F)
.setParticles(EndParticles.SULPHUR_PARTICLE, 0.001F)
.addFeature(EndFeatures.GEYSER)
.addFeature(EndFeatures.SURFACE_VENT)
.addFeature(EndFeatures.SULPHURIC_LAKE)
.addFeature(EndFeatures.SULPHURIC_CAVE)
.addFeature(EndFeatures.HYDRALUX)
.addFeature(EndFeatures.CHARNIA_GREEN)
.addFeature(EndFeatures.CHARNIA_ORANGE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addMobSpawn(EndEntities.END_FISH, 50, 3, 8)
.addMobSpawn(EndEntities.CUBOZOA, 50, 3, 8)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4));
}
}

View file

@ -1,7 +1,7 @@
package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles;
@ -11,18 +11,33 @@ import ru.betterend.world.biome.EndBiome;
public class UmbrellaJungleBiome extends EndBiome {
public UmbrellaJungleBiome() {
super(new BiomeDefinition("umbrella_jungle").setFogColor(87, 223, 221).setWaterAndFogColor(119, 198, 253)
.setFoliageColor(27, 183, 194).setFogDensity(2.3F).setParticles(EndParticles.JUNGLE_SPORE, 0.001F)
.setMusic(EndSounds.MUSIC_FOREST).setLoop(EndSounds.AMBIENT_UMBRELLA_JUNGLE)
.setSurface(EndBlocks.JUNGLE_MOSS).addFeature(EndFeatures.END_LAKE)
.addFeature(EndFeatures.UMBRELLA_TREE).addFeature(EndFeatures.JELLYSHROOM)
.addFeature(EndFeatures.TWISTED_UMBRELLA_MOSS).addFeature(EndFeatures.SMALL_JELLYSHROOM_FLOOR)
.addFeature(EndFeatures.JUNGLE_GRASS).addFeature(EndFeatures.CYAN_MOSS)
.addFeature(EndFeatures.CYAN_MOSS_WOOD).addFeature(EndFeatures.JUNGLE_FERN_WOOD)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_WALL).addFeature(EndFeatures.SMALL_JELLYSHROOM_WOOD)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_CEIL).addFeature(EndFeatures.JUNGLE_VINE)
.addFeature(EndFeatures.CHARNIA_CYAN).addFeature(EndFeatures.CHARNIA_GREEN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE).addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(ConfiguredStructureFeatures.END_CITY).addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
super(new BiomeDefinition("umbrella_jungle")
.setFogColor(87, 223, 221)
.setWaterAndFogColor(119, 198, 253)
.setFoliageColor(27, 183, 194)
.setFogDensity(2.3F)
.setParticles(EndParticles.JUNGLE_SPORE, 0.001F)
.setMusic(EndSounds.MUSIC_FOREST)
.setLoop(EndSounds.AMBIENT_UMBRELLA_JUNGLE)
.setSurface(EndBlocks.JUNGLE_MOSS)
.addFeature(EndFeatures.END_LAKE)
.addFeature(EndFeatures.UMBRELLA_TREE)
.addFeature(EndFeatures.JELLYSHROOM)
.addFeature(EndFeatures.TWISTED_UMBRELLA_MOSS)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_FLOOR)
.addFeature(EndFeatures.JUNGLE_GRASS)
.addFeature(EndFeatures.CYAN_MOSS)
.addFeature(EndFeatures.CYAN_MOSS_WOOD)
.addFeature(EndFeatures.JUNGLE_FERN_WOOD)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_WALL)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_WOOD)
.addFeature(EndFeatures.SMALL_JELLYSHROOM_CEIL)
.addFeature(EndFeatures.JUNGLE_VINE)
.addFeature(EndFeatures.CHARNIA_CYAN)
.addFeature(EndFeatures.CHARNIA_GREEN)
.addFeature(EndFeatures.CHARNIA_LIGHT_BLUE)
.addFeature(EndFeatures.CHARNIA_RED_RARE)
.addStructureFeature(StructureFeatures.END_CITY)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
}
}