From 131c4692bc261d2d2522fa7c368d0b4392e9c849 Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Fri, 17 Feb 2023 11:25:10 +0100 Subject: [PATCH 1/3] Remove DEFER from InferredType Unused --- src/main/java/com/volmit/iris/engine/IrisComplex.java | 1 - .../java/com/volmit/iris/engine/object/InferredType.java | 5 +---- src/main/java/com/volmit/iris/engine/object/IrisBiome.java | 5 ----- .../java/com/volmit/iris/engine/object/IrisSpawner.java | 6 +++--- 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/src/main/java/com/volmit/iris/engine/IrisComplex.java index 39397bf53..989aa0ef9 100644 --- a/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/src/main/java/com/volmit/iris/engine/IrisComplex.java @@ -220,7 +220,6 @@ public class IrisComplex implements DataProvider { return seaBiomeStream; case SHORE: return shoreBiomeStream; - case DEFER: default: break; } diff --git a/src/main/java/com/volmit/iris/engine/object/InferredType.java b/src/main/java/com/volmit/iris/engine/object/InferredType.java index e4a8a6139..37439bb4d 100644 --- a/src/main/java/com/volmit/iris/engine/object/InferredType.java +++ b/src/main/java/com/volmit/iris/engine/object/InferredType.java @@ -32,8 +32,5 @@ public enum InferredType { SEA, @Desc("Represents any cave biome type") - CAVE, - - @Desc("Defers the type to whatever another biome type that already exists is.") - DEFER + CAVE } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiome.java b/src/main/java/com/volmit/iris/engine/object/IrisBiome.java index f02982c36..c08d3fa11 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisBiome.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisBiome.java @@ -484,11 +484,6 @@ public class IrisBiome extends IrisRegistrant implements IRare { }); } - public IrisBiome infer(InferredType t, InferredType type) { - setInferredType(t.equals(InferredType.DEFER) ? type : t); - return this; - } - public KList generateSeaLayers(double wx, double wz, RNG random, int maxDepth, IrisData rdata) { KList data = new KList<>(); diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java b/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java index 6e2c9faff..6d2359895 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java @@ -76,17 +76,17 @@ public class IrisSpawner extends IrisRegistrant { public boolean isValid(IrisBiome biome) { return switch (group) { case NORMAL -> switch (biome.getInferredType()) { - case SHORE, SEA, CAVE, DEFER -> false; + case SHORE, SEA, CAVE -> false; case LAND -> true; }; case CAVE -> true; case UNDERWATER -> switch (biome.getInferredType()) { - case SHORE, LAND, CAVE, DEFER -> false; + case SHORE, LAND, CAVE -> false; case SEA -> true; }; case BEACH -> switch (biome.getInferredType()) { case SHORE -> true; - case LAND, CAVE, SEA, DEFER -> false; + case LAND, CAVE, SEA -> false; }; }; } From 23cd5c117b581ff0d746815b5b51ada438712d76 Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Fri, 17 Feb 2023 11:25:26 +0100 Subject: [PATCH 2/3] Replace continent renderer with bridgeStream --- .../iris/core/gui/components/IrisRenderer.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java b/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java index 62c7616ed..23928b329 100644 --- a/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java +++ b/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java @@ -49,14 +49,13 @@ public class IrisRenderer { colorFunction = (x, z) -> renderer.getComplex().getCaveBiomeStream().get(x, z).getColor(renderer, currentType).getRGB(); case HEIGHT -> colorFunction = (x, z) -> Color.getHSBColor(renderer.getComplex().getHeightStream().get(x, z).floatValue(), 100, 100).getRGB(); - case CONTINENT -> { - double fluidHeight = renderer.getComplex().getFluidHeight(); - int deltaHeight = renderer.getMaxHeight() - renderer.getMinHeight(); - colorFunction = (x, z) -> { - double h = renderer.getComplex().getHeightStream().get(x, z); - return new Color((int) (h * 255d / deltaHeight), 128, h > fluidHeight ? 0 : 255).getRGB(); - }; - } + case CONTINENT -> + colorFunction = (x, z) -> (switch (renderer.getComplex().getBridgeStream().get(x, z)) { + case SHORE -> Color.YELLOW; + case LAND -> Color.GREEN; + case SEA -> Color.BLUE; + case CAVE -> Color.BLACK; + }).getRGB(); } double x, z; From 110d296184dfbf5a7e82fd5b5a184466ec908df8 Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Fri, 17 Feb 2023 11:51:27 +0100 Subject: [PATCH 3/3] Replace bridge with stream used in /ir what biome --- .../core/gui/components/IrisRenderer.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java b/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java index 23928b329..d1f2ca751 100644 --- a/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java +++ b/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java @@ -19,6 +19,8 @@ package com.volmit.iris.core.gui.components; import com.volmit.iris.engine.framework.Engine; +import com.volmit.iris.engine.object.IrisBiome; +import com.volmit.iris.engine.object.IrisBiomeGeneratorLink; import com.volmit.iris.util.interpolation.IrisInterpolation; import java.awt.*; @@ -50,12 +52,22 @@ public class IrisRenderer { case HEIGHT -> colorFunction = (x, z) -> Color.getHSBColor(renderer.getComplex().getHeightStream().get(x, z).floatValue(), 100, 100).getRGB(); case CONTINENT -> - colorFunction = (x, z) -> (switch (renderer.getComplex().getBridgeStream().get(x, z)) { - case SHORE -> Color.YELLOW; - case LAND -> Color.GREEN; - case SEA -> Color.BLUE; - case CAVE -> Color.BLACK; - }).getRGB(); + colorFunction = (x, z) -> { + IrisBiome b = renderer.getBiome((int) Math.round(x), renderer.getMaxHeight() - 1, (int) Math.round(z)); + IrisBiomeGeneratorLink g = b.getGenerators().get(0); + Color c; + if (g.getMax() <= 0) { + // Max is below water level, so it is most likely an ocean biome + c = Color.BLUE; + } else if (g.getMin() < 0) { + // Min is below water level, but max is not, so it is most likely a shore biome + c = Color.YELLOW; + } else { + // Both min and max are above water level, so it is most likely a land biome + c = Color.GREEN; + } + return c.getRGB(); + }; } double x, z;