diff --git a/build.gradle b/build.gradle index a797903d2..937842a4f 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ plugins { id "de.undercouch.download" version "5.0.1" } -version '3.2.6-1.19.2-1.20.4' +version '3.3.1-1.19.2-1.20.6' def specialSourceVersion = '1.11.4' //[NMS] // ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java index b7d8223b7..4f48245bf 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java +++ b/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java @@ -156,7 +156,7 @@ public class MantleJigsawComponent extends IrisMantleComponent { @ChunkCoordinates private IrisJigsawStructurePlacement pick(List structures, long seed, int x, int z) { return IRare.pick(structures.stream() - .filter(p -> p.shouldPlace(jigsaw(), x, z)) + .filter(p -> p.shouldPlace(getDimension().getJigsawStructureDivisor(), jigsaw(), x, z)) .toList(), new RNG(seed).nextDouble()); } diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java index d2aa52db2..fafeb768d 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java @@ -220,6 +220,8 @@ public class IrisDimension extends IrisRegistrant { @ArrayType(min = 1, type = IrisJigsawStructurePlacement.class) @Desc("Jigsaw structures") private KList jigsawStructures = new KList<>(); + @Desc("The jigsaw structure divisor to use when generating missing jigsaw placement values") + private double jigsawStructureDivisor = 18; @Required @MinNumber(0) @MaxNumber(1024) diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java index b65a7d2c5..40603ce85 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java @@ -88,21 +88,21 @@ public class IrisJigsawStructurePlacement implements IRare { return (int) Math.ceil(blocks / 16d); } - private void calculateMissing(long seed) { + private void calculateMissing(double divisor, long seed) { seed = seed + hashCode(); if (salt == 0) { salt = new RNG(seed).nextLong(Integer.MIN_VALUE, Integer.MAX_VALUE); } if (separation == -1 || spacing == -1) { - separation = (int) Math.round(rarity / 15d); + separation = (int) Math.round(rarity / divisor); spacing = new RNG(seed).nextInt(separation, separation * 2); } } @ChunkCoordinates - public boolean shouldPlace(long seed, int x, int z) { - calculateMissing(seed); + public boolean shouldPlace(double divisor, long seed, int x, int z) { + calculateMissing(divisor, seed); if (separation > spacing) { separation = spacing; Iris.warn("JigsawStructurePlacement: separation must be less than or equal to spacing"); diff --git a/settings.gradle b/settings.gradle index c4b3fa275..f1464496d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -22,6 +22,10 @@ pluginManagement { gradlePluginPortal() } } +plugins { + id "org.gradle.toolchains.foojay-resolver-convention" version "0.8.0" +} + rootProject.name = 'Iris' include(':core')