From 7b67fb42426391e8dde346987b9bc4d6cd4f3e63 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Fri, 24 Jul 2015 14:35:28 +0200 Subject: [PATCH] Instead of ticking the world once (which updated entities and such), simply set the EntityRenderer's lightmapUpdateNeeded to true when updating Ambient Lighting Properly handle manual Gamma changes in LightingHandler not to confuse users why their Brightness setting is being reset constantly --- .../replaymod/registry/LightingHandler.java | 27 ++++++++----------- src/main/resources/META-INF/replaymod_at.cfg | 1 + 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/registry/LightingHandler.java b/src/main/java/eu/crushedpixel/replaymod/registry/LightingHandler.java index 2122fa77..495e8a99 100644 --- a/src/main/java/eu/crushedpixel/replaymod/registry/LightingHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/registry/LightingHandler.java @@ -11,26 +11,21 @@ public class LightingHandler { private static float initialGamma = 0; private static boolean enabled = false; - + public static void setLighting(boolean lighting) { - if(lighting) { - if(!enabled) { - initialGamma = Minecraft.getMinecraft().gameSettings.getOptionFloatValue(Options.GAMMA); - } - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.GAMMA, 1000); - } else Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.GAMMA, initialGamma); + + float gamma = mc.gameSettings.getOptionFloatValue(Options.GAMMA); + if(gamma < 1000) { + initialGamma = gamma; + } + + if(lighting) mc.gameSettings.setOptionFloatValue(Options.GAMMA, 1000); + else mc.gameSettings.setOptionFloatValue(Options.GAMMA, initialGamma); enabled = lighting; - try { - if(ReplayMod.replaySender.paused()) { - mc.timer.elapsedPartialTicks += 1; - mc.timer.renderPartialTicks += 1; - } else { - Minecraft.getMinecraft().entityRenderer.updateCameraAndRender(0); - } - } catch(Exception e) { - e.printStackTrace(); + if(ReplayMod.replaySender.paused()) { + mc.entityRenderer.lightmapUpdateNeeded = true; } } diff --git a/src/main/resources/META-INF/replaymod_at.cfg b/src/main/resources/META-INF/replaymod_at.cfg index b4a79885..2b4322ec 100644 --- a/src/main/resources/META-INF/replaymod_at.cfg +++ b/src/main/resources/META-INF/replaymod_at.cfg @@ -49,6 +49,7 @@ public net.minecraft.client.renderer.EntityRenderer field_175083_ad # useShader public net.minecraft.client.renderer.EntityRenderer field_78530_s # farPlaneDistance public net.minecraft.client.renderer.EntityRenderer field_78507_R # fovModifierHand public net.minecraft.client.renderer.EntityRenderer field_78506_S # fovModifierHandPrev +public net.minecraft.client.renderer.EntityRenderer field_78536_aa # lightmapUpdateNeeded public net.minecraft.client.renderer.EntityRenderer func_78467_g(F)V # orientCamera public net.minecraft.client.renderer.EntityRenderer func_78474_d(F)V # renderRainSnow