From b558b132cdacecf03fc976dfb62bfb7f2df5ca33 Mon Sep 17 00:00:00 2001 From: Jonathan Colmenares Date: Sat, 9 Jul 2022 11:20:40 -0400 Subject: [PATCH] Add FogMode to ViewportEvent.RenderFog (#8825) --- .../minecraftforge/client/ForgeHooksClient.java | 2 +- .../client/event/ViewportEvent.java | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index eae191f017..333666767f 100755 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -439,7 +439,7 @@ public class ForgeHooksClient if (camera.getPosition().y < (double)((float)camera.getBlockPosition().getY() + state.getHeight(camera.getEntity().level, camera.getBlockPosition()))) IClientFluidTypeExtensions.of(state).modifyFogRender(camera, mode, renderDistance, partialTick, nearDistance, farDistance, shape); - ViewportEvent.RenderFog event = new ViewportEvent.RenderFog(type, camera, partialTick, nearDistance, farDistance, shape); + ViewportEvent.RenderFog event = new ViewportEvent.RenderFog(mode, type, camera, partialTick, nearDistance, farDistance, shape); if (MinecraftForge.EVENT_BUS.post(event)) { RenderSystem.setShaderFogStart(event.getNearPlaneDistance()); diff --git a/src/main/java/net/minecraftforge/client/event/ViewportEvent.java b/src/main/java/net/minecraftforge/client/event/ViewportEvent.java index f0d757301d..1520de9f74 100644 --- a/src/main/java/net/minecraftforge/client/event/ViewportEvent.java +++ b/src/main/java/net/minecraftforge/client/event/ViewportEvent.java @@ -8,6 +8,7 @@ package net.minecraftforge.client.event; import com.mojang.blaze3d.shaders.FogShape; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.FogRenderer.FogMode; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.world.level.material.FogType; import net.minecraftforge.common.MinecraftForge; @@ -79,25 +80,35 @@ public abstract class ViewportEvent extends Event @Cancelable public static class RenderFog extends ViewportEvent { + private final FogMode mode; private final FogType type; private float farPlaneDistance; private float nearPlaneDistance; private FogShape fogShape; @ApiStatus.Internal - public RenderFog(FogType type, Camera camera, float partialTicks, float nearPlaneDistance, float farPlaneDistance, FogShape fogShape) + public RenderFog(FogMode mode, FogType type, Camera camera, float partialTicks, float nearPlaneDistance, float farPlaneDistance, FogShape fogShape) { super(Minecraft.getInstance().gameRenderer, camera, partialTicks); + this.mode = mode; this.type = type; setFarPlaneDistance(farPlaneDistance); setNearPlaneDistance(nearPlaneDistance); setFogShape(fogShape); } + /** + * {@return the mode of fog being rendered} + */ + public FogMode getMode() + { + return mode; + } + /** * {@return the type of fog being rendered} */ - public FogType getMode() + public FogType getType() { return type; }