Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.replaymod.compat.shaders.mixin;
- import com.replaymod.replay.ReplayHandler;
- import com.replaymod.replay.ReplayModReplay;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.EntityRenderer;
- import org.spongepowered.asm.mixin.Mixin;
- import org.spongepowered.asm.mixin.Shadow;
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
- import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
- import java.lang.reflect.Field;
- @Mixin(value = EntityRenderer.class)
- public abstract class MixinShaderEntityRenderer {
- @Shadow
- public Minecraft mc;
- private static Field frameTimeCounterField = null;
- static {
- initFrameTimeCounterField();
- }
- private static void initFrameTimeCounterField() {
- System.out.println("HALLO123456");
- try {
- frameTimeCounterField = Class.forName("shadersmod.client.Shaders")
- .getDeclaredField("frameTimeCounter");
- frameTimeCounterField.setAccessible(true);
- } catch (ClassNotFoundException ignore) {
- // no shaders mod installed
- } catch (NoSuchFieldException e) {
- // the field wasn't found. Has it been renamed?
- e.printStackTrace();
- }
- }
- @Inject(method = "renderWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;enableDepth()V"))
- private void updateShaderFrameTimeCounter(CallbackInfo ignore) {
- System.out.println("hellooooo");
- if (frameTimeCounterField != null) {
- ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler();
- float timestamp = replayHandler.getReplaySender().currentTimeStamp() / 1000f % 3600f;
- try {
- frameTimeCounterField.set(null, timestamp);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment