diff --git a/src/main/java/ru/betterend/integration/ModIntegration.java b/src/main/java/ru/betterend/integration/ModIntegration.java index 59fe7684..4eafb8b9 100644 --- a/src/main/java/ru/betterend/integration/ModIntegration.java +++ b/src/main/java/ru/betterend/integration/ModIntegration.java @@ -56,4 +56,8 @@ public abstract class ModIntegration { public ConfiguredFeature getConfiguredFeature(String name) { return BuiltinRegistries.CONFIGURED_FEATURE.get(getID(name)); } + + public Biome getBiome(String name) { + return BuiltinRegistries.BIOME.get(getID(name)); + } } diff --git a/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java b/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java index fb6d9004..dc31dd78 100644 --- a/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java +++ b/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java @@ -1,6 +1,12 @@ package ru.betterend.integration.byg; +import java.util.List; + +import net.minecraft.entity.SpawnGroup; import net.minecraft.particle.ParticleTypes; +import net.minecraft.sound.SoundEvent; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.SpawnSettings.SpawnEntry; import net.minecraft.world.gen.GenerationStep.Feature; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndFeatures; @@ -9,12 +15,27 @@ import ru.betterend.world.biome.EndBiome; public class OldBulbisGardens extends EndBiome { public OldBulbisGardens() { - super(new BiomeDefinition("old_bulbis_gardens") + super(makeDef()); + } + + private static BiomeDefinition makeDef() { + Biome biome = Integrations.BYG.getBiome("bulbis_gardens"); + SoundEvent loop = biome.getLoopSound().get(); + SoundEvent music = biome.getMusic().get().getSound(); + SoundEvent additions = biome.getAdditionsSound().get().getSound(); + SoundEvent mood = biome.getMoodSound().get().getSound(); + + BiomeDefinition def = new BiomeDefinition("old_bulbis_gardens") .setFogColor(132, 0, 202) .setFogDensity(2F) .setWaterAndFogColor(40, 0, 56) + .setFoliageColor(122, 17, 155) .setParticles(ParticleTypes.REVERSE_PORTAL, 0.002F) .setSurface(Integrations.BYG.getBlock("ivis_phylium")) + .setLoop(loop) + .setMusic(music) + .setAdditions(additions) + .setMood(mood) .addFeature(EndFeatures.END_LAKE_RARE) .addFeature(BYGFeatures.OLD_BULBIS_TREE) .addFeature(Feature.VEGETAL_DECORATION, BYGFeatures.BULBIS_TREES) @@ -25,6 +46,15 @@ public class OldBulbisGardens extends EndBiome { .addFeature(BYGFeatures.IVIS_VINE) .addFeature(BYGFeatures.IVIS_SPROUT) .addFeature(BYGFeatures.BULBIS_ODDITY) - .addFeature(BYGFeatures.PURPLE_BULBIS_ODDITY)); + .addFeature(BYGFeatures.PURPLE_BULBIS_ODDITY); + + for (SpawnGroup group: SpawnGroup.values()) { + List list = biome.getSpawnSettings().getSpawnEntry(group); + list.forEach((entry) -> { + def.addMobSpawn(entry); + }); + } + + return def; } } diff --git a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java index 23bc08dc..03980cea 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java @@ -23,6 +23,7 @@ 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; @@ -47,6 +48,7 @@ public class BiomeDefinition { private final List features = Lists.newArrayList(); private final List carvers = Lists.newArrayList(); private final List mobs = Lists.newArrayList(); + private final List spawns = Lists.newArrayList(); private BiomeParticleConfig particleConfig; private BiomeAdditionsSound additions; @@ -116,6 +118,11 @@ public class BiomeDefinition { } return this; } + + public BiomeDefinition addMobSpawn(SpawnEntry entry) { + spawns.add(entry); + return this; + } public BiomeDefinition addStructureFeature(ConfiguredStructureFeature feature) { structures.add(feature); @@ -221,6 +228,10 @@ public class BiomeDefinition { mobs.forEach((spawn) -> { spawnSettings.spawn(spawn.type.getSpawnGroup(), new SpawnSettings.SpawnEntry(spawn.type, spawn.weight, spawn.minGroupSize, spawn.maxGroupSize)); }); + + spawns.forEach((entry) -> { + spawnSettings.spawn(entry.type.getSpawnGroup(), entry); + }); generationSettings.surfaceBuilder(surface == null ? ConfiguredSurfaceBuilders.END : surface); structures.forEach((structure) -> generationSettings.structureFeature(structure));