From cfc845884124a27cd27814f55948ba0e1a7937d9 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Sun, 1 Nov 2020 10:14:50 -0500 Subject: [PATCH] Fixes --- .idea/workspace.xml | 22 +++++++++---------- .../volmit/iris/gen/layer/GenLayerBiome.java | 5 +++++ .../com/volmit/iris/object/IrisDimension.java | 5 +++++ .../com/volmit/iris/object/IrisGenerator.java | 21 ++++++++++++++---- .../java/com/volmit/iris/util/GenLayer.java | 5 +++++ 5 files changed, 43 insertions(+), 15 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 585fa9008..ca34fab96 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -74,7 +74,7 @@ - + \ No newline at end of file diff --git a/src/main/java/com/volmit/iris/gen/layer/GenLayerBiome.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerBiome.java index 2a2d5616e..537311a6f 100644 --- a/src/main/java/com/volmit/iris/gen/layer/GenLayerBiome.java +++ b/src/main/java/com/volmit/iris/gen/layer/GenLayerBiome.java @@ -59,6 +59,11 @@ public class GenLayerBiome extends GenLayer return null; } + if(!iris.getDimension().getFocusRegion().trim().isEmpty()) + { + return iris.loadRegion(iris.getDimension().getFocusRegion()); + } + return regionGenerator.fitRarity(iris.getDimension().getAllRegions(iris), bx, bz); } diff --git a/src/main/java/com/volmit/iris/object/IrisDimension.java b/src/main/java/com/volmit/iris/object/IrisDimension.java index e7b41f704..e2eca8f68 100644 --- a/src/main/java/com/volmit/iris/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/object/IrisDimension.java @@ -239,6 +239,11 @@ public class IrisDimension extends IrisRegistrant @Desc("Keep this either undefined or empty. Setting any biome name into this will force iris to only generate the specified biome. Great for testing.") private String focus = ""; + @RegistryListBiome + @DontObfuscate + @Desc("Keep this either undefined or empty. Setting any region name into this will force iris to only generate the specified region. Great for testing.") + private String focusRegion = ""; + @MinNumber(0.0001) @MaxNumber(512) @DontObfuscate diff --git a/src/main/java/com/volmit/iris/object/IrisGenerator.java b/src/main/java/com/volmit/iris/object/IrisGenerator.java index b178800db..5913d966b 100644 --- a/src/main/java/com/volmit/iris/object/IrisGenerator.java +++ b/src/main/java/com/volmit/iris/object/IrisGenerator.java @@ -41,6 +41,10 @@ public class IrisGenerator extends IrisRegistrant @Desc("The opacity, essentially a multiplier on the output.") private double opacity = 1; + @DontObfuscate + @Desc("Multiply the compsites instead of adding them") + private boolean multiplicitive = false; + @MinNumber(0.001) @DontObfuscate @Desc("The size of the cell fractures") @@ -252,15 +256,24 @@ public class IrisGenerator extends IrisRegistrant int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * seed + offsetX + offsetZ); double h = 0; - double tp = 0; + double tp = multiplicitive ? 1 : 0; for(IrisNoiseGenerator i : composite) { - tp += i.getOpacity(); - h += i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom); + if(multiplicitive) + { + tp *= i.getOpacity(); + h *= i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom); + } + + else + { + tp += i.getOpacity(); + h += i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom); + } } - double v = (h / tp) * opacity; + double v = multiplicitive ? h * opacity : (h / tp) * opacity; if(Double.isNaN(v)) { diff --git a/src/main/java/com/volmit/iris/util/GenLayer.java b/src/main/java/com/volmit/iris/util/GenLayer.java index 383975a46..cffc56f2c 100644 --- a/src/main/java/com/volmit/iris/util/GenLayer.java +++ b/src/main/java/com/volmit/iris/util/GenLayer.java @@ -13,5 +13,10 @@ public abstract class GenLayer this.rng = rng; } + public GenLayer() + { + this(null, null); + } + public abstract double generate(double x, double z); }