diff --git a/build.gradle b/build.gradle index 80e6171c0..06b1b8b40 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ plugins { id "de.undercouch.download" version "5.0.1" } -version '2.2.11-1.19.2' // Needs to be version specific +version '2.2.13-1.19.2' // Needs to be version specific def nmsVersion = "1.19.2" def apiVersion = '1.19' def spigotJarVersion = '1.19.1-R0.1-SNAPSHOT' diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 7424cf3e4..5ac77569f 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -387,8 +387,6 @@ public class Iris extends VolmitPlugin implements Listener { } private void enable() { - IrisToolbelt.retainMantleDataForSlice(String.class.getCanonicalName()); - IrisToolbelt.retainMantleDataForSlice(BlockData.class.getCanonicalName()); instance = this; services = new KMap<>(); initialize("com.volmit.iris.core.service").forEach((i) -> services.put((Class) i.getClass(), (IrisService) i)); @@ -416,6 +414,8 @@ public class Iris extends VolmitPlugin implements Listener { splash(); autoStartStudio(); checkForBukkitWorlds(); + IrisToolbelt.retainMantleDataForSlice(String.class.getCanonicalName()); + IrisToolbelt.retainMantleDataForSlice(BlockData.class.getCanonicalName()); }); } diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java b/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java index a5909c5c8..184bf7a16 100644 --- a/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java +++ b/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java @@ -57,11 +57,14 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator { bd = decorator.getBlockData100(biome, getRng(), realX, height, realZ, getData()); if(!underwater) { - if(!canGoOn(bd, bdx) && !decorator.isForcePlace()) { + if(!canGoOn(bd, bdx) && (!decorator.isForcePlace() && decorator.getForceBlock() == null) ) { return; } } + if(decorator.getForceBlock() != null) + data.set(x, height, z, fixFaces(decorator.getForceBlock().getBlockData(getData()), x, height, z)); + if(bd instanceof Bisected) { bd = bd.clone(); ((Bisected) bd).setHalf(Bisected.Half.TOP); @@ -74,9 +77,8 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator { ((Bisected) bd).setHalf(Bisected.Half.BOTTOM); } - if(decorator.getForceBlock() != null) - data.set(x, height, z, fixFaces(decorator.getForceBlock().getBlockData(getData()), x, height, z)); - data.set(x, height + 1, z, fixFaces(bd, x, height, z)); + data.set(x, height + 1, z, fixFaces(bd, x, height + 1, z)); + } else { if(height < getDimension().getFluidHeight()) { max = getDimension().getFluidHeight(); diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java index 0fdc2e232..3b2a50b04 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java @@ -224,7 +224,7 @@ public class IrisPostModifier extends EngineAssignedModifier { if(B.isFoliage(b) || b.getMaterial().equals(Material.DEAD_BUSH)) { Material onto = getPostBlock(x, h, z, currentPostX, currentPostZ, currentData).getMaterial(); - if(!B.canPlaceOnto(b.getMaterial(), onto)) { + if(!B.canPlaceOnto(b.getMaterial(), onto) && !B.isDecorant(b)) { setPostBlock(x, h + 1, z, AIR, currentPostX, currentPostZ, currentData); } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java b/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java index 6b23b8a57..b658aa7d7 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java @@ -213,24 +213,24 @@ public class IrisGenerator extends IrisRegistrant { return 0; } - int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * seed + offsetX + offsetZ); + int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * getSeed() + offsetX + offsetZ); double h = multiplicitive ? 1 : 0; double tp = 0; if(composite.size() == 1) { if(multiplicitive) { - h *= composite.get(0).getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); + h *= composite.get(0).getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); } else { tp += composite.get(0).getOpacity(); - h += composite.get(0).getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); + h += composite.get(0).getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); } } else { for(IrisNoiseGenerator i : composite) { if(multiplicitive) { - h *= i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); + h *= i.getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); } else { tp += i.getOpacity(); - h += i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); + h += i.getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); } } } @@ -248,8 +248,8 @@ public class IrisGenerator extends IrisRegistrant { } public double cell(double rx, double rz, double v, double superSeed) { - getCellGenerator(seed + 46222).setShuffle(getCellFractureShuffle()); - return getCellGenerator(seed + 46222).getDistance(rx / getCellFractureZoom(), rz / getCellFractureZoom()) > getCellPercentSize() ? (v * getCellFractureHeight()) : v; + getCellGenerator(getSeed() + 46222).setShuffle(getCellFractureShuffle()); + return getCellGenerator(getSeed() + 46222).getDistance(rx / getCellFractureZoom(), rz / getCellFractureZoom()) > getCellPercentSize() ? (v * getCellFractureHeight()) : v; } private boolean hasCellCracks() { @@ -257,8 +257,8 @@ public class IrisGenerator extends IrisRegistrant { } public double getCliffHeight(double rx, double rz, double superSeed) { - int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * seed + offsetX + offsetZ); - double h = cliffHeightGenerator.getNoise((long) (seed + superSeed + hc), (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); + int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * getSeed() + offsetX + offsetZ); + double h = cliffHeightGenerator.getNoise((long) (getSeed() + superSeed + hc), (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader()); return IrisInterpolation.lerp(cliffHeightMin, cliffHeightMax, h); }