From 667fc7dd1512b66385d68ea04eaa0d2ddc0432b7 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sat, 18 Aug 2018 17:55:35 -0400 Subject: [PATCH] Finish first pass on pre 1.13 blocks --- .../dynmap/hdmap/HDBlockStateTextureMap.java | 5 +- .../java/org/dynmap/hdmap/TexturePack.java | 61 +++-- .../dynmap/hdmap/renderer/HeadRenderer.java | 64 +++++ .../hdmap/renderer/WallHeadRenderer.java | 64 +++++ DynmapCore/src/main/resources/models_1.txt | 121 +++++----- DynmapCore/src/main/resources/texture_1.txt | 220 +++++++++--------- 6 files changed, 345 insertions(+), 190 deletions(-) create mode 100644 DynmapCore/src/main/java/org/dynmap/hdmap/renderer/HeadRenderer.java create mode 100644 DynmapCore/src/main/java/org/dynmap/hdmap/renderer/WallHeadRenderer.java diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java b/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java index c656e03a..6f81e81b 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java @@ -1,6 +1,7 @@ package org.dynmap.hdmap; import java.util.Arrays; +import java.util.BitSet; import java.util.List; import org.dynmap.hdmap.TexturePack; @@ -78,13 +79,13 @@ public class HDBlockStateTextureMap { } // Add block state to table, with given block IDs and state indexes - public void addToTable(List blocknames, List stateidx) { + public void addToTable(List blocknames, BitSet stateidx) { /* Add entries to lookup table */ for (String blkname : blocknames) { DynmapBlockState baseblk = DynmapBlockState.getBaseStateByName(blkname); if (baseblk.isNotAir()) { if (stateidx != null) { - for (Integer stateid : stateidx) { + for (int stateid = stateidx.nextSetBit(0); stateid >= 0; stateid = stateidx.nextSetBit(stateid+1)) { DynmapBlockState bs = baseblk.getState(stateid); if (bs.isAir()) { Log.warning("Invalid texture block state: " + blkname + ":" + stateid); diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java b/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java index b8682c48..35914903 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java @@ -10,6 +10,7 @@ import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.ArrayList; import java.util.Arrays; +import java.util.BitSet; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -481,7 +482,7 @@ public class TexturePack { private Map key_to_index = new HashMap(); private List texture_ids = new ArrayList(); private List blocknames = new ArrayList(); - private List stateids = new ArrayList(); + private BitSet stateids = new BitSet(); private BlockTransparency trans = BlockTransparency.OPAQUE; private int colorMult = 0; private CustomColorMultiplier custColorMult = null; @@ -545,7 +546,7 @@ public class TexturePack { /** * Add settings for texture map */ - private static void addTextureIndex(String id, List blocknames, List stateids, BlockTransparency trans, int colorMult, CustomColorMultiplier custColorMult, String blockset) { + private static void addTextureIndex(String id, List blocknames, BitSet stateids, BlockTransparency trans, int colorMult, CustomColorMultiplier custColorMult, String blockset) { TextureMap idx = textmap_by_id.get(id); if(idx == null) { /* Add empty one, if not found */ idx = new TextureMap(); @@ -1933,7 +1934,7 @@ public class TexturePack { } else if(line.startsWith("block:")) { List blknames = new ArrayList(); - List stateids = null; + BitSet stateids = null; int srctxtid = TXTID_TERRAINPNG; if (!terrain_ok) srctxtid = TXTID_INVALID; // Mark as not usable @@ -1977,8 +1978,19 @@ public class TexturePack { stateids = null; } else { - if (stateids == null) { stateids = new ArrayList(); } - stateids.add(getIntValue(varvals,av[1])); + if (stateids == null) { stateids = new BitSet(); } + // See if range + if (av[1].indexOf('-') >= 0) { + String[] tok = av[1].split("-"); + int v1 = getIntValue(varvals, tok[0]); + int v2 = getIntValue(varvals, tok[1]); + for (int v = v1; v <= v2; v++) { + stateids.set(v); + } + } + else { + stateids.set(getIntValue(varvals,av[1])); + } } } else if(av[0].equals("top") || av[0].equals("y-") || av[0].equals("face1")) { @@ -2143,7 +2155,7 @@ public class TexturePack { } else if(line.startsWith("copyblock:")) { List blknames = new ArrayList(); - List stateids = null; + BitSet stateids = null; line = line.substring(line.indexOf(':')+1); String[] args = line.split(","); String srcname = null; @@ -2163,8 +2175,19 @@ public class TexturePack { stateids = null; // Set all } else { - if (stateids == null) { stateids = new ArrayList(); } - stateids.add(getIntValue(varvals,av[1])); + if (stateids == null) { stateids = new BitSet(); } + // See if range + if (av[1].indexOf('-') >= 0) { + String[] tok = av[1].split("-"); + int v1 = getIntValue(varvals, tok[0]); + int v2 = getIntValue(varvals, tok[1]); + for (int v = v1; v <= v2; v++) { + stateids.set(v); + } + } + else { + stateids.set(getIntValue(varvals,av[1])); + } } } else if(av[0].equals("srcid")) { @@ -2210,7 +2233,7 @@ public class TexturePack { } } else { - for (Integer stateid : stateids) { + for (int stateid = stateids.nextSetBit(0); stateid >= 0; stateid = stateids.nextSetBit(stateid+1)) { DynmapBlockState dblk2 = dblk.getState(stateid); HDBlockStateTextureMap.copyToStateIndex(dblk2, map); } @@ -2259,7 +2282,7 @@ public class TexturePack { } else if(line.startsWith("texturemap:")) { List blknames = new ArrayList(); - List stateids = new ArrayList(); + BitSet stateids = null; String mapid = null; line = line.substring(line.indexOf(':') + 1); BlockTransparency trans = BlockTransparency.OPAQUE; @@ -2283,7 +2306,19 @@ public class TexturePack { stateids = null; } else { - stateids.add(getIntValue(varvals,av[1])); + if (stateids == null) { stateids = new BitSet(); } + // See if range + if (av[1].indexOf('-') >= 0) { + String[] tok = av[1].split("-"); + int v1 = getIntValue(varvals, tok[0]); + int v2 = getIntValue(varvals, tok[1]); + for (int v = v1; v <= v2; v++) { + stateids.set(v); + } + } + else { + stateids.set(getIntValue(varvals,av[1])); + } } } else if(av[0].equals("transparency")) { @@ -2316,10 +2351,6 @@ public class TexturePack { } } } - /* If no states, assume all */ - if (stateids.isEmpty()) { - stateids = null; - } /* If we have everything, build texture map */ if((blknames.size() > 0) && (mapid != null)) { addTextureIndex(mapid, blknames, stateids, trans, colorMult, custColorMult, blockset); diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/renderer/HeadRenderer.java b/DynmapCore/src/main/java/org/dynmap/hdmap/renderer/HeadRenderer.java new file mode 100644 index 00000000..a483cdff --- /dev/null +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/renderer/HeadRenderer.java @@ -0,0 +1,64 @@ +package org.dynmap.hdmap.renderer; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Map; + +import org.dynmap.renderer.CustomRenderer; +import org.dynmap.renderer.MapDataContext; +import org.dynmap.renderer.RenderPatch; +import org.dynmap.renderer.RenderPatchFactory; +import org.dynmap.renderer.RenderPatchFactory.SideVisible; + +public class HeadRenderer extends CustomRenderer { + private static final int NUM_DIRECTIONS = 16; + + private RenderPatch basemesh[]; + private RenderPatch meshes[][] = new RenderPatch[NUM_DIRECTIONS][]; + + @Override + public boolean initializeRenderer(RenderPatchFactory rpf, String blkname, BitSet blockdatamask, Map custparm) { + if(!super.initializeRenderer(rpf, blkname, blockdatamask, custparm)) + return false; + + ArrayList list = new ArrayList(); + list.add(rpf.getPatch(0.75, 0.0, 0.25, 0.25, 0.0, 0.25, 0.75, 0.0, 0.75, 0, 1, 0, 1, SideVisible.TOP, 0)); + list.add(rpf.getPatch(0.75, 0.5, 0.25, 0.25, 0.5, 0.25, 0.75, 0.5, 0.75, 0, 1, 0, 1, SideVisible.TOP, 0)); + RenderPatch side = rpf.getPatch(0.75, 0.0, 0.25, 0.25, 0.0, 0.25, 0.75, 0.5, 0.25, 0, 1, 0, 1, SideVisible.TOP, 0); + RenderPatch side2 = rpf.getRotatedPatch(side, 0, 90, 0, 0); + RenderPatch side3 = rpf.getRotatedPatch(side, 0, 180, 0, 0); + RenderPatch side4 = rpf.getRotatedPatch(side, 0, 270, 0, 0); + list.add(side4); + list.add(side); + list.add(side2); + list.add(side3); + basemesh = list.toArray(new RenderPatch[list.size()]); + return true; + } + + @Override + public int getMaximumTextureCount() { + return 6; + } + + private static final int faces[] = { 0, 1, 2, 3, 4, 5 }; + + @Override + public RenderPatch[] getRenderPatchList(MapDataContext ctx) { + int idx = ctx.getBlockType().stateIndex; + while(idx < 0) idx += NUM_DIRECTIONS; // Normalize (bad values from some mods) + if(idx < meshes.length) { + if(meshes[idx] == null) { + RenderPatchFactory rpf = ctx.getPatchFactory(); + RenderPatch[] rp = new RenderPatch[basemesh.length]; + for(int i = 0; i < rp.length; i++) { + rp[i] = rpf.getRotatedPatch(basemesh[i], 0, 45*idx/2, 0, faces[i]); + } + meshes[idx] = rp; + } + return meshes[idx]; + } + else + return meshes[0]; + } +} diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/renderer/WallHeadRenderer.java b/DynmapCore/src/main/java/org/dynmap/hdmap/renderer/WallHeadRenderer.java new file mode 100644 index 00000000..c1ec25a2 --- /dev/null +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/renderer/WallHeadRenderer.java @@ -0,0 +1,64 @@ +package org.dynmap.hdmap.renderer; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Map; + +import org.dynmap.renderer.CustomRenderer; +import org.dynmap.renderer.MapDataContext; +import org.dynmap.renderer.RenderPatch; +import org.dynmap.renderer.RenderPatchFactory; +import org.dynmap.renderer.RenderPatchFactory.SideVisible; + +public class WallHeadRenderer extends CustomRenderer { + private static final int NUM_DIRECTIONS = 16; + + private RenderPatch basemesh[]; + private RenderPatch meshes[][] = new RenderPatch[NUM_DIRECTIONS][]; + + @Override + public boolean initializeRenderer(RenderPatchFactory rpf, String blkname, BitSet blockdatamask, Map custparm) { + if(!super.initializeRenderer(rpf, blkname, blockdatamask, custparm)) + return false; + + ArrayList list = new ArrayList(); + list.add(rpf.getPatch(0.75, 0.0, 0.25, 0.25, 0.0, 0.25, 0.75, 0.0, 0.75, 0, 1, 0, 1, SideVisible.TOP, 0)); + list.add(rpf.getPatch(0.75, 0.5, 0.25, 0.25, 0.5, 0.25, 0.75, 0.5, 0.75, 0, 1, 0, 1, SideVisible.TOP, 0)); + RenderPatch side = rpf.getPatch(0.75, 0.0, 0.25, 0.25, 0.0, 0.25, 0.75, 0.5, 0.25, 0, 1, 0, 1, SideVisible.TOP, 0); + RenderPatch side2 = rpf.getRotatedPatch(side, 0, 90, 0, 0); + RenderPatch side3 = rpf.getRotatedPatch(side, 0, 180, 0, 0); + RenderPatch side4 = rpf.getRotatedPatch(side, 0, 270, 0, 0); + list.add(side4); + list.add(side); + list.add(side2); + list.add(side3); + basemesh = list.toArray(new RenderPatch[list.size()]); + return true; + } + + @Override + public int getMaximumTextureCount() { + return 6; + } + + private static final int faces[] = { 0, 1, 2, 3, 4, 5 }; + + @Override + public RenderPatch[] getRenderPatchList(MapDataContext ctx) { + int idx = ctx.getBlockType().stateIndex; + while(idx < 0) idx += NUM_DIRECTIONS; // Normalize (bad values from some mods) + if(idx < meshes.length) { + if(meshes[idx] == null) { + RenderPatchFactory rpf = ctx.getPatchFactory(); + RenderPatch[] rp = new RenderPatch[basemesh.length]; + for(int i = 0; i < rp.length; i++) { + rp[i] = rpf.getRotatedPatch(basemesh[i], 0, 45*idx/2, 0, faces[i]); + } + meshes[idx] = rp; + } + return meshes[idx]; + } + else + return meshes[0]; + } +} diff --git a/DynmapCore/src/main/resources/models_1.txt b/DynmapCore/src/main/resources/models_1.txt index 4e67815f..9b230574 100644 --- a/DynmapCore/src/main/resources/models_1.txt +++ b/DynmapCore/src/main/resources/models_1.txt @@ -239,10 +239,15 @@ ignore-updates:id=redstone_wall_torch,id=redstone_torch customblock:id=oak_fence,id=spruce_fence,id=birch_fence,id=jungle_fence,id=acacia_fence,id=dark_oak_fence,id=nether_brick_fence,class=org.dynmap.hdmap.renderer.FenceWallBlockRenderer,type=fence,link0=107 # Stone pressure plate -# Wooden pressure plate +# Oak pressure plate +# Spruce pressure plate +# Birch pressure plate +# Jungle pressure plate +# Acacia pressure plate +# Dark Oak pressure plate # Light weighted pressure plate # Heavy weighted pressure plate -boxblock:id=wooden_pressure_plate,id=stone_pressure_plate,id=light_weighted_pressure_plate,id=heavy_weighted_pressure_plate,xmin=0.0625,xmax=0.9275,ymax=0.0625,zmin=0.0625,zmax=0.9275 +boxblock:id=oak_pressure_plate,id=spruce_pressure_plate,id=birch_pressure_plate,id=jungle_pressure_plate,id=acacia_pressure_plate,id=dark_oak_pressure_plate,id=stone_pressure_plate,id=light_weighted_pressure_plate,id=heavy_weighted_pressure_plate,xmin=0.0625,xmax=0.9275,ymax=0.0625,zmin=0.0625,zmax=0.9275 # Trapdoor (closed) boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=12,data=13,data=14,data=15,data=28,data=29,data=30,data=31,data=44,data=45,data=46,data=47,data=60,data=61,data=62,data=63,ymax=0.1875 @@ -261,65 +266,56 @@ boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor # Carrot # Potatoes patchblock:id=wheat,id=carrots,id=potatoes,patch0=VertX075,patch1=VertX075@90,patch2=VertX025,patch3=VertX025@90 -# Stone Button - facing bottom -# Oak button - facing bottom -# Spruce button - facing bottom -# Birch button - facing bottom -# Jungle button - facing bottom -# Acacia button - facing bottom -# Dark oak button - facing bottom -boxblock:id=stone_button,id=wooden_button,data=0,data=8,xmin=0.3125,xmax=0.6875,ymin=0.875,zmin=0.375,zmax=0.625 -# Stone Button - facing south -# Wooden Button - facing south -boxblock:id=stone_button,id=wooden_button,data=1,data=9,xmax=0.125,ymin=0.375,ymax=0.625,zmin=0.3125,zmax=0.6875 -# Stone Button - facing north -# Wooden Button - facing north -boxblock:id=stone_button,id=wooden_button,data=2,data=10,xmin=0.875,ymin=0.375,ymax=0.625,zmin=0.3125,zmax=0.6875 -# Stone Button - facing west -# Wooden Button - facing west -boxblock:id=stone_button,id=wooden_button,data=3,data=11,zmax=0.125,ymin=0.375,ymax=0.625,xmin=0.3125,xmax=0.6875 -# Stone Button - facing east -# Wooden Button - facing east -boxblock:id=stone_button,id=wooden_button,data=4,data=12,zmin=0.875,ymin=0.375,ymax=0.625,xmin=0.3125,xmax=0.6875 -# Stone Button - facing top -# Wooden Button - facing top -boxblock:id=stone_button,id=wooden_button,data=5,data=13,xmin=0.3125,xmax=0.6875,ymax=0.125,zmin=0.375,zmax=0.625 +# Stone Button +# Oak button +# Spruce button +# Birch button +# Jungle button +# Acacia button +# Dark oak button +boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=0,data=8,xmin=0.3125,xmax=0.6875,ymin=0.875,zmin=0.375,zmax=0.625 +boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=1,data=9,xmax=0.125,ymin=0.375,ymax=0.625,zmin=0.3125,zmax=0.6875 +boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=2,data=10,xmin=0.875,ymin=0.375,ymax=0.625,zmin=0.3125,zmax=0.6875 +boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=3,data=11,zmax=0.125,ymin=0.375,ymax=0.625,xmin=0.3125,xmax=0.6875 +boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=4,data=12,zmin=0.875,ymin=0.375,ymax=0.625,xmin=0.3125,xmax=0.6875 +boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=5,data=13,xmin=0.3125,xmax=0.6875,ymax=0.125,zmin=0.375,zmax=0.625 + # Rails - flat - east/west # Powered rails - flat - east/west # Detector rails - flat - east/west # (157) Activator Rail -patchblock:id=rail,id=golden_rail,id=detector_rail,id=activator_rail,data=0,patch0=HorizY001ZTop +patchblock:id=rail,id=powered_rail,id=detector_rail,id=activator_rail,data=0,patch0=HorizY001ZTop # Powered rails - flat - east/west (powered) # (157) Activator Rail -patchblock:id=golden_rail,id=activator_rail,data=8,patch0=HorizY001ZTop +patchblock:id=powered_rail,id=activator_rail,data=8,patch0=HorizY001ZTop # Rails - flat - north/south # Powered rails - flat - north/south # Detector rails - flat - north/south # (157) Activator Rail -patchblock:id=rail,id=golden_rail,id=detector_rail,id=activator_rail,data=1,patch0=HorizY001ZTop@90 +patchblock:id=rail,id=powered_rail,id=detector_rail,id=activator_rail,data=1,patch0=HorizY001ZTop@90 # Powered rails - flat - north/south (powred) # (157) Activator Rail -patchblock:id=golden_rail,id=activator_rail,data=9,patch0=HorizY001ZTop@90 +patchblock:id=powered_rail,id=activator_rail,data=9,patch0=HorizY001ZTop@90 # Rails - ascending to south # Powered rails - ascending to south (powered or unpowered) # Detector rails - ascending to south # (157) Activator Rail -patchblock:id=rail,id=golden_rail,id=detector_rail,id=activator_rail,data=2,data=10,patch0=SlopeXUpZTop +patchblock:id=rail,id=powered_rail,id=detector_rail,id=activator_rail,data=2,data=10,patch0=SlopeXUpZTop # Rails - ascending to north # Powered rails - ascending to north # Detector rails - ascending to north # (157) Activator Rail -patchblock:id=rail,id=golden_rail,id=detector_rail,id=activator_rail,data=3,data=11,patch0=SlopeXUpZTop@180 +patchblock:id=rail,id=powered_rail,id=detector_rail,id=activator_rail,data=3,data=11,patch0=SlopeXUpZTop@180 # Rails - ascending to east # Powered rails - ascending to east # Detector rails - ascending to east # (157) Activator Rail -patchblock:id=rail,id=golden_rail,id=detector_rail,id=activator_rail,data=4,data=12,patch0=SlopeXUpZTop@270 +patchblock:id=rail,id=powered_rail,id=detector_rail,id=activator_rail,data=4,data=12,patch0=SlopeXUpZTop@270 # Rails - ascending to west # Powered rails - ascending to west # Detector rails - ascending to west # (157) Activator Rail -patchblock:id=rail,id=golden_rail,id=detector_rail,id=activator_rail,data=5,data=13,patch0=SlopeXUpZTop@90 +patchblock:id=rail,id=powered_rail,id=detector_rail,id=activator_rail,data=5,data=13,patch0=SlopeXUpZTop@90 # Rails - northeast corner patchblock:id=rail,data=6,patch0=HorizY001ZTop@90 # Rails - southeast corner @@ -490,8 +486,9 @@ rotate:id=white_bed,data=0,rot=180 block:id=white_bed,id=orange_bed,id=magenta_bed,id=light_blue_bed,id=yellow_bed,id=lime_bed,id=pink_bed,id=gray_bed,id=light_gray_bed,id=cyan_bed,id=purple_bed,id=blue_bed,id=brown_bed,id=green_bed,id=red_bed,id=black_bed,data=3,scale=16 rotate:id=white_bed,data=0,rot=270 -# Wooden/Iron Door -customblock:id=wooden_door,id=iron_door,class=org.dynmap.hdmap.renderer.DoorRenderer +# Oak door +# Iron Door +customblock:id=oak_door,id=iron_door,class=org.dynmap.hdmap.renderer.DoorRenderer # Wall lever, facing south patchblock:id=lever,data=1,patch0=WLeverBase1@270,patch1=WLeverBase2@270,patch2=WLeverBase3@270,patch3=WLeverBase4@270,patch4=WLeverBase5@270,patch5=WLeverSide1@270,patch6=WLeverSide2@270,patch7=WLeverSide3@270,patch8=WLeverSide4@270 @@ -751,6 +748,14 @@ patchblock:id=tall_seagrass,id=seagrass,id=fern,id=grass,id=cobweb,id=tall_grass # Red mushroom patchblock:id=dandelion,id=poppy,id=blue_orchid,id=allium,id=azure_bluet,id=red_tulip,id=orange_tulip,id=white_tulip,id=pink_tulip,id=oxeye_daisy,id=brown_mushroom,id=red_mushroom,patch0=VertX1Z0ToX0Z1,patch1=VertX1Z0ToX0Z1@90 +# Sunflower +# Lilac +# Rose bush +# Peony +# Tall grass +# Large fern +patchblock:id=sunflower,id=lilac,id=rose_bush,id=peony,id=tall_grass,id=large_fern,patch0=VertX1Z0ToX0Z1,patch1=VertX1Z0ToX0Z1@90 + # Sapling (oak, spruce, birch, jungle, acacia, dark oak) patchblock:id=oak_sapling,id=spruce_sapling,id=birch_sapling,id=jungle_sapling,id=acacia_sapling,id=dark_oak_sapling,patch0=VertX1Z0ToX0Z1,patch1=VertX1Z0ToX0Z1@90 @@ -784,8 +789,8 @@ patchblock:id=vine,data=13,patch0=VertX0In@270,patch1=VertX0In@90,patch2=VertX0I patchblock:id=vine,data=11,patch0=VertX0In,patch1=VertX0In@180,patch2=VertX0In@270 # Vines - N+S+E+W sides of block patchblock:id=vine,data=15,patch0=VertX0In@270,patch1=VertX0In@90,patch2=VertX0In@180,patch3=VertX0In -# Fence gate -customblock:id=fence_gate,class=org.dynmap.hdmap.renderer.FenceGateBlockRenderer +# Oak fence gate +customblock:id=oak_fence_gate,class=org.dynmap.hdmap.renderer.FenceGateBlockRenderer # Pumpkin stem # Mellon stem block:id=pumpkin_stem,id=melon_stem,scale=16 @@ -807,28 +812,28 @@ layer:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ---------------- ---------------- # Lily pad -patchblock:id=waterlily,patch0=HorizY001ZTop +patchblock:id=lily_pad,patch0=HorizY001ZTop # Water (1 down) # Lava (1 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=1,ymax=0.875 +boxblock:id=water,id=lava,data=1,ymax=0.875 # Water (2 down) # Lava (2 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=2,ymax=0.75 +boxblock:id=water,id=lava,data=2,ymax=0.75 # Water (3 down) # Lava (3 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=3,ymax=0.625 +boxblock:id=water,id=lava,data=3,ymax=0.625 # Water (4 down) # Lava (4 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=4,ymax=0.5 +boxblock:id=water,id=lava,data=4,ymax=0.5 # Water (5 down) # Lava (5 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=5,ymax=0.375 +boxblock:id=water,id=lava,data=5,ymax=0.375 # Water (6 down) # Lava (6 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=6,ymax=0.25 +boxblock:id=water,id=lava,data=6,ymax=0.25 # Water (7 down) # Lava (7 down) -boxblock:id=flowing_water,id=water,id=flowing_lava,id=lava,data=7,ymax=0.125 +boxblock:id=water,id=lava,data=7,ymax=0.125 # Enchantment Table boxblock:id=enchanting_table,ymax=0.75 @@ -1025,12 +1030,12 @@ patchblock:id=flower_pot,data=1,data=2,data=7,data=8,patch0=FlowerPotTop,patch1= patchblock:id=flower_pot,data=3,data=4,data=5,data=6,data=10,data=11,patch0=FlowerPotTop,patch1=FlowerPotBottom,patch2=FlowerPotSide,patch3=FlowerPotSide@90,patch4=FlowerPotSide@180,patch5=FlowerPotSide@270,patch6=FlowerPotDirt,patch7=FlowerPotPlant,patch8=FlowerPotPlant@90 # Flower pot with cactus patchblock:id=flower_pot,data=9,patch0=FlowerPotTop,patch1=FlowerPotBottom,patch2=FlowerPotSide,patch3=FlowerPotSide@90,patch4=FlowerPotSide@180,patch5=FlowerPotSide@270,patch6=FlowerPotDirt,patch7=FlowerPotCactusSide,patch8=FlowerPotCactusSide@90,,patch9=FlowerPotCactusSide@180,,patch10=FlowerPotCactusSide@270,,patch11=FlowerPotCactusTop -# Head -patch:id=HeadTop,Ox=0.75,Oy=0.5,Oz=0.75,Ux=0.25,Uy=0.5,Uz=0.75,Vx=0.75,Vy=0.5,Vz=0.25,visibility=bottom -patch:id=HeadBottom,Ox=0.25,Oy=0.0,Oz=0.25,Ux=0.75,Uy=0.0,Uz=0.25,Vx=0.25,Vy=0.0,Vz=0.75,visibility=top -patch:id=HeadSide,Ox=0.75,Oy=0.0,Oz=0.25,Ux=0.25,Uy=0.0,Uz=0.25,Vx=0.75,Vy=0.5,Vz=0.25,visibility=top -#patchblock:id=skull,patch0=HeadTop,patch1=HeadBottom,patch2=HeadSide,patch3=HeadSide@90,patch4=HeadSide@180,patch5=HeadSide@270 -customblock:id=skull,class=org.dynmap.hdmap.renderer.SkullRenderer + +# Wall head (TODO: Fix renderer) +customblock:id=skeleton_wall_skull,id=wither_skeleton_wall_skull,id=zombie_wall_head,id=player_wall_head,id=creeper_wall_head,id=dragon_wall_head,class=org.dynmap.hdmap.renderer.WallHeadRenderer +# Head (TODO: Fix renderer) +customblock:id=skeleton_skull,id=wither_skeleton_skull,id=zombie_head,id=player_head,id=creeper_head,id=dragon_head,class=org.dynmap.hdmap.renderer.HeadRenderer + # Anvil patch:id=AnvilBaseSide,Ox=0.0,Oy=0.0,Oz=0.125,Ux=1.0,Uy=0.0,Uz=0.125,Vx=0.0,Vy=1.0,Vz=0.125,Umin=0.125,Umax=0.875,Vmin=0.0,Vmax=0.25,visibility=both patch:id=AnvilBaseTop,Ox=0.0,Oy=0.25,Oz=0.0,Ux=1.0,Uy=0.25,Uz=0.0,Vx=0.0,Vy=0.25,Vz=1.0,Umin=0.125,Umax=0.875,Vmin=0.125,Vmax=0.875,visibility=bottom @@ -1052,7 +1057,7 @@ patchrotate:id=anvil,data=1,rot=90 patchblock:id=anvil,data=3,data=7,data=11,data=15 patchrotate:id=anvil,data=1,rot=180 -# (151) Daylight Sensor +# Daylight Sensor boxblock:id=daylight_detector,ymax=0.375 # (149) Redstone Comparator (inactive) @@ -1187,8 +1192,10 @@ layer:11,12,13,14,15 **************** **************** -# Colored glass pane (160) -customblock:id=stained_glass_pane,class=org.dynmap.hdmap.renderer.PaneRenderer +# Glass pane +customblock:id=glass_pane,class=org.dynmap.hdmap.renderer.PaneRenderer + +# Colored glass pane customblock:id=white_stained_glass_pane,class=org.dynmap.hdmap.renderer.PaneRenderer customblock:id=orange_stained_glass_pane,class=org.dynmap.hdmap.renderer.PaneRenderer customblock:id=magenta_stained_glass_pane,class=org.dynmap.hdmap.renderer.PaneRenderer @@ -1212,9 +1219,6 @@ customblock:id=acacia_stairs,id=dark_oak_stairs,class=org.dynmap.hdmap.renderer. # (171) Carpet boxblock:id=black_carpet,id=red_carpet,id=green_carpet,id=brown_carpet,id=blue_carpet,id=purple_carpet,id=cyan_carpet,id=light_gray_carpet,id=gray_carpet,id=pink_carpet,id=lime_carpet,id=yellow_carpet,id=light_blue_carpet,id=magenta_carpet,id=orange_carpet,id=white_carpet,ymax=0.0625 -# (175) Double Plant -customblock:id=double_plant,data=0,data=1,data=2,data=3,data=4,data=5,class=org.dynmap.hdmap.renderer.PlantRenderer,metacnt=6 -customblock:id=double_plant,data=8,data=9,data=10,data=11,data=12,data=13,data=14,data=15,class=org.dynmap.hdmap.renderer.PlantRenderer,metacnt=6,metasrc=below # Iron Trapdoor boxblock:id=iron_trapdoor,data=0,data=1,data=2,data=3,ymax=0.1875 @@ -1224,9 +1228,6 @@ boxblock:id=iron_trapdoor,data=6,data=14,xmin=0.8125 boxblock:id=iron_trapdoor,data=7,data=15,xmax=0.1875 boxblock:id=iron_trapdoor,data=8,data=9,data=10,data=11,ymin=0.8125 -# Inverted Daylight Sensor -boxblock:id=daylight_detector_inverted,ymax=0.375 - # Red Sandstone stairs customblock:id=red_sandstone_stairs,class=org.dynmap.hdmap.renderer.StairStateRenderer diff --git a/DynmapCore/src/main/resources/texture_1.txt b/DynmapCore/src/main/resources/texture_1.txt index f81479db..ea166f46 100644 --- a/DynmapCore/src/main/resources/texture_1.txt +++ b/DynmapCore/src/main/resources/texture_1.txt @@ -345,20 +345,20 @@ texture:id=damaged_anvil_top texture:id=tripwire_hook texture:id=podzol_top texture:id=podzol_side -texture:id=double_plant_fern_bottom -texture:id=double_plant_fern_top -texture:id=double_plant_grass_bottom -texture:id=double_plant_grass_top -texture:id=double_plant_paeonia_bottom -texture:id=double_plant_paeonia_top -texture:id=double_plant_rose_bottom -texture:id=double_plant_rose_top -texture:id=double_plant_sunflower_back -texture:id=double_plant_sunflower_bottom -texture:id=double_plant_sunflower_front -texture:id=double_plant_sunflower_top -texture:id=double_plant_syringa_bottom -texture:id=double_plant_syringa_top +texture:id=large_fern_bottom +texture:id=large_fern_top +texture:id=tall_grass_bottom +texture:id=tall_grass_top +texture:id=peony_bottom +texture:id=peony_top +texture:id=rose_bush_bottom +texture:id=rose_bush_top +texture:id=sunflower_back +texture:id=sunflower_bottom +texture:id=sunflower_front +texture:id=sunflower_top +texture:id=lilac_bottom +texture:id=lilac_top texture:id=black_stained_glass,material=GLASS texture:id=blue_stained_glass,material=GLASS texture:id=brown_stained_glass,material=GLASS @@ -391,7 +391,7 @@ texture:id=red_stained_glass_pane_top,material=GLASS texture:id=light_gray_stained_glass_pane_top,material=GLASS texture:id=white_stained_glass_pane_top,material=GLASS texture:id=yellow_stained_glass_pane_top,material=GLASS -texture:id=ice_packed +texture:id=packed_ice texture:id=acacia_leaves texture:id=dark_oak_leaves texture:id=acacia_log @@ -414,11 +414,11 @@ texture:id=polished_diorite texture:id=andesite texture:id=polished_andesite texture:id=wet_sponge -texture:id=slime +texture:id=slime_block texture:id=iron_trapdoor texture:id=prismarine_bricks -texture:id=prismarine_dark -texture:id=prismarine_rough +texture:id=dark_prismarine +texture:id=prismarine texture:id=sea_lantern texture:id=daylight_detector_inverted_top texture:id=red_sandstone_bottom @@ -450,11 +450,11 @@ texture:id=chorus_flower_dead texture:id=purpur_block texture:id=purpur_pillar_top texture:id=purpur_pillar -texture:id=end_bricks -texture:id=beetroots_stage_0 -texture:id=beetroots_stage_1 -texture:id=beetroots_stage_2 -texture:id=beetroots_stage_3 +texture:id=end_stone_bricks +texture:id=beetroots_stage0 +texture:id=beetroots_stage1 +texture:id=beetroots_stage2 +texture:id=beetroots_stage3 texture:id=grass_path_top texture:id=grass_path_side texture:id=command_block_back @@ -816,17 +816,17 @@ block:id=sticky_piston,data=4,north=0:piston_top_sticky,south=0:piston_bottom,to # Sticky piston - facing south block:id=sticky_piston,data=5,north=0:piston_bottom,south=0:piston_top_sticky,top=5000:piston_side,bottom=0:piston_side,east=4000:piston_side,west=6000:piston_side,transparency=TRANSPARENT # Sticky piston - extended facing down (TODO: side) -block:id=sticky_piston,data=8,top=0:piston_bottom,bottom=0:piston_inner,allsides=5262,transparency=TRANSPARENT +block:id=sticky_piston,data=6,top=0:piston_bottom,bottom=0:piston_inner,allsides=5262,transparency=TRANSPARENT # Sticky piston - extended facing up (TODO: side) -block:id=sticky_piston,data=9,top=0:piston_inner,bottom=0:piston_bottom,allsides=262,transparency=TRANSPARENT +block:id=sticky_piston,data=7,top=0:piston_inner,bottom=0:piston_bottom,allsides=262,transparency=TRANSPARENT # Sticky piston - extended facing east (TODO: side) -block:id=sticky_piston,data=10,east=0:piston_inner,west=0:piston_bottom,top=6262,bottom=4262,north=4262,south=6262,transparency=TRANSPARENT +block:id=sticky_piston,data=8,east=0:piston_inner,west=0:piston_bottom,top=6262,bottom=4262,north=4262,south=6262,transparency=TRANSPARENT # Sticky piston - extended facing west (TODO: side) -block:id=sticky_piston,data=11,west=0:piston_inner,east=0:piston_bottom,top=4262,bottom=6262,north=6262,south=4262,transparency=TRANSPARENT +block:id=sticky_piston,data=9,west=0:piston_inner,east=0:piston_bottom,top=4262,bottom=6262,north=6262,south=4262,transparency=TRANSPARENT # Sticky piston - extended facing north (TODO: side) -block:id=sticky_piston,data=12,north=0:piston_inner,south=0:piston_bottom,top=262,bottom=5262,east=6262,west=4262,transparency=TRANSPARENT +block:id=sticky_piston,data=10,north=0:piston_inner,south=0:piston_bottom,top=262,bottom=5262,east=6262,west=4262,transparency=TRANSPARENT # Sticky piston - extended facing south (TODO: side) -block:id=sticky_piston,data=13,north=0:piston_bottom,south=0:piston_inner,top=5262,bottom=262,east=4262,west=6262,transparency=TRANSPARENT +block:id=sticky_piston,data=11,north=0:piston_bottom,south=0:piston_inner,top=5262,bottom=262,east=4262,west=6262,transparency=TRANSPARENT # Web block:id=cobweb,patch0-1=0:cobweb,transparency=TRANSPARENT # Grass @@ -1458,19 +1458,21 @@ block:id=light_weighted_pressure_plate,allfaces=0:gold_block,stdrot=true,transpa # Heavy weighted pressure plate block:id=heavy_weighted_pressure_plate,allfaces=0:iron_block,stdrot=true,transparency=TRANSPARENT -# (149) Redstone Comparator (inactive) -block:id=unpowered_comparator,data=0,data=4,data=8,data=12,top=6000:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -block:id=unpowered_comparator,data=1,data=5,data=9,data=13,top=5000:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -block:id=unpowered_comparator,data=2,data=6,data=10,data=14,top=4000:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -block:id=unpowered_comparator,data=3,data=7,data=11,data=15,top=0:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -# (150) Redstone Comparator (active) -block:id=powered_comparator,data=0,data=4,data=8,data=12,top=6000:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -block:id=powered_comparator,data=1,data=5,data=9,data=13,top=5000:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -block:id=powered_comparator,data=2,data=6,data=10,data=14,top=4000:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -block:id=powered_comparator,data=3,data=7,data=11,data=15,top=0:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +# Redstone Comparator (active) +block:id=comparator,data=0,data=2,top=6000:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +block:id=comparator,data=4,data=6,top=5000:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +block:id=comparator,data=8,data=10,top=4000:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +block:id=comparator,data=12,data=14,top=0:comparator_on,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +# Redstone Comparator (inactive) +block:id=comparator,data=1,data=3,top=6000:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +block:id=comparator,data=5,data=7,top=5000:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +block:id=comparator,data=9,data=11,top=4000:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT +block:id=comparator,data=13,data=15,top=0:comparator,allsides=0:stone,bottom=0:stone,transparency=TRANSPARENT -# (151) Daylight Sensor -block:id=daylight_detector,data=*,allsides=0:daylight_detector_side,bottom=0:daylight_detector_side,top=0:daylight_detector_top,stdrot=true,transparency=TRANSPARENT +# Daylight Sensor +# Inverted Daylight Sensor +block:id=daylight_detector,data=16-31,allsides=0:daylight_detector_side,bottom=0:daylight_detector_side,top=0:daylight_detector_top,stdrot=true,transparency=TRANSPARENT +block:id=daylight_detector,data=0-15,allsides=0:daylight_detector_side,bottom=0:daylight_detector_side,top=0:daylight_detector_inverted_top,stdrot=true,transparency=TRANSPARENT # (152) Block of Redstone block:id=redstone_block,data=*,allfaces=0:redstone_block,stdrot=true @@ -1481,41 +1483,39 @@ block:id=nether_quartz_ore,data=*,allfaces=0:nether_quartz_ore,stdrot=true # (154) Hopper block:id=hopper,data=*,allsides=0:hopper_outside,top=0:hopper_inside,bottom=0:hopper_outside,stdrot=true -# (155:0) Block of Quartz -block:id=quartz_block,data=0,top=0:quartz_block_top,bottom=0:quartz_block_bottom,allsides=0:quartz_block_side,stdrot=true -# (155:1) Chiseled Quartz Block -block:id=quartz_block,data=1,top=0:chiseled_quartz_block_top,bottom=0:quartz_block_bottom,allsides=0:chiseled_quartz_block,stdrot=true -# (155:2) Pillar Quartz Block (vertical) -block:id=quartz_block,data=2,top=0:quartz_pillar_top,bottom=0:quartz_pillar_top,allsides=0:quartz_pillar,stdrot=true -# (155:3) Pillar Quartz Block (north-south) -block:id=quartz_block,data=3,top=4000:quartz_pillar,bottom=4000:quartz_pillar,east=6000:quartz_pillar,west=6000:quartz_pillar,north=0:quartz_pillar_top,south=0:quartz_pillar_top,stdrot=true -# (155:4) Pillar Quartz Block (east-west) -block:id=quartz_block,data=4,top=0:quartz_pillar,bottom=0:quartz_pillar,north=6000:quartz_pillar,south=6000:quartz_pillar,east=0:quartz_pillar_top,west=0:quartz_pillar_top,stdrot=true +# Block of Quartz +block:id=quartz_block,top=0:quartz_block_top,bottom=0:quartz_block_bottom,allsides=0:quartz_block_side,stdrot=true +# Chiseled Quartz Block +block:id=chiseled_quartz_block,top=0:chiseled_quartz_block_top,bottom=0:quartz_block_bottom,allsides=0:chiseled_quartz_block,stdrot=true +# Quartz Pillar +block:id=quartz_pillar,data=0,top=0:quartz_pillar_top,bottom=0:quartz_pillar_top,allsides=0:quartz_pillar,stdrot=true +block:id=quartz_pillar,data=1,top=4000:quartz_pillar,bottom=4000:quartz_pillar,east=6000:quartz_pillar,west=6000:quartz_pillar,north=0:quartz_pillar_top,south=0:quartz_pillar_top,stdrot=true +block:id=quartz_pillar,data=2,top=0:quartz_pillar,bottom=0:quartz_pillar,north=6000:quartz_pillar,south=6000:quartz_pillar,east=0:quartz_pillar_top,west=0:quartz_pillar_top,stdrot=true -# (156) Quartz Stairs -block:id=quartz_stairs,data=*,patch0=0:quartz_block_side,patch1=0:quartz_block_top,patch2=0:quartz_block_bottom,transparency=SEMITRANSPARENT +# Quartz Stairs +block:id=quartz_stairs,patch0=0:quartz_block_side,patch1=0:quartz_block_top,patch2=0:quartz_block_bottom,transparency=SEMITRANSPARENT -# (157) Activator Rail +# Activator Rail # Activator rail - heading east-west - unpowered -block:id=activator_rail,data=0,patch0=0:activator_rail,transparency=TRANSPARENT +block:id=activator_rail,data=7,patch0=0:activator_rail,transparency=TRANSPARENT # Activator rail - incline to east - unpowered # Activator rail - incline to west - unpowered -block:id=activator_rail,data=4,data=5,patch0=0:activator_rail,transparency=TRANSPARENT +block:id=activator_rail,data=8,data=9,patch0=0:activator_rail,transparency=TRANSPARENT # Activator rail - heading east-west - powered -block:id=activator_rail,data=8,patch0=0:activator_rail_on,transparency=TRANSPARENT +block:id=activator_rail,data=1,patch0=0:activator_rail_on,transparency=TRANSPARENT # Activator rail - incline to east - powered # Activator rail - incline to west - powered -block:id=activator_rail,data=12,data=13,patch0=0:activator_rail_on,transparency=TRANSPARENT +block:id=activator_rail,data=2,data=3,patch0=0:activator_rail_on,transparency=TRANSPARENT # Activator rail - heading north-south - unpowered -block:id=activator_rail,data=1,patch0=0:activator_rail,transparency=TRANSPARENT +block:id=activator_rail,data=6,patch0=0:activator_rail,transparency=TRANSPARENT # Activator rail - inclined to north - unpowered # Activator rail - inclined to south - unpowered -block:id=activator_rail,data=2,data=3,patch0=0:activator_rail,transparency=TRANSPARENT +block:id=activator_rail,data=10,data=11,patch0=0:activator_rail,transparency=TRANSPARENT # Activator rail - heading north-south - powered -block:id=activator_rail,data=9,patch0=0:activator_rail_on,transparency=TRANSPARENT +block:id=activator_rail,data=0,patch0=0:activator_rail_on,transparency=TRANSPARENT # Activator rail - inclined to north - powered # Activator rail - inclined to south - powered -block:id=activator_rail,data=10,data=11,patch0=0:activator_rail_on,transparency=TRANSPARENT +block:id=activator_rail,data=4,data=5,patch0=0:activator_rail_on,transparency=TRANSPARENT # (158) Dropper block:id=dropper,data=0,top=0:furnace_top,east=0:furnace_top,south=0:furnace_top,north=0:furnace_top,west=0:furnace_top,bottom=6000:dropper_front_vertical @@ -1589,30 +1589,43 @@ block:id=terracotta,data=*,stdrot=true,allfaces=0:terracotta # (173) Coal block block:id=coal_block,data=*,stdrot=true,allfaces=0:coal_block # (174) Packed Ice -block:id=packed_ice,allfaces=0:ice_packed,stdrot=true -# (175) Double Plant -block:id=double_plant,data=0,data=1,data=2,data=3,data=4,data=5,patch0=0:double_plant_sunflower_bottom,patch1=0:double_plant_syringa_bottom,patch2=1000:double_plant_grass_bottom,patch3=1000:double_plant_fern_bottom,patch4=0:double_plant_rose_bottom,patch5=0:double_plant_paeonia_bottom,transparency=TRANSPARENT -block:id=double_plant,data=8,data=9,data=10,data=11,data=12,data=13,data=14,data=15,patch0=0:double_plant_sunflower_top,patch1=0:double_plant_syringa_top,patch2=1000:double_plant_grass_top,patch3=1000:double_plant_fern_top,patch4=0:double_plant_rose_top,patch5=0:double_plant_paeonia_top,transparency=TRANSPARENT +block:id=packed_ice,allfaces=0:packed_ice,stdrot=true +# Sunflower +block:id=sunflower,data=0,patch0-1=0:sunflower_top,transparency=TRANSPARENT +block:id=sunflower,data=1,patch0-1=0:sunflower_bottom,transparency=TRANSPARENT +# Lilac +block:id=lilac,data=0,patch0-1=0:lilac_top,transparency=TRANSPARENT +block:id=lilac,data=1,patch0-1=0:lilac_bottom,transparency=TRANSPARENT +# Rose bush +block:id=rose_bush,data=0,patch0-1=0:rose_bush_top,transparency=TRANSPARENT +block:id=rose_bush,data=1,patch0-1=0:rose_bush_bottom,transparency=TRANSPARENT +# Peony +block:id=peony,data=0,patch0-1=0:peony_top,transparency=TRANSPARENT +block:id=peony,data=1,patch0-1=0:peony_bottom,transparency=TRANSPARENT +# Tall grass +block:id=tall_grass,data=0,patch0-1=1000:tall_grass_top,transparency=TRANSPARENT +block:id=tall_grass,data=1,patch0-1=1000:tall_grass_bottom,transparency=TRANSPARENT +# Large fern +block:id=large_fern,data=0,patch0-1=1000:large_fern_top,transparency=TRANSPARENT +block:id=large_fern,data=1,patch0-1=1000:large_fern_bottom,transparency=TRANSPARENT # Wet Sponge block:id=wet_sponge,allfaces=0:wet_sponge,stdrot=true # Slime Block -block:id=slime,data=*,allfaces=0:slime,stdrot=true +block:id=slime_block,data=*,allfaces=0:slime_block,stdrot=true # Barrier block:id=barrier,data=*,transparency=TRANSPARENT # Iron Trapdoor block:id=iron_trapdoor,allfaces=0:iron_trapdoor,stdrot=true,transparency=TRANSPARENT # Prismarine -block:id=prismarine,data=0,allfaces=0:prismarine_rough,stdrot=true +block:id=prismarine,allfaces=0:prismarine,stdrot=true # Prismarine Bricks -block:id=prismarine,data=1,allfaces=0:prismarine_bricks,stdrot=true +block:id=prismarine_bricks,allfaces=0:prismarine_bricks,stdrot=true # Dark Prismarine -block:id=prismarine,data=2,allfaces=0:prismarine_dark,stdrot=true +block:id=dark_prismarine,allfaces=0:dark_prismarine,stdrot=true # Sea Lantern block:id=sea_lantern,data=*,allfaces=0:sea_lantern,stdrot=true -# Inverted Daylight Sensor -block:id=daylight_detector_inverted,data=*,allsides=0:daylight_detector_side,bottom=0:daylight_detector_side,top=0:daylight_detector_inverted_top,stdrot=true,transparency=TRANSPARENT # Red Sandstone block:id=red_sandstone,bottom=0:red_sandstone_bottom,top=0:red_sandstone_top,allsides=0:red_sandstone,stdrot=true @@ -1626,13 +1639,6 @@ block:id=cut_red_sandstone,allsides=0:cut_red_sandstone,topbottom=0:red_sandston # Red Sandstone stairs block:id=red_sandstone_stairs,data=*,patch0=0:red_sandstone,patch1=0:red_sandstone_top,patch2=0:red_sandstone_bottom,transparency=SEMITRANSPARENT -# Red Sandstone Slab (Double) -block:id=double_stone_slab2,data=0,bottom=0:red_sandstone_bottom,top=0:red_sandstone_top,allsides=0:red_sandstone,stdrot=true -block:id=double_stone_slab2,data=8,allfaces=0:red_sandstone_top,stdrot=true - -# Red Sandstone Slab -block:id=stone_slab2,data=0,data=8,bottom=0:red_sandstone_bottom,top=0:red_sandstone_top,allsides=0:red_sandstone,stdrot=true,transparency=SEMITRANSPARENT - # Fence Gate (Spruce) block:id=spruce_fence_gate,patch0-2=0:spruce_planks,stdrot=true,transparency=TRANSPARENT @@ -1694,28 +1700,20 @@ block:id=purpur_block,data=*,stdrot=true,allfaces=0:purpur_block # Purpur Pillar block:id=purpur_pillar,data=0,allsides=0:purpur_pillar,topbottom=0:purpur_pillar_top,stdrot=true -block:id=purpur_pillar,data=4,north=0:purpur_pillar_top,south=0:purpur_pillar_top,east=4000:purpur_pillar,west=4000:purpur_pillar,top=0:purpur_pillar,bottom=0:purpur_pillar -block:id=purpur_pillar,data=8,north=4000:purpur_pillar,south=4000:purpur_pillar,east=0:purpur_pillar_top,west=0:purpur_pillar_top,top=4000:purpur_pillar,bottom=4000:purpur_pillar -block:id=purpur_pillar,data=12,allfaces=0:purpur_pillar,stdrot=true +block:id=purpur_pillar,data=1,north=0:purpur_pillar_top,south=0:purpur_pillar_top,east=4000:purpur_pillar,west=4000:purpur_pillar,top=0:purpur_pillar,bottom=0:purpur_pillar +block:id=purpur_pillar,data=2,north=4000:purpur_pillar,south=4000:purpur_pillar,east=0:purpur_pillar_top,west=0:purpur_pillar_top,top=4000:purpur_pillar,bottom=4000:purpur_pillar # Purpur Stairs block:id=purpur_stairs,data=*,patch0-2=0:purpur_block,transparency=SEMITRANSPARENT -# Purpur Slab (Double) -block:id=purpur_double_slab,data=0,bottom=0:purpur_block,top=0:purpur_block,allsides=0:purpur_block,stdrot=true -block:id=purpur_double_slab,data=8,allfaces=0:purpur_block,stdrot=true - -# Purpur Slab -block:id=purpur_slab,data=0,data=8,bottom=0:purpur_block,top=0:purpur_block,allsides=0:purpur_block,stdrot=true,transparency=SEMITRANSPARENT - # End Stone Bricks -block:id=end_bricks,data=*,stdrot=true,allfaces=0:end_bricks +block:id=end_stone_bricks,data=*,stdrot=true,allfaces=0:end_stone_bricks # Beetroot -block:id=beetroots,data=0,patch0-3=0:beetroots_stage_0,transparency=TRANSPARENT -block:id=beetroots,data=1,patch0-3=0:beetroots_stage_1,transparency=TRANSPARENT -block:id=beetroots,data=2,patch0-3=0:beetroots_stage_2,transparency=TRANSPARENT -block:id=beetroots,data=3,patch0-3=0:beetroots_stage_3,transparency=TRANSPARENT +block:id=beetroots,data=0,patch0-3=0:beetroots_stage0,transparency=TRANSPARENT +block:id=beetroots,data=1,patch0-3=0:beetroots_stage1,transparency=TRANSPARENT +block:id=beetroots,data=2,patch0-3=0:beetroots_stage2,transparency=TRANSPARENT +block:id=beetroots,data=3,patch0-3=0:beetroots_stage3,transparency=TRANSPARENT # Grass Path block:id=grass_path,allsides=0:grass_path_side,top=0:grass_path_top,bottom=0:dirt,stdrot=true,transparency=SEMITRANSPARENT @@ -1730,12 +1728,12 @@ block:id=repeating_command_block,data=2,top=6000:repeating_command_block_side,bo block:id=repeating_command_block,data=3,top=4000:repeating_command_block_side,bottom=4000:repeating_command_block_side,south=4000:repeating_command_block_side,north=4000:repeating_command_block_side,east=0:repeating_command_block_back,west=0:repeating_command_block_front block:id=repeating_command_block,data=4,top=0:repeating_command_block_side,bottom=0:repeating_command_block_side,south=0:repeating_command_block_back,north=0:repeating_command_block_front,east=4000:repeating_command_block_side,west=4000:repeating_command_block_side block:id=repeating_command_block,data=5,top=5000:repeating_command_block_side,bottom=5000:repeating_command_block_side,south=0:repeating_command_block_front,north=0:repeating_command_block_back,east=6000:repeating_command_block_side,west=6000:repeating_command_block_side -block:id=repeating_command_block,data=8,top=4000:repeating_command_block_back,bottom=4000:repeating_command_block_front,south=5000:repeating_command_block_conditional,north=5000:repeating_command_block_conditional,east=5000:repeating_command_block_conditional,west=5000:repeating_command_block_conditional -block:id=repeating_command_block,data=9,top=4000:repeating_command_block_front,bottom=4000:repeating_command_block_back,south=0:repeating_command_block_conditional,north=0:repeating_command_block_conditional,east=0:repeating_command_block_conditional,west=0:repeating_command_block_conditional -block:id=repeating_command_block,data=10,top=6000:repeating_command_block_conditional,bottom=6000:repeating_command_block_conditional,south=6000:repeating_command_block_conditional,north=6000:repeating_command_block_conditional,east=0:repeating_command_block_front,west=0:repeating_command_block_back -block:id=repeating_command_block,data=11,top=4000:repeating_command_block_conditional,bottom=4000:repeating_command_block_conditional,south=4000:repeating_command_block_conditional,north=4000:repeating_command_block_conditional,east=0:repeating_command_block_back,west=0:repeating_command_block_front -block:id=repeating_command_block,data=12,top=0:repeating_command_block_conditional,bottom=0:repeating_command_block_conditional,south=0:repeating_command_block_back,north=0:repeating_command_block_front,east=4000:repeating_command_block_conditional,west=4000:repeating_command_block_conditional -block:id=repeating_command_block,data=13,top=5000:repeating_command_block_conditional,bottom=5000:repeating_command_block_conditional,south=0:repeating_command_block_front,north=0:repeating_command_block_back,east=6000:repeating_command_block_conditional,west=6000:repeating_command_block_conditional +block:id=repeating_command_block,data=6,top=4000:repeating_command_block_back,bottom=4000:repeating_command_block_front,south=5000:repeating_command_block_conditional,north=5000:repeating_command_block_conditional,east=5000:repeating_command_block_conditional,west=5000:repeating_command_block_conditional +block:id=repeating_command_block,data=7,top=4000:repeating_command_block_front,bottom=4000:repeating_command_block_back,south=0:repeating_command_block_conditional,north=0:repeating_command_block_conditional,east=0:repeating_command_block_conditional,west=0:repeating_command_block_conditional +block:id=repeating_command_block,data=8,top=6000:repeating_command_block_conditional,bottom=6000:repeating_command_block_conditional,south=6000:repeating_command_block_conditional,north=6000:repeating_command_block_conditional,east=0:repeating_command_block_front,west=0:repeating_command_block_back +block:id=repeating_command_block,data=9,top=4000:repeating_command_block_conditional,bottom=4000:repeating_command_block_conditional,south=4000:repeating_command_block_conditional,north=4000:repeating_command_block_conditional,east=0:repeating_command_block_back,west=0:repeating_command_block_front +block:id=repeating_command_block,data=10,top=0:repeating_command_block_conditional,bottom=0:repeating_command_block_conditional,south=0:repeating_command_block_back,north=0:repeating_command_block_front,east=4000:repeating_command_block_conditional,west=4000:repeating_command_block_conditional +block:id=repeating_command_block,data=11,top=5000:repeating_command_block_conditional,bottom=5000:repeating_command_block_conditional,south=0:repeating_command_block_front,north=0:repeating_command_block_back,east=6000:repeating_command_block_conditional,west=6000:repeating_command_block_conditional # Chain Command Block block:id=chain_command_block,data=0,top=4000:chain_command_block_back,bottom=4000:chain_command_block_front,south=5000:chain_command_block_side,north=5000:chain_command_block_side,east=5000:chain_command_block_side,west=5000:chain_command_block_side @@ -1744,12 +1742,12 @@ block:id=chain_command_block,data=2,top=6000:chain_command_block_side,bottom=600 block:id=chain_command_block,data=3,top=4000:chain_command_block_side,bottom=4000:chain_command_block_side,south=4000:chain_command_block_side,north=4000:chain_command_block_side,east=0:chain_command_block_back,west=0:chain_command_block_front block:id=chain_command_block,data=4,top=0:chain_command_block_side,bottom=0:chain_command_block_side,south=0:chain_command_block_back,north=0:chain_command_block_front,east=4000:chain_command_block_side,west=4000:chain_command_block_side block:id=chain_command_block,data=5,top=5000:chain_command_block_side,bottom=5000:chain_command_block_side,south=0:chain_command_block_front,north=0:chain_command_block_back,east=6000:chain_command_block_side,west=6000:chain_command_block_side -block:id=chain_command_block,data=8,top=4000:chain_command_block_back,bottom=4000:chain_command_block_front,south=5000:chain_command_block_conditional,north=5000:chain_command_block_conditional,east=5000:chain_command_block_conditional,west=5000:chain_command_block_conditional -block:id=chain_command_block,data=9,top=4000:chain_command_block_front,bottom=4000:chain_command_block_back,south=0:chain_command_block_conditional,north=0:chain_command_block_conditional,east=0:chain_command_block_conditional,west=0:chain_command_block_conditional -block:id=chain_command_block,data=10,top=6000:chain_command_block_conditional,bottom=6000:chain_command_block_conditional,south=6000:chain_command_block_conditional,north=6000:chain_command_block_conditional,east=0:chain_command_block_front,west=0:chain_command_block_back -block:id=chain_command_block,data=11,top=4000:chain_command_block_conditional,bottom=4000:chain_command_block_conditional,south=4000:chain_command_block_conditional,north=4000:chain_command_block_conditional,east=0:chain_command_block_back,west=0:chain_command_block_front -block:id=chain_command_block,data=12,top=0:chain_command_block_conditional,bottom=0:chain_command_block_conditional,south=0:chain_command_block_back,north=0:chain_command_block_front,east=4000:chain_command_block_conditional,west=4000:chain_command_block_conditional -block:id=chain_command_block,data=13,top=5000:chain_command_block_conditional,bottom=5000:chain_command_block_conditional,south=0:chain_command_block_front,north=0:chain_command_block_back,east=6000:chain_command_block_conditional,west=6000:chain_command_block_conditional +block:id=chain_command_block,data=6,top=4000:chain_command_block_back,bottom=4000:chain_command_block_front,south=5000:chain_command_block_conditional,north=5000:chain_command_block_conditional,east=5000:chain_command_block_conditional,west=5000:chain_command_block_conditional +block:id=chain_command_block,data=7,top=4000:chain_command_block_front,bottom=4000:chain_command_block_back,south=0:chain_command_block_conditional,north=0:chain_command_block_conditional,east=0:chain_command_block_conditional,west=0:chain_command_block_conditional +block:id=chain_command_block,data=8,top=6000:chain_command_block_conditional,bottom=6000:chain_command_block_conditional,south=6000:chain_command_block_conditional,north=6000:chain_command_block_conditional,east=0:chain_command_block_front,west=0:chain_command_block_back +block:id=chain_command_block,data=9,top=4000:chain_command_block_conditional,bottom=4000:chain_command_block_conditional,south=4000:chain_command_block_conditional,north=4000:chain_command_block_conditional,east=0:chain_command_block_back,west=0:chain_command_block_front +block:id=chain_command_block,data=10,top=0:chain_command_block_conditional,bottom=0:chain_command_block_conditional,south=0:chain_command_block_back,north=0:chain_command_block_front,east=4000:chain_command_block_conditional,west=4000:chain_command_block_conditional +block:id=chain_command_block,data=11,top=5000:chain_command_block_conditional,bottom=5000:chain_command_block_conditional,south=0:chain_command_block_front,north=0:chain_command_block_back,east=6000:chain_command_block_conditional,west=6000:chain_command_block_conditional # Frosted Ice block:id=frosted_ice,data=0,allfaces=12000:frosted_ice_0,stdrot=true,transparency=TRANSPARENT @@ -1758,7 +1756,7 @@ block:id=frosted_ice,data=2,allfaces=12000:frosted_ice_2,stdrot=true,transparenc block:id=frosted_ice,data=3,allfaces=12000:frosted_ice_3,stdrot=true,transparency=TRANSPARENT # Magma Block -block:id=magma,data=*,stdrot=true,allfaces=0:magma +block:id=magma_block,data=*,stdrot=true,allfaces=0:magma # Nether Wart Block block:id=nether_wart_block,data=*,stdrot=true,allfaces=0:nether_wart_block @@ -1768,9 +1766,8 @@ block:id=red_nether_bricks,stdrot=true,allfaces=0:red_nether_bricks # Bone Block block:id=bone_block,data=0,allsides=0:bone_block_side,topbottom=0:bone_block_top,stdrot=true -block:id=bone_block,data=4,north=0:bone_block_top,south=0:bone_block_top,east=4000:bone_block_side,west=4000:bone_block_side,top=0:bone_block_side,bottom=0:bone_block_side -block:id=bone_block,data=8,north=4000:bone_block_side,south=4000:bone_block_side,east=0:bone_block_top,west=0:bone_block_top,top=4000:bone_block_side,bottom=4000:bone_block_side -block:id=bone_block,data=12,allfaces=0:bone_block_side,stdrot=true +block:id=bone_block,data=1,north=0:bone_block_top,south=0:bone_block_top,east=4000:bone_block_side,west=4000:bone_block_side,top=0:bone_block_side,bottom=0:bone_block_side +block:id=bone_block,data=2,north=4000:bone_block_side,south=4000:bone_block_side,east=0:bone_block_top,west=0:bone_block_top,top=4000:bone_block_side,bottom=4000:bone_block_side # Structure Block block:id=structure_block,data=0,stdrot=true,allfaces=0:structure_block_save @@ -1998,6 +1995,3 @@ block:id=green_concrete_powder,stdrot=true,allfaces=0:green_concrete_powder block:id=red_concrete_powder,stdrot=true,allfaces=0:red_concrete_powder block:id=black_concrete_powder,stdrot=true,allfaces=0:black_concrete_powder -# Tall grass -block:id=tall_grass,data=0,patch0-1=1000:tall_grass_top,transparency=TRANSPARENT -block:id=tall_grass,data=1,patch0-1=1000:tall_grass_bottom,transparency=TRANSPARENT