Automatically disable and re-enable Optifine's Fast Render setting before rendering a video

This commit is contained in:
CrushedPixel
2016-11-28 23:21:20 +01:00
committed by johni0702
parent 1fef12d2bd
commit 030c71c868
5 changed files with 97 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
package com.replaymod.compat.optifine;
import com.replaymod.render.events.ReplayRenderEvent;
import net.minecraft.client.Minecraft;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class DisableFastRender {
private final Minecraft mc = Minecraft.getMinecraft();
private boolean wasFastRender = false;
@SubscribeEvent
public void onRenderBegin(ReplayRenderEvent.Pre event) {
if (!FMLClientHandler.instance().hasOptifine()) return;
try {
wasFastRender = (boolean) OptifineReflection.gameSettings_ofFastRender.get(mc.gameSettings);
OptifineReflection.gameSettings_ofFastRender.set(mc.gameSettings, false);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
@SubscribeEvent
public void onRenderEnd(ReplayRenderEvent.Post event){
if (!FMLClientHandler.instance().hasOptifine()) return;
try {
OptifineReflection.gameSettings_ofFastRender.set(mc.gameSettings, wasFastRender);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}