Skip to content

Commit c00c961

Browse files
committed
Merge branch 'v3.0' of https://github.com/webbukkit/dynmap.git into v3.0
2 parents c75c19a + 0a17eb0 commit c00c961

File tree

4 files changed

+105
-32
lines changed

4 files changed

+105
-32
lines changed

DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockModels.java

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -375,8 +375,17 @@ else if(line.startsWith("block:")) {
375375
blknames.add(getBlockName(modname,av[1]));
376376
}
377377
else if(av[0].equals("data")) {
378-
if(av[1].equals("*"))
378+
if(av[1].equals("*")) {
379379
databits.clear();
380+
}
381+
else if (av[1].indexOf('-') > 0) {
382+
String[] sp = av[1].split("-");
383+
int m0 = getIntValue(varvals, sp[0]);
384+
int m1 = getIntValue(varvals, sp[1]);
385+
for (int m = m0; m <= m1; m++) {
386+
databits.set(m);
387+
}
388+
}
380389
else
381390
databits.set(getIntValue(varvals,av[1]));
382391
}
@@ -532,8 +541,17 @@ else if(line.startsWith("ignore-updates:")) {
532541
blknames.add(getBlockName(modname,av[1]));
533542
}
534543
else if(av[0].equals("data")) {
535-
if(av[1].equals("*"))
544+
if(av[1].equals("*")) {
536545
databits.clear();
546+
}
547+
else if (av[1].indexOf('-') > 0) {
548+
String[] sp = av[1].split("-");
549+
int m0 = getIntValue(varvals, sp[0]);
550+
int m1 = getIntValue(varvals, sp[1]);
551+
for (int m = m0; m <= m1; m++) {
552+
databits.set(m);
553+
}
554+
}
537555
else
538556
databits.set(getIntValue(varvals,av[1]));
539557
}
@@ -717,8 +735,17 @@ else if(line.startsWith("patchblock:")) {
717735
blknames.add(getBlockName(modname,av[1]));
718736
}
719737
else if(av[0].equals("data")) {
720-
if(av[1].equals("*"))
738+
if(av[1].equals("*")) {
721739
databits.clear();
740+
}
741+
else if (av[1].indexOf('-') > 0) {
742+
String[] sp = av[1].split("-");
743+
int m0 = getIntValue(varvals, sp[0]);
744+
int m1 = getIntValue(varvals, sp[1]);
745+
for (int m = m0; m <= m1; m++) {
746+
databits.set(m);
747+
}
748+
}
722749
else
723750
databits.set(getIntValue(varvals,av[1]));
724751
}
@@ -789,8 +816,17 @@ else if(line.startsWith("boxblock:")) {
789816
blknames.add(getBlockName(modname,av[1]));
790817
}
791818
else if(av[0].equals("data")) {
792-
if(av[1].equals("*"))
819+
if(av[1].equals("*")) {
793820
databits.clear();
821+
}
822+
else if (av[1].indexOf('-') > 0) {
823+
String[] sp = av[1].split("-");
824+
int m0 = getIntValue(varvals, sp[0]);
825+
int m1 = getIntValue(varvals, sp[1]);
826+
for (int m = m0; m <= m1; m++) {
827+
databits.set(m);
828+
}
829+
}
794830
else
795831
databits.set(getIntValue(varvals,av[1]));
796832
}
@@ -853,8 +889,17 @@ else if(line.startsWith("customblock:")) {
853889
blknames.add(getBlockName(modname, av[1]));
854890
}
855891
else if(av[0].equals("data")) {
856-
if(av[1].equals("*"))
892+
if(av[1].equals("*")) {
857893
databits.clear();
894+
}
895+
else if (av[1].indexOf('-') > 0) {
896+
String[] sp = av[1].split("-");
897+
int m0 = getIntValue(varvals, sp[0]);
898+
int m1 = getIntValue(varvals, sp[1]);
899+
for (int m = m0; m <= m1; m++) {
900+
databits.set(m);
901+
}
902+
}
858903
else
859904
databits.set(getIntValue(varvals,av[1]));
860905
}

