From 30bc7256316f4791e39cdf6325952ccb59e79f7a Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Sun, 6 Dec 2020 06:10:29 -0500 Subject: [PATCH] Fix post block modifier (async issues) --- .../generator/modifier/IrisPostModifier.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java b/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java index 24209a38d..fd6e56867 100644 --- a/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java +++ b/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java @@ -1,13 +1,13 @@ package com.volmit.iris.generator.modifier; -import com.volmit.iris.object.*; +import com.volmit.iris.object.IrisBiome; +import com.volmit.iris.scaffold.engine.Engine; +import com.volmit.iris.scaffold.engine.EngineAssignedModifier; +import com.volmit.iris.scaffold.hunk.Hunk; import com.volmit.iris.util.B; import com.volmit.iris.util.CaveResult; import com.volmit.iris.util.PrecisionStopwatch; import com.volmit.iris.util.RNG; -import com.volmit.iris.scaffold.engine.Engine; -import com.volmit.iris.scaffold.engine.EngineAssignedModifier; -import com.volmit.iris.scaffold.hunk.Hunk; import org.bukkit.Material; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Levelled; @@ -205,22 +205,25 @@ public class IrisPostModifier extends EngineAssignedModifier { if(b instanceof Waterlogged) { - Waterlogged ww = (Waterlogged) b; + Waterlogged ww = (Waterlogged) b.clone(); boolean w = false; - if(isWaterOrWaterlogged(x, h + 1, z, currentPostX, currentPostZ, currentData)) - { - w = true; - } - else if((isWaterOrWaterlogged(x + 1, h, z, currentPostX, currentPostZ, currentData) || isWaterOrWaterlogged(x - 1, h, z, currentPostX, currentPostZ, currentData) || isWaterOrWaterlogged(x, h, z + 1, currentPostX, currentPostZ, currentData) || isWaterOrWaterlogged(x, h, z - 1, currentPostX, currentPostZ, currentData))) - { - w = true; + if (h <= getDimension().getFluidHeight()+1) { + if(isWaterOrWaterlogged(x, h + 1, z, currentPostX, currentPostZ, currentData)) + { + w = true; + } + + else if((isWaterOrWaterlogged(x + 1, h, z, currentPostX, currentPostZ, currentData) || isWaterOrWaterlogged(x - 1, h, z, currentPostX, currentPostZ, currentData) || isWaterOrWaterlogged(x, h, z + 1, currentPostX, currentPostZ, currentData) || isWaterOrWaterlogged(x, h, z - 1, currentPostX, currentPostZ, currentData))) + { + w = true; + } } if(w != ww.isWaterlogged()) { ww.setWaterlogged(w); - setPostBlock(x, h, z, b, currentPostX, currentPostZ, currentData); + setPostBlock(x, h, z, ww, currentPostX, currentPostZ, currentData); } }