diff --git a/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch b/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch index 1824e1927f..a9c398891b 100644 --- a/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch +++ b/patches/minecraft/com/mojang/blaze3d/vertex/IVertexBuilder.java.patch @@ -9,3 +9,12 @@ Logger field_227884_f_ = LogManager.getLogger(); IVertexBuilder func_225582_a_(double p_225582_1_, double p_225582_3_, double p_225582_5_); +@@ -95,7 +95,7 @@ + f5 = p_227890_3_[k] * p_227890_6_; + } + +- int l = p_227890_7_[k]; ++ int l = applyBakedLighting(p_227890_7_[k], bytebuffer); + float f9 = bytebuffer.getFloat(16); + float f10 = bytebuffer.getFloat(20); + Vector4f vector4f = new Vector4f(f, f1, f2, 1.0F); diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index 57c9b8bc7d..3315e39f62 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -742,7 +742,7 @@ public class ForgeHooksClient for(int i = 0; i < 4; i++) { - faceData[i * 8 + 6] = normal; + faceData[i * 8 + 7] = normal; } } diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java b/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java index 17fc79325c..80775cad5c 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeVertexBuilder.java @@ -91,7 +91,7 @@ public interface IForgeVertexBuilder ca = alpha; } - int lightmapCoord = lightmapCoords[v]; + int lightmapCoord = applyBakedLighting(lightmapCoords[v], bytebuffer); float f9 = bytebuffer.getFloat(16); float f10 = bytebuffer.getFloat(20); Vector4f pos = new Vector4f(f, f1, f2, 1.0F); @@ -99,6 +99,13 @@ public interface IForgeVertexBuilder ((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()); } } - + } + + default int applyBakedLighting(int lightmapCoord, ByteBuffer data) { + int sl = (lightmapCoord >> 16) & 0xFFFF; + int bl = lightmapCoord & 0xFFFF; + sl = Math.max(sl, Short.toUnsignedInt(data.getShort(24))); + bl = Math.max(bl, Short.toUnsignedInt(data.getShort(26))); + return (sl << 16) | bl; } } diff --git a/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java b/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java index c8d2d8a78e..ab6fc18a6e 100644 --- a/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java +++ b/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java @@ -504,7 +504,7 @@ public class OBJModel implements IMultipartModelGeometry texture.getInterpolatedV((flipV ? (1 - texCoord0.y) : texCoord0.y) * 16) ); break; - case 1: + case 2: consumer.put(j, uv2.x, uv2.y); break; default: 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 25d209508f..0444daa08e 100644 --- a/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java +++ b/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java @@ -19,9 +19,6 @@ package net.minecraftforge.debug.client.model; -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.systems.RenderSystem; - import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.FourWayBlock; @@ -43,7 +40,6 @@ import net.minecraftforge.client.model.obj.OBJModel; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.NonNullLazy; import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -78,7 +74,7 @@ public class NewModelLoaderTest } ); - public static RegistryObject obj_item = ITEMS.register("obj_item", () -> + public static RegistryObject obj_item = ITEMS.register("obj_block", () -> new BlockItem(obj_block.get(), new Item.Properties().group(ItemGroup.MISC)) { @Override public boolean canEquip(ItemStack stack, EquipmentSlotType armorType, Entity entity)