Fix 1.13 door rendering
This commit is contained in:
parent
d065a8d811
commit
8dcce7e727
3 changed files with 37 additions and 3 deletions
|
|
@ -18,7 +18,7 @@ public class DoorRenderer extends CustomRenderer {
|
||||||
public static final int TXT_BOTTOM = 1;
|
public static final int TXT_BOTTOM = 1;
|
||||||
|
|
||||||
// Indexed by combined meta
|
// Indexed by combined meta
|
||||||
private RenderPatch[][] models = new RenderPatch[32][];
|
protected RenderPatch[][] models = new RenderPatch[32][];
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean initializeRenderer(RenderPatchFactory rpf, String blkname, BitSet blockdatamask, Map<String,String> custparm) {
|
public boolean initializeRenderer(RenderPatchFactory rpf, String blkname, BitSet blockdatamask, Map<String,String> custparm) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package org.dynmap.hdmap.renderer;
|
||||||
|
|
||||||
|
import org.dynmap.renderer.MapDataContext;
|
||||||
|
import org.dynmap.renderer.RenderPatch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Standard door renderer : two textures (top, bottom)
|
||||||
|
*/
|
||||||
|
public class DoorStateRenderer extends DoorRenderer {
|
||||||
|
@Override
|
||||||
|
public RenderPatch[] getRenderPatchList(MapDataContext ctx) {
|
||||||
|
int idx = ctx.getBlockType().stateIndex; // Get our state index
|
||||||
|
// Index: (idx%2)=powered/unpowered, (idx/2)%2=open/closed, (idx/4)%2=left/right, (idx/8)%2=upper/lower, (idx/16)%4=n/s/w/e
|
||||||
|
int midx = 0;
|
||||||
|
midx |= ((idx & 0x8) == 0) ? 8 : 0; // If upper half
|
||||||
|
midx |= ((idx & 0x2) == 0) ? 4 : 0; // If open
|
||||||
|
midx |= ((idx & 0x4) == 0) ? 0 : 16; // If left hinge
|
||||||
|
switch ((idx >> 4) & 0x3) {
|
||||||
|
case 0: // N
|
||||||
|
midx += 3;
|
||||||
|
break;
|
||||||
|
case 1: // S
|
||||||
|
midx += 1;
|
||||||
|
break;
|
||||||
|
case 2: // W
|
||||||
|
midx += 2;
|
||||||
|
break;
|
||||||
|
case 3: // E
|
||||||
|
midx += 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return models[midx];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -505,7 +505,7 @@ rotate:id=white_bed,data=0,rot=270
|
||||||
|
|
||||||
# Oak door
|
# Oak door
|
||||||
# Iron Door
|
# Iron Door
|
||||||
customblock:id=oak_door,id=iron_door,class=org.dynmap.hdmap.renderer.DoorRenderer
|
customblock:id=oak_door,id=iron_door,class=org.dynmap.hdmap.renderer.DoorStateRenderer
|
||||||
|
|
||||||
# Wall lever, facing south
|
# 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
|
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
|
||||||
|
|
@ -1259,7 +1259,7 @@ customblock:id=acacia_fence,class=org.dynmap.hdmap.renderer.FenceWallBlockStateR
|
||||||
# Wooden Door Block (Jungle)
|
# Wooden Door Block (Jungle)
|
||||||
# Wooden Door Block (Acacia)
|
# Wooden Door Block (Acacia)
|
||||||
# Wooden Door Block (Dark Oak)
|
# Wooden Door Block (Dark Oak)
|
||||||
customblock:id=spruce_door,id=birch_door,id=jungle_door,id=acacia_door,id=dark_oak_door,class=org.dynmap.hdmap.renderer.DoorRenderer
|
customblock:id=spruce_door,id=birch_door,id=jungle_door,id=acacia_door,id=dark_oak_door,class=org.dynmap.hdmap.renderer.DoorStateRenderer
|
||||||
|
|
||||||
# End rod
|
# End rod
|
||||||
#block:id=end_rod,patch0=0:end_rod,transparency=TRANSPARENT
|
#block:id=end_rod,patch0=0:end_rod,transparency=TRANSPARENT
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue