From 7af3155b3979e694f59cc3bf65f92942837e7d92 Mon Sep 17 00:00:00 2001 From: Jonathan Colmenares Date: Fri, 22 Jul 2022 15:22:23 -0400 Subject: [PATCH] Add new hook to allow modification of lightmap via Dimension special effects (#8863) --- .../client/renderer/LightTexture.java.patch | 9 +++++++++ .../IForgeDimensionSpecialEffects.java | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/patches/minecraft/net/minecraft/client/renderer/LightTexture.java.patch b/patches/minecraft/net/minecraft/client/renderer/LightTexture.java.patch index bc73f10fdb..f5022aff27 100644 --- a/patches/minecraft/net/minecraft/client/renderer/LightTexture.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/LightTexture.java.patch @@ -1,5 +1,14 @@ --- a/net/minecraft/client/renderer/LightTexture.java +++ b/net/minecraft/client/renderer/LightTexture.java +@@ -138,6 +_,8 @@ + } + } + ++ clientlevel.m_104583_().adjustLightmapColors(clientlevel, p_109882_, f, f7, f8, j, i, vector3f1); ++ + if (f5 > 0.0F) { + float f13 = Math.max(vector3f1.m_122239_(), Math.max(vector3f1.m_122260_(), vector3f1.m_122269_())); + if (f13 < 1.0F) { @@ -193,7 +_,7 @@ } diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeDimensionSpecialEffects.java b/src/main/java/net/minecraftforge/client/extensions/IForgeDimensionSpecialEffects.java index 03e6defa90..c2161e328b 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeDimensionSpecialEffects.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeDimensionSpecialEffects.java @@ -7,6 +7,7 @@ package net.minecraftforge.client.extensions; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Matrix4f; +import com.mojang.math.Vector3f; import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.DimensionSpecialEffects; @@ -61,4 +62,20 @@ public interface IForgeDimensionSpecialEffects { return false; } + + /** + * Allows for manipulating the coloring of the lightmap texture. + * Will be called for each 16*16 combination of sky/block light values. + * + * @param level The current level (client-side). + * @param partialTicks Progress between ticks. + * @param skyDarken Current darkness of the sky. + * @param skyLight Sky light brightness factor. + * @param blockLight Block light brightness factor. + * @param pixelX X-coordinate of the lightmap texture. + * @param pixelY Y-coordinate of the lightmap texture. + * @param colors The color values that will be used: [r, g, b]. + * @see LightTexture#updateLightTexture(float) + */ + default void adjustLightmapColors(ClientLevel level, float partialTicks, float skyDarken, float skyLight, float blockLight, int pixelX, int pixelY, Vector3f colors) {} }