diff --git a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java index 8dd46f45..503875e7 100644 --- a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java @@ -13,16 +13,24 @@ public class SulphuricSurfaceNoiseCondition extends SurfaceNoiseCondition { this.threshold = threshold; } + private int lastX = Integer.MIN_VALUE; + private int lastZ = Integer.MIN_VALUE; + private double lastValue = 0; @Override public boolean test(SurfaceRulesContextAccessor context) { final int x = context.getBlockX(); final int z = context.getBlockZ(); + if (lastX==x && lastZ==z) return lastValue < threshold; + double value = NOISE.eval(x * 0.03, z * 0.03) + NOISE.eval(x * 0.1, z * 0.1) * 0.3 + MHelper.randRange( -0.1, 0.1, MHelper.RANDOM ); + lastX=x; + lastZ=z; + lastValue=value; return value < threshold; } }