diff --git a/pom.xml b/pom.xml
index 796acc142..e94bef677 100644
--- a/pom.xml
+++ b/pom.xml
@@ -161,6 +161,17 @@
1.16.1-R0.1-SNAPSHOT
provided
+
+
+
+
+ org.bukkit.craftbukkit
+ cb-1.16.2
+ 1.16.2
+ provided
+
+
+
org.bstats
diff --git a/src/main/java/com/volmit/iris/gen/TerrainChunkGenerator.java b/src/main/java/com/volmit/iris/gen/TerrainChunkGenerator.java
index 78742075d..089ee1295 100644
--- a/src/main/java/com/volmit/iris/gen/TerrainChunkGenerator.java
+++ b/src/main/java/com/volmit/iris/gen/TerrainChunkGenerator.java
@@ -149,6 +149,8 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
KList layers = biome.generateLayers(rx, rz, getMasterRandom(), height, height - getFluidHeight());
KList cavernLayers = null;
KList seaLayers = biome.isAquatic() || biome.isShore() ? biome.generateSeaLayers(rx, rz, getMasterRandom(), fluidHeight - height) : new KList<>();
+ BlockData biomeFluid = biome.getFluidType().isEmpty() ? null : B.get(biome.getFluidType());
+
boolean caverning = false;
KList cavernHeights = new KList<>();
int lastCavernHeight = -1;
@@ -234,7 +236,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
// Set Sea Material (water/lava)
if(underwater)
{
- block = seaLayers.hasIndex(fluidHeight - k) ? seaLayers.get(depth) : getDimension().getFluid(rockRandom, wx, k, wz);
+ block = seaLayers.hasIndex(fluidHeight - k) ? seaLayers.get(depth) : biomeFluid != null ? biomeFluid : getDimension().getFluid(rockRandom, wx, k, wz);
}
// Set Surface Material for cavern layer surfaces
diff --git a/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java
index 1c0c3c3ec..614ae4d13 100644
--- a/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java
+++ b/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java
@@ -43,7 +43,7 @@ public class GenLayerUpdate extends BlockPopulator
{
PrecisionStopwatch p = PrecisionStopwatch.start();
AtomicSliverMap map = gen.getParallaxChunk(c.getX(), c.getZ());
- RNG rx = rng.nextParallelRNG(c.getX()).nextParallelRNG(c.getZ());
+ RNG rx = rng.nextParallelRNG(c.getX() + r.nextInt()).nextParallelRNG(c.getZ() + r.nextInt());
for(int i = 0; i < 16; i++)
{
@@ -60,9 +60,9 @@ public class GenLayerUpdate extends BlockPopulator
}
}
}
+
p.end();
gen.getMetrics().getUpdate().put(p.getMilliseconds());
-
}
public void update(Chunk c, int x, int y, int z, int rx, int rz, RNG rng)
diff --git a/src/main/java/com/volmit/iris/object/IrisBiome.java b/src/main/java/com/volmit/iris/object/IrisBiome.java
index deb3e3132..2c037b6bf 100644
--- a/src/main/java/com/volmit/iris/object/IrisBiome.java
+++ b/src/main/java/com/volmit/iris/object/IrisBiome.java
@@ -42,11 +42,15 @@ public class IrisBiome extends IrisRegistrant implements IRare
@ArrayType(min = 1, type = IrisTextPlacement.class)
private KList text = new KList<>();
+ @DontObfuscate
+ @Desc("The type of fluid if this biome is underwater")
+ private String fluidType = "";
+
@DontObfuscate
@Desc("Entity spawns to override or add to this biome")
@ArrayType(min = 1, type = IrisEntitySpawn.class)
private KList entitySpawns = new KList<>();
-
+
@ArrayType(min = 1, type = IrisEffect.class)
@DontObfuscate
@Desc("Effects are ambient effects such as potion effects, random sounds, or even particles around each player. All of these effects are played via packets so two players won't see/hear each others effects.\nDue to performance reasons, effects will play arround the player even if where the effect was played is no longer in the biome the player is in.")
diff --git a/src/main/java/com/volmit/iris/util/WorldGenLayer.java b/src/main/java/com/volmit/iris/util/WorldGenLayer.java
new file mode 100644
index 000000000..6eb2786cf
--- /dev/null
+++ b/src/main/java/com/volmit/iris/util/WorldGenLayer.java
@@ -0,0 +1,16 @@
+package com.volmit.iris.util;
+
+import org.bukkit.Chunk;
+import org.bukkit.World;
+
+import com.volmit.iris.gen.TerrainChunkGenerator;
+
+public abstract class WorldGenLayer
+{
+ public WorldGenLayer()
+ {
+
+ }
+
+ public abstract void gen(TerrainChunkGenerator g, Chunk c, int x, int z, World w, RNG r);
+}