DynmapCore/src/main/java/org/dynmap/hdmap/renderer/ChestRenderer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
* Simple renderer for handling single and double chests
1515
*/
1616
public class ChestRenderer extends CustomRenderer {
17-
private enum ChestData {
17+
protected enum ChestData {
1818
SINGLE_WEST, SINGLE_SOUTH, SINGLE_EAST, SINGLE_NORTH, LEFT_WEST, LEFT_SOUTH, LEFT_EAST, LEFT_NORTH, RIGHT_WEST, RIGHT_SOUTH, RIGHT_EAST, RIGHT_NORTH
1919
};
2020
// Models, indexed by ChestData.ordinal()
21-
private RenderPatch[][] models = new RenderPatch[ChestData.values().length][];
21+
protected RenderPatch[][] models = new RenderPatch[ChestData.values().length][];
2222

2323
private static final double OFF1 = 1.0 / 16.0;
2424
private static final double OFF14 = 14.0 / 16.0;
@@ -28,7 +28,7 @@ private enum ChestData {
2828
private static final int[] LEFT_PATCHES = { 14, 6, 10, 11, 12, 8 };
2929
private static final int[] RIGHT_PATCHES = { 15, 7, 10, 11, 13, 9 };
3030

31-
private boolean double_chest = false;
31+
protected boolean double_chest = false;
3232
@Override
3333
public boolean initializeRenderer(RenderPatchFactory rpf, String blkname, BitSet blockdatamask, Map<String,String> custparm) {
3434
if(!super.initializeRenderer(rpf, blkname, blockdatamask, custparm))
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package org.dynmap.hdmap.renderer;
2+
3+
import java.util.ArrayList;
4+
import java.util.BitSet;
5+
import java.util.Map;
6+
7+
import org.dynmap.renderer.CustomRenderer;
8+
import org.dynmap.renderer.DynmapBlockState;
9+
import org.dynmap.renderer.MapDataContext;
10+
import org.dynmap.renderer.RenderPatch;
11+
import org.dynmap.renderer.RenderPatchFactory;
12+
13+
/**
14+
* Simple renderer for handling single and double chests (1.13+)
15+
*/
16+
public class ChestStateRenderer extends ChestRenderer {
17+
protected enum ChestData {
18+
SINGLE_WEST, SINGLE_SOUTH, SINGLE_EAST, SINGLE_NORTH, LEFT_WEST, LEFT_SOUTH, LEFT_EAST, LEFT_NORTH, RIGHT_WEST, RIGHT_SOUTH, RIGHT_EAST, RIGHT_NORTH
19+
};
20+
21+
private ChestData[] byIndex = {
22+
ChestData.SINGLE_NORTH, ChestData.RIGHT_NORTH, ChestData.LEFT_NORTH,
23+
ChestData.SINGLE_SOUTH, ChestData.RIGHT_SOUTH, ChestData.LEFT_SOUTH,
24+
ChestData.SINGLE_WEST, ChestData.RIGHT_WEST, ChestData.LEFT_WEST,
25+
ChestData.SINGLE_EAST, ChestData.RIGHT_EAST , ChestData.LEFT_EAST };
26+
@Override
27+
public RenderPatch[] getRenderPatchList(MapDataContext ctx) {
28+
int idx = ctx.getBlockType().stateIndex / 2; // Ignore waterlogged for model
29+
if (!double_chest) { // If single only, skip to 3x index of state
30+
idx = idx * 3;
31+
}
32+
return models[byIndex[idx].ordinal()];
33+
}
34+
}

DynmapCore/src/main/resources/models_1.txt

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -262,17 +262,17 @@ customblock:id=oak_fence,id=spruce_fence,id=birch_fence,id=jungle_fence,id=acaci
262262
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
263263

264264
# Trapdoor (closed)
265-
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
265+
boxblock:id=iron_trapdoor,id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=12-15,data=28-31,data=44-47,data=60-63,ymax=0.1875
266266
# Trapdoor (open: west attach)
267-
boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=32,data=33,data=34,data=35,data=40,data=41,data=42,data=43,zmin=0.8125
267+
boxblock:id=iron_trapdoor,id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=32-35,data=40-44,xmin=0.8125
268268
# Trapdoor (open: east attach)
269-
boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=48,data=49,data=50,data=51,data=56,data=57,data=58,data=59,zmax=0.1875
269+
boxblock:id=iron_trapdoor,id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=48-51,data=56-59,xmax=0.1875
270270
# Trapdoor (open: south attach)
271-
boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=16,data=17,data=18,data=19,data=24,data=25,data=26,data=27,xmin=0.8125
271+
boxblock:id=iron_trapdoor,id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=16-19,data=24-27,zmax=0.1875
272272
# Trapdoor (open: north attach)
273-
boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=0,data=1,data=2,data=3,data=8,data=9,data=10,data=11,xmax=0.1875
273+
boxblock:id=iron_trapdoor,id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=0-3,data=8-11,zmin=0.8125
274274
# Trapdoor (closed - top)
275-
boxblock:id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=4,data=5,data=6,data=7,data=20,data=21,data=22,data=23,data=36,data=37,data=38,data=39,data=52,data=53,data=54,data=55,ymin=0.8125
275+
boxblock:id=iron_trapdoor,id=oak_trapdoor,id=spruce_trapdoor,id=birch_trapdoor,id=jungle_trapdoor,id=acacia_trapdoor,id=dark_oak_trapdoor,data=4-7,data=20-23,data=36-39,data=52-55,ymin=0.8125
276276

277277
# Crops
278278
# Carrot
@@ -285,12 +285,14 @@ patchblock:id=wheat,id=carrots,id=potatoes,patch0=VertX075,patch1=VertX075@90,pa
285285
# Jungle button
286286
# Acacia button
287287
# Dark oak button
288-
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
289-
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
290-
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
291-
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
292-
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
293-
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
288+
boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=16-19,xmin=0.3125,xmax=0.6875,ymin=0.875,zmin=0.375,zmax=0.625
289+
boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=20-23,xmin=0.375,xmax=0.625,ymin=0.875,zmin=0.3125,zmax=0.6875
290+
boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=14-15,xmax=0.125,ymin=0.375,ymax=0.625,zmin=0.3125,zmax=0.6875
291+
boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=12-13,xmin=0.875,ymin=0.375,ymax=0.625,zmin=0.3125,zmax=0.6875
292+
boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=10-11,zmax=0.125,ymin=0.375,ymax=0.625,xmin=0.3125,xmax=0.6875
293+
boxblock:id=stone_button,id=oak_button,id=spruce_button,id=birch_button,id=jungle_button,id=acacia_button,id=dark_oak_button,data=8-9,zmin=0.875,ymin=0.375,ymax=0.625,xmin=0.3125,xmax=0.6875
294+
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-3,xmin=0.3125,xmax=0.6875,ymax=0.125,zmin=0.375,zmax=0.625
295+
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-7,xmin=0.375,xmax=0.625,ymax=0.125,zmin=0.3125,zmax=0.6875
294296

295297
# Rails - flat - east/west
296298
patchblock:id=rail,data=0,patch0=HorizY001ZTop
@@ -945,9 +947,9 @@ layer:3,4
945947
********
946948
-******-
947949
--****--
948-
# Chest - single, facing west
949-
# Trap Chest - single, facing west
950-
customblock:id=chest,id=trapped_chest,class=org.dynmap.hdmap.renderer.ChestRenderer
950+
# Chest - single or double
951+
# Trap Chest - single or double
952+
customblock:id=chest,id=trapped_chest,class=org.dynmap.hdmap.renderer.ChestStateRenderer
951953

952954
# Cake Block
953955
block:id=cake,scale=16
@@ -987,7 +989,7 @@ patchblock:id=tripwire_hook,data=3,data=7,data=11,data=15
987989
patchrotate:id=tripwire_hook,data=0,rot=270
988990

989991
# Ender Chest - facing south
990-
customblock:id=ender_chest,class=org.dynmap.hdmap.renderer.ChestRenderer,doublechest=false
992+
customblock:id=ender_chest,class=org.dynmap.hdmap.renderer.ChestStateRenderer,doublechest=false
991993

992994
# Beacon
993995
patchblock:id=beacon,patch0=BeaconGlassSide,patch1=BeaconGlassSide@90,patch2=BeaconGlassSide@180,patch3=BeaconGlassSide@270,patch4=BeaconGlassTop,patch5=BeaconGlassBottom,patch6=BeaconObsidianSide,patch7=BeaconObsidianSide@90,patch8=BeaconObsidianSide@180,patch9=BeaconObsidianSide@270,patch10=BeaconObsidianTop,patch11=BeaconLightSide,patch12=BeaconLightSide@90,patch13=BeaconLightSide@180,,patch14=BeaconLightSide@270,patch15=BeaconLightTop
@@ -1194,14 +1196,6 @@ customblock:id=acacia_stairs,id=dark_oak_stairs,class=org.dynmap.hdmap.renderer.
11941196
# (171) Carpet
11951197
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
11961198

1197-
# Iron Trapdoor
1198-
boxblock:id=iron_trapdoor,data=0,data=1,data=2,data=3,ymax=0.1875
1199-
boxblock:id=iron_trapdoor,data=4,data=12,zmin=0.8125
1200-
boxblock:id=iron_trapdoor,data=5,data=13,zmax=0.1875
1201-
boxblock:id=iron_trapdoor,data=6,data=14,xmin=0.8125
1202-
boxblock:id=iron_trapdoor,data=7,data=15,xmax=0.1875
1203-
boxblock:id=iron_trapdoor,data=8,data=9,data=10,data=11,ymin=0.8125
1204-
12051199
# Red Sandstone stairs
12061200
customblock:id=red_sandstone_stairs,class=org.dynmap.hdmap.renderer.StairStateRenderer
12071201

0 commit comments

Comments
 (0)