From 161c5ef1f317793385caf28f91e53bc4a6ddd46b Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 1 Dec 2021 07:57:21 +0100 Subject: [PATCH 1/3] Make sure Nether Cities are placed --- src/main/java/ru/bclib/api/BiomeAPI.java | 3 ++- src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/bclib/api/BiomeAPI.java b/src/main/java/ru/bclib/api/BiomeAPI.java index 9b100b17..3e032f24 100644 --- a/src/main/java/ru/bclib/api/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/BiomeAPI.java @@ -497,7 +497,8 @@ public class BiomeAPI { BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE.getResourceKey(structure) .ifPresent((key)-> BiomeModifications.addStructure( - (ctx)->ctx.getBiomeKey().equals(BuiltinRegistries.BIOME.getKey(biome)), + (ctx)-> ctx.getBiomeKey().location() + .equals(BuiltinRegistries.BIOME.getKey(biome)), key )); // BiomeGenerationSettingsAccessor accessor = (BiomeGenerationSettingsAccessor) biome.getGenerationSettings(); diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java b/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java index ac8731ae..ccb062ed 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java @@ -27,6 +27,7 @@ import net.minecraft.world.level.levelgen.carver.CarverConfiguration; import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver; import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import ru.bclib.api.BiomeAPI; import ru.bclib.config.IdConfig; import ru.bclib.config.PathConfig; import ru.bclib.util.ColorUtil; @@ -348,7 +349,7 @@ public class BCLBiomeDef { if (particleConfig != null) effects.ambientParticle(particleConfig); effects.backgroundMusic(music != null ? new Music(music, 600, 2400, true) : Musics.END); - return new Biome.BiomeBuilder() + Biome b = new Biome.BiomeBuilder() .precipitation(precipitation) .biomeCategory(category) //.depth(depth) @@ -359,6 +360,9 @@ public class BCLBiomeDef { .mobSpawnSettings(spawnSettings.build()) .generationSettings(generationSettings.build()) .build(); + + structures.forEach((structure) -> BiomeAPI.addBiomeStructure(b, structure)); + return b; } private static final class SpawnInfo { From e7b66af02e235f96c9f51a1bfc945deb8862eb6d Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 1 Dec 2021 08:31:22 +0100 Subject: [PATCH 2/3] Added missing TODOs --- src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java b/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java index ccb062ed..e4f517be 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java @@ -147,12 +147,12 @@ public class BCLBiomeDef { } public BCLBiomeDef setSurface(Block block) { - + //TODO: 1.18 add back surface Code return this; } public BCLBiomeDef setSurface(Block block1, Block block2) { - + //TODO: 1.18 add back surface Code return this; } From 1365339c1ef7eebbab67c9ae719dc5a8cd1e7247 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 1 Dec 2021 08:53:14 +0100 Subject: [PATCH 3/3] Allow usage of BCLStructureFeature to add Structures --- src/main/java/ru/bclib/api/BiomeAPI.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/bclib/api/BiomeAPI.java b/src/main/java/ru/bclib/api/BiomeAPI.java index 3e032f24..5f255b74 100644 --- a/src/main/java/ru/bclib/api/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/BiomeAPI.java @@ -497,14 +497,17 @@ public class BiomeAPI { BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE.getResourceKey(structure) .ifPresent((key)-> BiomeModifications.addStructure( - (ctx)-> ctx.getBiomeKey().location() - .equals(BuiltinRegistries.BIOME.getKey(biome)), + (ctx)-> ctx.getBiomeKey().location().equals(BuiltinRegistries.BIOME.getKey(biome)), key )); -// BiomeGenerationSettingsAccessor accessor = (BiomeGenerationSettingsAccessor) biome.getGenerationSettings(); -// List>> biomeStructures = getMutableList(accessor.fabric_getStructureFeatures()); -// biomeStructures.add(() -> structure); -// accessor.fabric_setStructureFeatures(biomeStructures); + } + /** + * Adds new structure feature to existing biome. + * @param biome {@link Biome} to add structure feature in. + * @param structure {@link BCLStructureFeature} to add. + */ + public static void addBiomeStructure(Biome biome, BCLStructureFeature structure) { + addBiomeStructure(biome, structure.getFeatureConfigured()); } /**