Fixed quads that don't need diffuse lighting getting it anyway.

This commit is contained in:
RainWarrior 2016-03-17 14:10:44 +03:00
parent 2c55969ff3
commit a81dfbc4ef
12 changed files with 73 additions and 17 deletions

View File

@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/block/model/BakedQuad.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/BakedQuad.java
@@ -6,15 +6,25 @@
@@ -6,15 +6,26 @@
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
@ -18,21 +18,23 @@
+ @Deprecated
public BakedQuad(int[] p_i46574_1_, int p_i46574_2_, EnumFacing p_i46574_3_, TextureAtlasSprite p_i46574_4_)
{
+ this(p_i46574_1_, p_i46574_2_, p_i46574_3_, p_i46574_4_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
+ this(p_i46574_1_, p_i46574_2_, p_i46574_3_, p_i46574_4_, true, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
+ }
+
+ public BakedQuad(int[] p_i46574_1_, int p_i46574_2_, EnumFacing p_i46574_3_, TextureAtlasSprite p_i46574_4_, net.minecraft.client.renderer.vertex.VertexFormat format)
+ public BakedQuad(int[] p_i46574_1_, int p_i46574_2_, EnumFacing p_i46574_3_, TextureAtlasSprite p_i46574_4_, boolean applyDiffuseLighting, net.minecraft.client.renderer.vertex.VertexFormat format)
+ {
+ this.format = format;
+ this.applyDiffuseLighting = applyDiffuseLighting;
this.field_178215_a = p_i46574_1_;
this.field_178213_b = p_i46574_2_;
this.field_178214_c = p_i46574_3_;
@@ -45,4 +55,17 @@
@@ -45,4 +56,23 @@
{
return this.field_178214_c;
}
+
+ private final net.minecraft.client.renderer.vertex.VertexFormat format;
+ protected final net.minecraft.client.renderer.vertex.VertexFormat format;
+ protected final boolean applyDiffuseLighting;
+
+ @Override
+ public void pipe(net.minecraftforge.client.model.pipeline.IVertexConsumer consumer)
@ -43,5 +45,10 @@
+ public net.minecraft.client.renderer.vertex.VertexFormat getFormat()
+ {
+ return format;
+ }
+
+ public boolean shouldApplyDiffuseLighting()
+ {
+ return applyDiffuseLighting;
+ }
}

View File

@ -0,0 +1,25 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/block/model/BakedQuadRetextured.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/BakedQuadRetextured.java
@@ -12,7 +12,7 @@
public BakedQuadRetextured(BakedQuad p_i46217_1_, TextureAtlasSprite p_i46217_2_)
{
- super(Arrays.copyOf(p_i46217_1_.func_178209_a(), p_i46217_1_.func_178209_a().length), p_i46217_1_.field_178213_b, FaceBakery.func_178410_a(p_i46217_1_.func_178209_a()), p_i46217_1_.func_187508_a());
+ super(Arrays.copyOf(p_i46217_1_.func_178209_a(), p_i46217_1_.func_178209_a().length), p_i46217_1_.field_178213_b, FaceBakery.func_178410_a(p_i46217_1_.func_178209_a()), p_i46217_1_.func_187508_a(), p_i46217_1_.applyDiffuseLighting, p_i46217_1_.format);
this.field_178218_d = p_i46217_2_;
this.func_178217_e();
}
@@ -21,9 +21,10 @@
{
for (int i = 0; i < 4; ++i)
{
- int j = 7 * i;
- this.field_178215_a[j + 4] = Float.floatToRawIntBits(this.field_178218_d.func_94214_a((double)this.field_187509_d.func_188537_a(Float.intBitsToFloat(this.field_178215_a[j + 4]))));
- this.field_178215_a[j + 4 + 1] = Float.floatToRawIntBits(this.field_178218_d.func_94207_b((double)this.field_187509_d.func_188536_b(Float.intBitsToFloat(this.field_178215_a[j + 4 + 1]))));
+ int j = format.func_181719_f() * i;
+ int uvIndex = format.func_177344_b(0);
+ this.field_178215_a[j + uvIndex] = Float.floatToRawIntBits(this.field_178218_d.func_94214_a((double)this.field_187509_d.func_188537_a(Float.intBitsToFloat(this.field_178215_a[j + uvIndex]))));
+ this.field_178215_a[j + uvIndex + 1] = Float.floatToRawIntBits(this.field_178218_d.func_94207_b((double)this.field_187509_d.func_188536_b(Float.intBitsToFloat(this.field_178215_a[j + uvIndex + 1]))));
}
}
}

View File

@ -19,18 +19,20 @@
}
- int[] aint = this.func_188012_a(blockfaceuv, p_178414_4_, p_178414_5_, this.func_178403_a(p_178414_1_, p_178414_2_), p_178414_6_, p_178414_7_, p_178414_9_);
+ int[] aint = this.makeQuadVertexData(blockfaceuv, p_178414_4_, p_178414_5_, this.func_178403_a(p_178414_1_, p_178414_2_), p_178414_6_, p_178414_7_, p_178414_9_);
+ int[] aint = this.makeQuadVertexData(blockfaceuv, p_178414_4_, p_178414_5_, this.func_178403_a(p_178414_1_, p_178414_2_), p_178414_6_, p_178414_7_, false);
EnumFacing enumfacing = func_178410_a(aint);
if (p_178414_7_ == null)
@@ -63,6 +69,7 @@
@@ -63,7 +69,8 @@
this.func_178408_a(aint, enumfacing);
}
- return new BakedQuad(aint, p_178414_3_.field_178245_c, enumfacing, p_178414_4_);
+ net.minecraftforge.client.ForgeHooksClient.fillNormal(aint, enumfacing);
return new BakedQuad(aint, p_178414_3_.field_178245_c, enumfacing, p_178414_4_);
+ return new BakedQuad(aint, p_178414_3_.field_178245_c, enumfacing, p_178414_4_, p_178414_9_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
}
private BlockFaceUV func_188010_a(BlockFaceUV p_188010_1_, EnumFacing p_188010_2_, ModelRotation p_188010_3_)
@@ -73,11 +80,16 @@
private int[] func_188012_a(BlockFaceUV p_188012_1_, TextureAtlasSprite p_188012_2_, EnumFacing p_188012_3_, float[] p_188012_4_, ModelRotation p_188012_5_, BlockPartRotation p_188012_6_, boolean p_188012_7_)

View File

@ -132,7 +132,7 @@
+ protected BakedQuad makeBakedQuad(BlockPart p_177589_1_, BlockPartFace p_177589_2_, TextureAtlasSprite p_177589_3_, EnumFacing p_177589_4_, net.minecraftforge.client.model.ITransformation p_177589_5_, boolean p_177589_6_)
+ {
+ return this.field_177607_l.makeBakedQuad(p_177589_1_.field_178241_a, p_177589_1_.field_178239_b, p_177589_2_, p_177589_3_, p_177589_4_, p_177589_5_, p_177589_1_.field_178237_d, p_177589_6_, false);
+ return this.field_177607_l.makeBakedQuad(p_177589_1_.field_178241_a, p_177589_1_.field_178239_b, p_177589_2_, p_177589_3_, p_177589_4_, p_177589_5_, p_177589_1_.field_178237_d, p_177589_6_, p_177589_1_.field_178238_e);
+ }
+
private void func_177597_h()

View File

@ -17,6 +17,7 @@ public interface IVertexConsumer
void setQuadTint(int tint);
void setQuadOrientation(EnumFacing orientation);
void setApplyDiffuseLighting(boolean diffuse);
void put(int element, float... data);
}

View File

@ -88,6 +88,7 @@ public class LightUtil
{
consumer.setQuadTint(quad.getTintIndex());
}
consumer.setApplyDiffuseLighting(quad.shouldApplyDiffuseLighting());
//int[] eMap = mapFormats(consumer.getVertexFormat(), DefaultVertexFormats.ITEM);
float[] data = new float[4];
VertexFormat formatFrom = consumer.getVertexFormat();

View File

@ -13,9 +13,9 @@ public class UnpackedBakedQuad extends BakedQuad
protected final VertexFormat format;
protected boolean packed = false;
public UnpackedBakedQuad(float[][][] unpackedData, int tint, EnumFacing orientation, TextureAtlasSprite texture, VertexFormat format)
public UnpackedBakedQuad(float[][][] unpackedData, int tint, EnumFacing orientation, TextureAtlasSprite texture, boolean applyDiffuseLighting, VertexFormat format)
{
super(new int[format.getNextOffset() /* / 4 * 4 */], tint, orientation, texture, format);
super(new int[format.getNextOffset() /* / 4 * 4 */], tint, orientation, texture, applyDiffuseLighting, format);
this.unpackedData = unpackedData;
this.format = format;
}
@ -70,6 +70,7 @@ public class UnpackedBakedQuad extends BakedQuad
private int tint = -1;
private EnumFacing orientation;
private TextureAtlasSprite texture;
private boolean applyDiffuseLighting;
private int vertices = 0;
private int elements = 0;
@ -101,6 +102,11 @@ public class UnpackedBakedQuad extends BakedQuad
this.texture = texture;
}
public void setApplyDiffuseLighting(boolean diffuse)
{
this.applyDiffuseLighting = diffuse;
}
public void put(int element, float... data)
{
for(int i = 0; i < 4; i++)
@ -132,7 +138,7 @@ public class UnpackedBakedQuad extends BakedQuad
{
throw new IllegalStateException("not enough data");
}
return new UnpackedBakedQuad(unpackedData, tint, orientation, texture, format);
return new UnpackedBakedQuad(unpackedData, tint, orientation, texture, applyDiffuseLighting, format);
}
}
}

