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 @@
-
+
@@ -147,22 +147,22 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -175,9 +175,9 @@
-
+
-
+
\ 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);
}