From d92c96ecc2f4826cf2ae91f70d72c54ff1a58df2 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Thu, 30 Jul 2020 03:52:23 -0400 Subject: [PATCH] Fixes --- src/main/java/com/volmit/iris/Iris.java | 2 +- src/main/java/com/volmit/iris/IrisSettings.java | 9 --------- .../volmit/iris/generator/ParallaxChunkGenerator.java | 3 --- .../volmit/iris/generator/ParallelChunkGenerator.java | 7 +++++-- .../com/volmit/iris/generator/TerrainChunkGenerator.java | 7 +++---- src/main/java/com/volmit/iris/layer/GenLayerCave.java | 9 +++++++-- 6 files changed, 16 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/com/volmit/iris/IrisSettings.java diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 637bf14cc..465a57d8c 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -831,7 +831,7 @@ public class Iris extends JavaPlugin implements BoardProvider imsg(i, "Creating Iris " + dimm + "..."); } - int tc = Math.max(Runtime.getRuntime().availableProcessors(), 4); + int tc = Math.max(Runtime.getRuntime().availableProcessors() * 4, 4); IrisChunkGenerator gx = new IrisChunkGenerator(dimm, tc); info("Generating with " + tc + " threads per chunk"); O done = new O(); diff --git a/src/main/java/com/volmit/iris/IrisSettings.java b/src/main/java/com/volmit/iris/IrisSettings.java deleted file mode 100644 index d906b247b..000000000 --- a/src/main/java/com/volmit/iris/IrisSettings.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.volmit.iris; - -import lombok.Data; - -@Data -public class IrisSettings -{ - private int threads = 8; -} diff --git a/src/main/java/com/volmit/iris/generator/ParallaxChunkGenerator.java b/src/main/java/com/volmit/iris/generator/ParallaxChunkGenerator.java index ea824a4db..0470e3f78 100644 --- a/src/main/java/com/volmit/iris/generator/ParallaxChunkGenerator.java +++ b/src/main/java/com/volmit/iris/generator/ParallaxChunkGenerator.java @@ -170,8 +170,6 @@ public abstract class ParallaxChunkGenerator extends TerrainChunkGenerator imple @Override protected void onPostGenerate(RNG random, int x, int z, ChunkData data, BiomeGrid grid, HeightMap height, BiomeMap biomeMap) { - setCaching(false); - if(getSliverCache().size() > 20000) { getSliverCache().clear(); @@ -194,7 +192,6 @@ public abstract class ParallaxChunkGenerator extends TerrainChunkGenerator imple p.end(); getMetrics().getParallax().put(p.getMilliseconds()); super.onPostParallaxPostGenerate(random, x, z, data, grid, height, biomeMap); - setCaching(true); } protected void injectBiomeSky(int x, int z, BiomeGrid grid) diff --git a/src/main/java/com/volmit/iris/generator/ParallelChunkGenerator.java b/src/main/java/com/volmit/iris/generator/ParallelChunkGenerator.java index 546e6641a..3596af25a 100644 --- a/src/main/java/com/volmit/iris/generator/ParallelChunkGenerator.java +++ b/src/main/java/com/volmit/iris/generator/ParallelChunkGenerator.java @@ -26,6 +26,7 @@ public abstract class ParallelChunkGenerator extends BiomeChunkGenerator protected int cacheX; protected int cacheZ; private ReentrantLock genlock; + protected boolean cachingAllowed; public ParallelChunkGenerator(String dimensionName, int threads) { @@ -77,7 +78,6 @@ public abstract class ParallelChunkGenerator extends BiomeChunkGenerator String key = "c" + x + "," + z; BiomeMap biomeMap = new BiomeMap(); int ii, jj; - unsafe = true; for(ii = 0; ii < 16; ii++) { @@ -97,11 +97,14 @@ public abstract class ParallelChunkGenerator extends BiomeChunkGenerator } } + setCachingAllowed(true); + setUnsafe(true); accelerant.waitFor(key); + setUnsafe(false); + setCachingAllowed(false); map.write(data, grid, height); getMetrics().getTerrain().put(p.getMilliseconds()); p = PrecisionStopwatch.start(); - unsafe = false; onPostGenerate(random, x, z, data, grid, height, biomeMap); genlock.unlock(); } diff --git a/src/main/java/com/volmit/iris/generator/TerrainChunkGenerator.java b/src/main/java/com/volmit/iris/generator/TerrainChunkGenerator.java index 9fd235ee9..7835aa647 100644 --- a/src/main/java/com/volmit/iris/generator/TerrainChunkGenerator.java +++ b/src/main/java/com/volmit/iris/generator/TerrainChunkGenerator.java @@ -41,14 +41,13 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator private int[] cacheHeightMap; private IrisBiome[] cacheTrueBiome; private ReentrantLock cacheLock; - private boolean caching; public TerrainChunkGenerator(String dimensionName, int threads) { super(dimensionName, threads); cacheHeightMap = new int[256]; cacheTrueBiome = new IrisBiome[256]; - caching = true; + cachingAllowed = true; cacheLock = new ReentrantLock(); } @@ -100,7 +99,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator throw new RuntimeException("Null Biome!"); } - if(caching) + if(cachingAllowed) { try { @@ -245,7 +244,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator } } - if(caching && highestPlaced < height) + if(cachingAllowed && highestPlaced < height) { cacheHeightMap[(z << 4) | x] = highestPlaced; } diff --git a/src/main/java/com/volmit/iris/layer/GenLayerCave.java b/src/main/java/com/volmit/iris/layer/GenLayerCave.java index 16bbe0d95..28f8c69ed 100644 --- a/src/main/java/com/volmit/iris/layer/GenLayerCave.java +++ b/src/main/java/com/volmit/iris/layer/GenLayerCave.java @@ -49,7 +49,7 @@ public class GenLayerCave extends GenLayer gg.SetCellularReturnType(CellularReturnType.Distance2Sub); gg.SetCellularDistanceFunction(CellularDistanceFunction.Natural); - for(int i = 0; i < 2; i++) + for(int i = 0; i < 3; i++) { double wx = wxx + (shuffle.noise(wxx, wzz) * shuffleDistance); double wz = wzz + (shuffle.noise(wzz, wxx) * shuffleDistance); @@ -57,7 +57,7 @@ public class GenLayerCave extends GenLayer double baseWidth = (14 * iris.getDimension().getCaveScale()); double distanceCheck = 0.0132 * baseWidth; double distanceTake = 0.0022 * baseWidth; - double drop = (-i * 7) + 44 + iris.getDimension().getCaveShift(); + double drop = (-i * 17) + 44 + iris.getDimension().getCaveShift(); double caveHeightNoise = incline * gincline.noise((wx + (10000 * i)), (wz - (10000 * i))); caveHeightNoise += shuffle.fitDoubleD(-1, 1, wxx - caveHeightNoise, wzz + caveHeightNoise) * 3; @@ -73,6 +73,11 @@ public class GenLayerCave extends GenLayer int pu = (int) (caveHeight + tunnelHeight); int pd = (int) (caveHeight - tunnelHeight); + if((pu > 255 && pd > 255) || (pu < 0 && pd < 0)) + { + continue; + } + if(data == null) { ceiling = pu > ceiling ? pu : ceiling;