From 1936eb1f368d48dbda1ccb53f46a21dd8f497a9d Mon Sep 17 00:00:00 2001 From: David Quintana Date: Thu, 16 Jan 2020 03:20:58 +0100 Subject: [PATCH] Fix breaking overlay weirdness. applyBakedNormals was not transforming the baked normals when applying them. Fixes #6432 --- .../com/mojang/blaze3d/vertex/IVertexBuilder.java.patch | 2 +- .../client/extensions/IForgeVertexBuilder.java | 6 ++++-- .../debug/client/model/NewModelLoaderTest.java | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch b/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch index b98e6093b..fe2ade796 100644 --- a/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch +++ b/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch @@ -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()); } } diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java b/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java index 3781390eb..3927785c0 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java @@ -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); } } } diff --git a/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java b/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java index 352121c99..71d567d8b 100644 --- a/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java +++ b/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java @@ -63,7 +63,7 @@ public class NewModelLoaderTest public static final DeferredRegister ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, MODID); public static RegistryObject 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 builder) {