From 8c7d1f6181103de2784722de4e3d9929c18d406d Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Tue, 21 Aug 2018 00:34:04 -0500 Subject: [PATCH] Support 1.13 water toning for biomes --- DynmapCore/src/main/resources/texture_1.txt | 8 ++++---- .../helper/v113/BukkitVersionHelperSpigot113.java | 12 ++++++++++++ .../dynmap/bukkit/helper/BukkitVersionHelper.java | 7 +++++++ .../main/java/org/dynmap/bukkit/DynmapPlugin.java | 9 +++++++-- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/DynmapCore/src/main/resources/texture_1.txt b/DynmapCore/src/main/resources/texture_1.txt index 62e7e317..0d73976d 100644 --- a/DynmapCore/src/main/resources/texture_1.txt +++ b/DynmapCore/src/main/resources/texture_1.txt @@ -132,11 +132,11 @@ texture:id=spruce_sapling texture:id=birch_sapling texture:id=jungle_sapling texture:id=bedrock -#texture:id=water_still,material=WATER +texture:id=water_still,material=WATER #TODO: fix when I figure out 1.13 biome shading logic -texturefile:id=water_still,filename=assets/minecraft/textures/blocks/water_still.png,xcount=1,ycount=1 -#texture:id=water_flow,material=WATER -texturefile:id=water_flow,filename=assets/minecraft/textures/blocks/water_flow.png,xcount=1,ycount=1 +#texturefile:id=water_still,filename=assets/minecraft/textures/blocks/water_still.png,xcount=1,ycount=1 +texture:id=water_flow,material=WATER +#texturefile:id=water_flow,filename=assets/minecraft/textures/blocks/water_flow.png,xcount=1,ycount=1 texture:id=lava_still texture:id=lava_flow texture:id=sand diff --git a/bukkit-helper-113/src/main/java/org/dynmap/bukkit/helper/v113/BukkitVersionHelperSpigot113.java b/bukkit-helper-113/src/main/java/org/dynmap/bukkit/helper/v113/BukkitVersionHelperSpigot113.java index acec4c4c..9166b5b6 100644 --- a/bukkit-helper-113/src/main/java/org/dynmap/bukkit/helper/v113/BukkitVersionHelperSpigot113.java +++ b/bukkit-helper-113/src/main/java/org/dynmap/bukkit/helper/v113/BukkitVersionHelperSpigot113.java @@ -27,6 +27,9 @@ import org.dynmap.renderer.DynmapBlockState; import org.dynmap.utils.MapChunkCache; import org.dynmap.utils.Polygon; import org.dynmap.bukkit.helper.v113.MapChunkCache113; +import org.dynmap.common.BiomeMap; + +import net.minecraft.server.v1_13_R1.BiomeBase; import net.minecraft.server.v1_13_R1.Block; import net.minecraft.server.v1_13_R1.BlockFluids; import net.minecraft.server.v1_13_R1.IBlockData; @@ -131,4 +134,13 @@ public class BukkitVersionHelperSpigot113 extends BukkitVersionHelperCB { c.setChunks(dw, chunks); return c; } + + /** + * Get biome base water multiplier + */ + @Override + public int getBiomeBaseWaterMult(Object bb) { + return ((BiomeBase)bb).n(); + } + } diff --git a/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java b/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java index 803d30bc..1e7bfd04 100644 --- a/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java +++ b/bukkit-helper/src/main/java/org/dynmap/bukkit/helper/BukkitVersionHelper.java @@ -169,4 +169,11 @@ public abstract class BukkitVersionHelper { public Object[] getBlockIDFieldFromSnapshot(ChunkSnapshot css) { return null; } + /** + * Get biome base water multiplier + */ + public int getBiomeBaseWaterMult(Object bb) { + return -1; + } + } diff --git a/bukkit/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/bukkit/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index ab8b2749..3799e040 100644 --- a/bukkit/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/bukkit/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -746,20 +746,25 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { if(bb != null) { float tmp = helper.getBiomeBaseTemperature(bb); float hum = helper.getBiomeBaseHumidity(bb); + int watermult = helper.getBiomeBaseWaterMult(bb); BiomeMap bmap = BiomeMap.byBiomeID(i); if (bmap.isDefault()) { String id = helper.getBiomeBaseIDString(bb); if(id == null) { id = "BIOME_" + i; } - BiomeMap m = new BiomeMap(i, id, tmp, hum); - Log.verboseinfo("Add custom biome [" + m.toString() + "] (" + i + ")"); + bmap = new BiomeMap(i, id, tmp, hum); + Log.verboseinfo("Add custom biome [" + bmap.toString() + "] (" + i + ")"); cnt++; } else { bmap.setTemperature(tmp); bmap.setRainfall(hum); } + if (watermult != -1) { + bmap.setWaterColorMultiplier(watermult); + Log.info("Set watercolormult for " + bmap.toString() + " (" + i + ") to " + Integer.toHexString(watermult)); + } } } if(cnt > 0) {