From 09e9a181eeb2f689b4953c5f593d9cc47e2b179c Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Wed, 30 Dec 2015 11:22:22 +0300 Subject: [PATCH] Fixed color disabling not working for forge pipeline. Closes #2286. --- .../client/renderer/WorldRenderer.java.patch | 7 ++++++- .../client/model/pipeline/WorldRendererConsumer.java | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/renderer/WorldRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/WorldRenderer.java.patch index 4b2f9e3c2..65b5937e4 100644 --- a/patches/minecraft/net/minecraft/client/renderer/WorldRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/WorldRenderer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/WorldRenderer.java +++ ../src-work/minecraft/net/minecraft/client/renderer/WorldRenderer.java -@@ -578,6 +578,11 @@ +@@ -578,6 +578,16 @@ } } @@ -8,6 +8,11 @@ + { + this.func_181670_b(field_179011_q.func_177338_f()/* / 4 * 4 */); + } ++ ++ public boolean isColorDisabled() ++ { ++ return field_78939_q; ++ } + @SideOnly(Side.CLIENT) public class State diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/WorldRendererConsumer.java b/src/main/java/net/minecraftforge/client/model/pipeline/WorldRendererConsumer.java index fea7dff22..3d268bf85 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/WorldRendererConsumer.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/WorldRendererConsumer.java @@ -4,6 +4,7 @@ import java.util.Arrays; import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.vertex.VertexFormat; +import net.minecraft.client.renderer.vertex.VertexFormatElement.EnumUsage; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; @@ -12,6 +13,7 @@ import net.minecraft.util.EnumFacing; */ public class WorldRendererConsumer implements IVertexConsumer { + private static final float[] dummyColor = new float[]{ 1, 1, 1, 1 }; private final WorldRenderer renderer; private final int[] quadData; private int v = 0; @@ -31,8 +33,13 @@ public class WorldRendererConsumer implements IVertexConsumer public void put(int e, float... data) { - LightUtil.pack(data, quadData, getVertexFormat(), v, e); - if(e == getVertexFormat().getElementCount() - 1) + VertexFormat format = getVertexFormat(); + if(renderer.isColorDisabled() && format.getElement(e).getUsage() == EnumUsage.COLOR) + { + data = dummyColor; + } + LightUtil.pack(data, quadData, format, v, e); + if(e == format.getElementCount() - 1) { v++; if(v == 4)