@@ -21,91 +21,81 @@ public class SubmapManagerVoidstone extends SubmapManagerBase {
2121
2222 // TODO there must be a better more generic way to do this...
2323 @ SideOnly (Side .CLIENT )
24- private class RenderBlocksVoidstone extends RenderBlocksCTM {
24+ private static class RenderBlocksVoidstone extends RenderBlocksCTM {
2525
2626 @ Override
2727 public void renderFaceXNeg (Block block , double x , double y , double z , IIcon icon ) {
28- super .renderFaceXNeg (block , x , y , z , icon );
29- renderMinX += 0.005 ;
3028 setOverrideBlockTexture (getBase (x , y , z , ForgeDirection .WEST .ordinal ()));
3129 super .renderFaceXNeg (block , x , y , z , null );
3230 clearOverrideBlockTexture ();
31+
32+ super .renderFaceXNeg (block , x , y , z , icon );
3333 }
3434
3535 @ Override
3636 public void renderFaceXPos (Block block , double x , double y , double z , IIcon icon ) {
37- super .renderFaceXPos (block , x , y , z , icon );
3837 setOverrideBlockTexture (getBase (x , y , z , ForgeDirection .EAST .ordinal ()));
39- renderMaxX -= 0.005 ;
4038 super .renderFaceXPos (block , x , y , z , null );
4139 clearOverrideBlockTexture ();
40+
41+ super .renderFaceXPos (block , x , y , z , icon );
4242 }
4343
4444 @ Override
4545 public void renderFaceYNeg (Block block , double x , double y , double z , IIcon icon ) {
46- super .renderFaceYNeg (block , x , y , z , icon );
4746 setOverrideBlockTexture (getBase (x , y , z , ForgeDirection .DOWN .ordinal ()));
48- renderMinY += 0.005 ;
4947 super .renderFaceYNeg (block , x , y , z , null );
5048 clearOverrideBlockTexture ();
49+
50+ super .renderFaceYNeg (block , x , y , z , icon );
5151 }
5252
5353 @ Override
5454 public void renderFaceYPos (Block block , double x , double y , double z , IIcon icon ) {
55- super .renderFaceYPos (block , x , y , z , icon );
5655 setOverrideBlockTexture (getBase (x , y , z , ForgeDirection .UP .ordinal ()));
57- renderMaxY -= 0.005 ;
5856 super .renderFaceYPos (block , x , y , z , null );
5957 clearOverrideBlockTexture ();
58+
59+ super .renderFaceYPos (block , x , y , z , icon );
6060 }
6161
6262 @ Override
6363 public void renderFaceZNeg (Block block , double x , double y , double z , IIcon icon ) {
64- super .renderFaceZNeg (block , x , y , z , icon );
6564 setOverrideBlockTexture (getBase (x , y , z , ForgeDirection .NORTH .ordinal ()));
66- renderMinZ += 0.005 ;
6765 super .renderFaceZNeg (block , x , y , z , null );
6866 clearOverrideBlockTexture ();
67+
68+ super .renderFaceZNeg (block , x , y , z , icon );
6969 }
7070
7171 @ Override
7272 public void renderFaceZPos (Block block , double x , double y , double z , IIcon icon ) {
73- super .renderFaceZPos (block , x , y , z , icon );
7473 setOverrideBlockTexture (getBase (x , y , z , ForgeDirection .SOUTH .ordinal ()));
75- renderMaxZ -= 0.005 ;
7674 super .renderFaceZPos (block , x , y , z , null );
7775 clearOverrideBlockTexture ();
76+
77+ super .renderFaceZPos (block , x , y , z , icon );
7878 }
7979
80- public void reset () {
81- this .submap = null ;
80+ private IIcon getBase (double x , double y , double z , int side ) {
81+ return TextureType .getVIcon (
82+ TextureType .V4 ,
83+ base ,
84+ MathHelper .floor_double (x ),
85+ MathHelper .floor_double (y ),
86+ MathHelper .floor_double (z ),
87+ side );
8288 }
8389 }
8490
8591 @ SideOnly (Side .CLIENT )
8692 private static ThreadLocal <RenderBlocksVoidstone > renderBlocksThreadLocal ;
8793
88- private static void initStatics () {
89- if (renderBlocksThreadLocal == null ) {
90- renderBlocksThreadLocal = new ThreadLocal <>();
91- }
92- }
93-
9494 private ISubmapManager overlay ;
95- private TextureSubmap base ;
96-
97- private IIcon getBase (double x , double y , double z , int side ) {
98- return TextureType .getVIcon (
99- TextureType .V4 ,
100- base ,
101- MathHelper .floor_double (x ),
102- MathHelper .floor_double (y ),
103- MathHelper .floor_double (z ),
104- side );
105- }
95+ private static TextureSubmap base ;
10696
107- private String texture ;
108- private int meta ;
97+ private final String texture ;
98+ private final int meta ;
10999
110100 public SubmapManagerVoidstone (String texture , int meta ) {
111101 this .texture = texture ;
@@ -133,18 +123,22 @@ public void registerIcons(String modName, Block block, IIconRegister register) {
133123 @ Override
134124 @ SideOnly (Side .CLIENT )
135125 public RenderBlocks createRenderContext (RenderBlocks rendererOld , Block block , IBlockAccess world ) {
136- initStatics ();
126+ if (renderBlocksThreadLocal == null ) {
127+ renderBlocksThreadLocal = ThreadLocal .withInitial (RenderBlocksVoidstone ::new );
128+ }
129+
137130 RenderBlocksVoidstone rb = renderBlocksThreadLocal .get ();
138- if (rb == null ) {
139- rb = new RenderBlocksVoidstone ();
140- renderBlocksThreadLocal .set (rb );
141- } else rb .reset ();
142131 RenderBlocks ctx = overlay .createRenderContext (rendererOld , block , world );
143132 rb .setRenderBoundsFromBlock (block );
133+
144134 if (ctx instanceof RenderBlocksCTM ) {
145135 rb .submap = ((RenderBlocksCTM ) ctx ).submap ;
146136 rb .submapSmall = ((RenderBlocksCTM ) ctx ).submapSmall ;
137+ } else {
138+ rb .submap = null ;
139+ rb .submapSmall = null ;
147140 }
141+
148142 return rb ;
149143 }
150144}
0 commit comments