From 5b6f1182fe9a484f5fbe46fe34b7547e2b199452 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Sat, 5 Sep 2020 02:59:45 -0400 Subject: [PATCH] Custom fluids --- pom.xml | 11 +++++++++++ .../volmit/iris/gen/TerrainChunkGenerator.java | 4 +++- .../volmit/iris/gen/layer/GenLayerUpdate.java | 4 ++-- .../java/com/volmit/iris/object/IrisBiome.java | 6 +++++- .../java/com/volmit/iris/util/WorldGenLayer.java | 16 ++++++++++++++++ 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/volmit/iris/util/WorldGenLayer.java 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); +}