diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/QuadGatheringTransformer.java b/src/main/java/net/minecraftforge/client/model/pipeline/QuadGatheringTransformer.java index 0edc74313b..355529c864 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/QuadGatheringTransformer.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/QuadGatheringTransformer.java @@ -8,6 +8,7 @@ public abstract class QuadGatheringTransformer implements IVertexConsumer protected VertexFormat format; protected int vertices = 0; + protected byte[] dataLength = null; protected float[][][] quadData = null; public void setParent(IVertexConsumer parent) @@ -18,6 +19,7 @@ public abstract class QuadGatheringTransformer implements IVertexConsumer public void setVertexFormat(VertexFormat format) { this.format = format; + dataLength = new byte[format.getElementCount()]; quadData = new float[format.getElementCount()][4][4]; } @@ -32,7 +34,11 @@ public abstract class QuadGatheringTransformer implements IVertexConsumer { System.arraycopy(data, 0, quadData[element][vertices], 0, data.length); if(element == getVertexFormat().getElementCount() - 1) vertices++; - if(vertices == 4) + if(vertices == 0) + { + dataLength[element] = (byte)data.length; + } + else if(vertices == 4) { vertices = 0; processQuad(); diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java b/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java index 954215f9f7..fd54adedea 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/VertexLighterFlat.java @@ -131,7 +131,13 @@ public class VertexLighterFlat extends QuadGatheringTransformer z += normal[v][2] * .5f; } + float blockLight = lightmap[v][0], skyLight = lightmap[v][1]; updateLightmap(normal[v], lightmap[v], x, y, z); + if(dataLength[lightmapIndex] > 1) + { + if(blockLight > lightmap[v][0]) lightmap[v][0] = blockLight; + if(skyLight > lightmap[v][1]) lightmap[v][1] = skyLight; + } updateColor(normal[v], color[v], x, y, z, tint, multiplier); if(EntityRenderer.anaglyphEnable) { diff --git a/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java b/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java index 2c4d178158..c50bbdd49b 100644 --- a/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java +++ b/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java @@ -40,7 +40,7 @@ public class MultiLayerModelDebug @Override public boolean isFullCube() { return false; } - + @Override public boolean canRenderInLayer(EnumWorldBlockLayer layer) {