diff --git a/core/src/main/java/com/volmit/iris/engine/framework/Engine.java b/core/src/main/java/com/volmit/iris/engine/framework/Engine.java index 4e4c9c41c..70e928b95 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/core/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -889,7 +889,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat default void gotoBiome(IrisBiome biome, Player player, boolean teleport) { Set regionKeys = getDimension() .getAllRegions(this).stream() - .filter((i) -> i.getAllBiomeIds().contains(biome.getLoadKey())) + .filter((i) -> i.getAllBiomeIdsIncludingChildren(this).contains(biome.getLoadKey())) .map(IrisRegistrant::getLoadKey) .collect(Collectors.toSet()); Locator lb = Locator.surfaceBiome(biome.getLoadKey()); @@ -929,7 +929,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat .map(IrisRegistrant::getLoadKey) .collect(Collectors.toSet()); Set regionKeys = getDimension().getAllRegions(this).stream() - .filter((i) -> i.getAllBiomeIds().stream().anyMatch(biomeKeys::contains) + .filter((i) -> i.getAllBiomeIdsIncludingChildren(this).stream().anyMatch(biomeKeys::contains) || i.getJigsawStructures() .stream() .anyMatch((j) -> j.getStructure().equals(s.getLoadKey()))) @@ -961,7 +961,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat .map(IrisRegistrant::getLoadKey) .collect(Collectors.toSet()); Set regionKeys = getDimension().getAllRegions(this).stream() - .filter((i) -> i.getAllBiomeIds().stream().anyMatch(biomeKeys::contains) + .filter((i) -> i.getAllBiomeIdsIncludingChildren(this).stream().anyMatch(biomeKeys::contains) || i.getObjects().stream().anyMatch((f) -> f.getPlace().contains(s))) .map(IrisRegistrant::getLoadKey) .collect(Collectors.toSet()); diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java index 157cb61c9..3c8348aae 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java @@ -265,6 +265,15 @@ public class IrisRegion extends IrisRegistrant implements IRare { return b.v(); } + public KSet getAllBiomeIdsIncludingChildren(DataProvider g) { + KSet ids = new KSet<>(); + for (IrisBiome biome : getAllBiomes(g)) { + ids.add(biome.getLoadKey()); + } + + return ids; + } + public KList getBiomes(DataProvider g, InferredType type) { if (type.equals(InferredType.LAND)) { return getRealLandBiomes(g);