diff --git a/pom.xml b/pom.xml index 97bd20b9f..f0f82bae7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.volmit Iris - 1.1.5 + 1.1.6 Iris false diff --git a/src/main/java/com/volmit/iris/IrisSettings.java b/src/main/java/com/volmit/iris/IrisSettings.java index f4dfeb465..aa91d316a 100644 --- a/src/main/java/com/volmit/iris/IrisSettings.java +++ b/src/main/java/com/volmit/iris/IrisSettings.java @@ -49,7 +49,7 @@ public class IrisSettings public boolean ignoreWorldEdit = false; @DontObfuscate - public boolean useGleamPregenerator = true; + public boolean useGleamPregenerator = false; @DontObfuscate public boolean disableNMS = false; diff --git a/src/main/java/com/volmit/iris/generator/IrisEngine.java b/src/main/java/com/volmit/iris/generator/IrisEngine.java index b947c4e50..aa9ddcb37 100644 --- a/src/main/java/com/volmit/iris/generator/IrisEngine.java +++ b/src/main/java/com/volmit/iris/generator/IrisEngine.java @@ -1,8 +1,10 @@ package com.volmit.iris.generator; import com.volmit.iris.Iris; +import com.volmit.iris.IrisSettings; import com.volmit.iris.scaffold.engine.*; import com.volmit.iris.scaffold.hunk.Hunk; +import com.volmit.iris.scaffold.parallel.MultiBurst; import com.volmit.iris.util.J; import com.volmit.iris.util.PrecisionStopwatch; import com.volmit.iris.util.RNG; @@ -107,21 +109,46 @@ public class IrisEngine extends BlockPopulator implements Engine public void generate(int x, int z, Hunk vblocks, Hunk postblocks, Hunk vbiomes) { try { + boolean multicore = !IrisSettings.get().isUseGleamPregenerator(); //TODO: LATER s.acquire(1); PrecisionStopwatch p = PrecisionStopwatch.start(); Hunk biomes = vbiomes; Hunk blocks = vblocks.synchronize().listen((xx,y,zz,t) -> catchBlockUpdates(x+xx,y+getMinHeight(),z+zz, t)); Hunk pblocks = postblocks.synchronize().listen((xx,y,zz,t) -> catchBlockUpdates(x+xx,y+getMinHeight(),z+zz, t)); Hunk fringe = Hunk.fringe(blocks, pblocks); - getFramework().getEngineParallax().generateParallaxArea(x, z); - getFramework().getBiomeActuator().actuate(x, z, biomes); - getFramework().getTerrainActuator().actuate(x, z, blocks); - getFramework().getCaveModifier().modify(x, z, blocks); - getFramework().getRavineModifier().modify(x, z, blocks); + + if(multicore) + { + MultiBurst.burst.burst( + () -> getFramework().getEngineParallax().generateParallaxArea(x, z), + () -> getFramework().getBiomeActuator().actuate(x, z, biomes), + () -> getFramework().getTerrainActuator().actuate(x, z, blocks) + ); + + + + MultiBurst.burst.burst( + () -> getFramework().getCaveModifier().modify(x, z, blocks), + () -> getFramework().getRavineModifier().modify(x, z, blocks), + () -> getFramework().getPostModifier().modify(x, z, blocks), + () -> getFramework().getDecorantActuator().actuate(x, z, fringe), + () -> getFramework().getEngineParallax().insertParallax(x, z, fringe) + ); + } + + else + { + getFramework().getEngineParallax().generateParallaxArea(x, z); + getFramework().getBiomeActuator().actuate(x, z, biomes); + getFramework().getTerrainActuator().actuate(x, z, blocks); + getFramework().getCaveModifier().modify(x, z, blocks); + getFramework().getRavineModifier().modify(x, z, blocks); + getFramework().getPostModifier().modify(x, z, blocks); + getFramework().getDecorantActuator().actuate(x, z, fringe); + getFramework().getEngineParallax().insertParallax(x, z, fringe); + } + getFramework().getDepositModifier().modify(x, z, blocks); - getFramework().getPostModifier().modify(x, z, blocks); - getFramework().getDecorantActuator().actuate(x, z, fringe); - getFramework().getEngineParallax().insertParallax(x, z, fringe); getMetrics().getTotal().put(p.getMilliseconds()); s.release(1); getFramework().recycle(); diff --git a/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java b/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java index 2c015e34e..bbbb614d4 100644 --- a/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java +++ b/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java @@ -87,7 +87,6 @@ public class IrisEngineFramework implements EngineFramework { { getEngine().getParallax().cleanup(); getData().getObjectLoader().clean(); - Iris.verbose("Ran Cleanup"); } catch(Throwable e)