Fix breaking overlay weirdness. applyBakedNormals was not transforming the baked normals when applying them. Fixes #6432

This commit is contained in:
David Quintana 2020-01-16 03:20:58 +01:00
parent 088fc6b67f
commit 1936eb1f36
3 changed files with 6 additions and 4 deletions

View File

@ -19,7 +19,7 @@
float f10 = bytebuffer.getFloat(20);
Vector4f vector4f = new Vector4f(f, f1, f2, 1.0F);
vector4f.func_229372_a_(matrix4f);
+ applyBakedNormals(vector3f, bytebuffer);
+ applyBakedNormals(vector3f, bytebuffer, p_227890_1_.func_227872_b_());
this.func_225588_a_(vector4f.func_195910_a(), vector4f.func_195913_b(), vector4f.func_195914_c(), f3, f4, f5, 1.0F, f9, f10, p_227890_8_, l, vector3f.func_195899_a(), vector3f.func_195900_b(), vector3f.func_195902_c());
}
}

View File

@ -23,6 +23,7 @@ import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.Matrix3f;
import net.minecraft.client.renderer.Matrix4f;
import net.minecraft.client.renderer.Vector3f;
import net.minecraft.client.renderer.Vector4f;
@ -98,7 +99,7 @@ public interface IForgeVertexBuilder
float f10 = bytebuffer.getFloat(20);
Vector4f pos = new Vector4f(f, f1, f2, 1.0F);
pos.func_229372_a_(matrix4f);
applyBakedNormals(normal, bytebuffer);
applyBakedNormals(normal, bytebuffer, matrixEntry.func_227872_b_());
((IVertexBuilder)this).func_225588_a_(pos.getX(), pos.getY(), pos.getZ(), cr, cg, cb, ca, f9, f10, overlayCoords, lightmapCoord, normal.getX(), normal.getY(), normal.getZ());
}
}
@ -114,12 +115,13 @@ public interface IForgeVertexBuilder
return LightTexture.func_228451_a_(bl, sl);
}
default void applyBakedNormals(Vector3f generated, ByteBuffer data) {
default void applyBakedNormals(Vector3f generated, ByteBuffer data, Matrix3f normalTransform) {
byte nx = data.get(28);
byte ny = data.get(29);
byte nz = data.get(30);
if (nx != 0 || ny != 0 || nz != 0) {
generated.set(nx / 127f, ny / 127f, nz / 127f);
generated.func_229188_a_(normalTransform);
}
}
}

View File

@ -63,7 +63,7 @@ public class NewModelLoaderTest
public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, MODID);
public static RegistryObject<Block> obj_block = BLOCKS.register("obj_block", () ->
new Block(Block.Properties.create(Material.WOOD)) {
new Block(Block.Properties.create(Material.WOOD).hardnessAndResistance(10)) {
@Override
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder)
{