From 0c372852a6f98c5ed5341095adbcd7dd7a712731 Mon Sep 17 00:00:00 2001 From: Jurgen Date: Tue, 9 Apr 2024 20:06:31 +0200 Subject: [PATCH 1/2] implemented user configurable world height, cleaned up commits --- .../java/org/dynmap/hdmap/TopoHDShader.java | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/TopoHDShader.java b/DynmapCore/src/main/java/org/dynmap/hdmap/TopoHDShader.java index cf9e5928b..b5e9d7202 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/TopoHDShader.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/TopoHDShader.java @@ -6,10 +6,7 @@ import java.util.BitSet; import java.util.List; -import org.dynmap.Color; -import org.dynmap.ConfigurationNode; -import org.dynmap.DynmapCore; -import org.dynmap.MapManager; +import org.dynmap.*; import org.dynmap.common.DynmapCommandSender; import org.dynmap.exporter.OBJExport; import org.dynmap.renderer.DynmapBlockState; @@ -26,15 +23,26 @@ public class TopoHDShader implements HDShader { private final Color watercolor; private BitSet hiddenids; private final int linespacing; - + private int worldheight; public TopoHDShader(DynmapCore core, ConfigurationNode configuration) { name = (String) configuration.get("name"); - - fillcolor = new Color[256]; /* Color by Y */ - /* Load defined colors from parameters */ - for(int i = 0; i < 256; i++) { - fillcolor[i] = configuration.getColor("color" + i, null); + if (HDBlockModels.checkVersionRange(core.getDynmapPluginPlatformVersion(), "-1.17.0")){ + worldheight = 256; + fillcolor = new Color[worldheight]; /* Color by Y, must be range of total world height, offset by +64*/ + /* Load defined colors from parameters */ + for(int i = 0; i < worldheight; i++) { + fillcolor[i] = configuration.getColor("color" + (i - 64), null); /* need to substract by 64 because Color does not accept <0 indexes*/ + } } + else{ + worldheight = configuration.getInteger("worldheight", 348); + fillcolor = new Color[worldheight]; /* Color by Y, must be range of total world height, offset by +64*/ + /* Load defined colors from parameters */ + for(int i = 0; i < worldheight; i++) { + fillcolor[i] = configuration.getColor("color" + (i - 64), null); /* need to substract by 64 because Color does not accept <0 indexes*/ + } + } + linecolor = configuration.getColor("linecolor", null); watercolor = configuration.getColor("watercolor", null); float wateralpha = configuration.getFloat("wateralpha", 1.0F); @@ -45,11 +53,11 @@ public TopoHDShader(DynmapCore core, ConfigurationNode configuration) { if(fillcolor[0] == null) { fillcolor[0] = new Color(0, 0, 0); } - if(fillcolor[255] == null) { - fillcolor[255] = new Color(255, 255, 255); + if(fillcolor[worldheight-1] == null) { + fillcolor[worldheight-1] = new Color(255, 255, 255); } int starty = 0; - for(int i = 1; i < 256; i++) { + for(int i = 0; i < worldheight; i++) { if(fillcolor[i] != null) { /* Found color? */ int delta = i - starty; Color c0 = fillcolor[starty]; From 9221bb153de5968871504d1761c57f30be2763c3 Mon Sep 17 00:00:00 2001 From: Jurgen Date: Thu, 13 Jun 2024 22:33:53 +0200 Subject: [PATCH 2/2] implemented new chunkdataversions for 1.20.x and 1.21 --- .../java/org/dynmap/hdmap/ChunkVersionHDShader.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/ChunkVersionHDShader.java b/DynmapCore/src/main/java/org/dynmap/hdmap/ChunkVersionHDShader.java index 62f2bbf92..d2cb4ce8c 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/ChunkVersionHDShader.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/ChunkVersionHDShader.java @@ -27,7 +27,7 @@ private static class DataVersionMap { int dataVersion; //String version; Color defcolor; - DataVersionMap(int dv, String v, int c) { + DataVersionMap(int dv, String v, Color c) { dataVersion = dv; //version = v; defcolor = new Color((c>>16)&0xFF, (c>>8)&0xFF, c&0xFF); @@ -59,11 +59,20 @@ private static class DataVersionMap { new DataVersionMap(2860, "1.18.0", 0xA3E4D7), new DataVersionMap(2865, "1.18.1", 0x48C9B0), new DataVersionMap(2975, "1.18.2", 0x38bfa5), - new DataVersionMap(3105, "1.19", 0xd56f82), + new DataVersionMap(3105, "1.19.0", 0xd56f82), new DataVersionMap(3116, "1.19.1", 0xe196a4), new DataVersionMap(3120, "1.19.2", 0xe7aeb8), new DataVersionMap(3218, "1.19.3", 0xf8c0c8), new DataVersionMap(3337, "1.19.4", 0xffb6c1), + new DataVersionMap(3463, "1.20.0", 0xe196a6), + new DataVersionMap(3465, "1.20.1", 0xe7aeb10), + new DataVersionMap(3578, "1.20.2", 0xe196a7), + new DataVersionMap(3698, "1.20.3", 0xe7aeb11), + new DataVersionMap(3700, "1.20.4", 0xe196a8), + new DataVersionMap(3837, "1.20.5", 0xe7aeb12), + new DataVersionMap(3839, "1.20.6", 0xe196a9), + new DataVersionMap(3953, "1.21.0", 0xe7aeb13), + }; final static Color unknown_color = new Color(255, 255, 255);