View File

@ -57,4 +57,5 @@ public class VertexBufferConsumer implements IVertexConsumer
public void setQuadTint(int tint) {}
public void setQuadOrientation(EnumFacing orientation) {}
public void setApplyDiffuseLighting(boolean diffuse) {}
}

View File

@ -17,6 +17,7 @@ public class VertexLighterFlat extends QuadGatheringTransformer
{
protected final BlockInfo blockInfo;
private int tint = -1;
private boolean diffuse = true;
protected int posIndex = -1;
protected int normalIndex = -1;
@ -148,10 +149,13 @@ public class VertexLighterFlat extends QuadGatheringTransformer
if(skyLight > lightmap[v][1]) lightmap[v][1] = skyLight;
}
updateColor(normal[v], color[v], x, y, z, tint, multiplier);
float diffuse = LightUtil.diffuseLight(normal[v][0], normal[v][1], normal[v][2]);
for(int i = 0; i < 3; i++)
if(diffuse)
{
color[v][i] *= diffuse;
float d = LightUtil.diffuseLight(normal[v][0], normal[v][1], normal[v][2]);
for(int i = 0; i < 3; i++)
{
color[v][i] *= d;
}
}
if(EntityRenderer.anaglyphEnable)
{
@ -239,6 +243,10 @@ public class VertexLighterFlat extends QuadGatheringTransformer
}
public void setQuadOrientation(EnumFacing orientation) {}
public void setQuadCulled() {}
public void setApplyDiffuseLighting(boolean diffuse)
{
this.diffuse = diffuse;
}
public void setWorld(IBlockAccess world)
{

View File

@ -27,6 +27,11 @@ public class VertexTransformer implements IVertexConsumer
parent.setQuadOrientation(orientation);
}
public void setApplyDiffuseLighting(boolean diffuse)
{
parent.setApplyDiffuseLighting(diffuse);
}
public void put(int element, float... data)
{
parent.put(element, data);

View File

@ -45,5 +45,5 @@ net/minecraft/stats/StatList.mergeStatBases([Lnet/minecraft/stats/StatBase;Lnet/
net/minecraft/item/ItemStack.<init>(Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)V=|p_i1881_1_,p_i1881_2_,p_i1881_3_,capNBT
net/minecraft/block/BlockRedstoneWire.canConnectTo(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Z=p_176343_0_,p_176343_1_,world,pos
net/minecraft/client/renderer/block/model/BakedQuad.<init>([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)V=|p_i46574_1_,p_i46574_2_,p_i46574_3_,p_i46574_4_,format
net/minecraft/client/renderer/block/model/BakedQuad.<init>([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;ZLnet/minecraft/client/renderer/vertex/VertexFormat;)V=|p_i46574_1_,p_i46574_2_,p_i46574_3_,p_i46574_4_,applyDiffuseLighting,format
net/minecraft/client/renderer/texture/TextureMap.<init>(Ljava/lang/String;Lnet/minecraft/client/renderer/texture/IIconCreator;Z)V=|p_i46100_1_,p_i46100_2_,skipFirst

View File

@ -245,7 +245,7 @@ public class ModelBakeEventDebug
vertexToInts((float)v2.xCoord, (float)v2.yCoord, (float)v2.zCoord, -1, texture, 0, 16),
vertexToInts((float)v3.xCoord, (float)v3.yCoord, (float)v3.zCoord, -1, texture, 16, 16),
vertexToInts((float)v4.xCoord, (float)v4.yCoord, (float)v4.zCoord, -1, texture, 16, 0)
), -1, side, texture, DefaultVertexFormats.BLOCK);
), -1, side, texture, true, DefaultVertexFormats.BLOCK);
}
@Override