CrushedPixel

Untitled

Oct 22nd, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.97 KB | None | 0 0
  1. package com.replaymod.compat.shaders.mixin;
  2.  
  3. import com.replaymod.replay.ReplayHandler;
  4. import com.replaymod.replay.ReplayModReplay;
  5. import net.minecraft.client.Minecraft;
  6. import net.minecraft.client.renderer.EntityRenderer;
  7. import org.spongepowered.asm.mixin.Mixin;
  8. import org.spongepowered.asm.mixin.Shadow;
  9. import org.spongepowered.asm.mixin.injection.At;
  10. import org.spongepowered.asm.mixin.injection.Inject;
  11. import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
  12.  
  13. import java.lang.reflect.Field;
  14.  
  15. @Mixin(value = EntityRenderer.class)
  16. public abstract class MixinShaderEntityRenderer {
  17.  
  18.     @Shadow
  19.     public Minecraft mc;
  20.  
  21.     private static Field frameTimeCounterField = null;
  22.  
  23.     static {
  24.         initFrameTimeCounterField();
  25.     }
  26.  
  27.     private static void initFrameTimeCounterField() {
  28.         System.out.println("HALLO123456");
  29.         try {
  30.             frameTimeCounterField = Class.forName("shadersmod.client.Shaders")
  31.                     .getDeclaredField("frameTimeCounter");
  32.             frameTimeCounterField.setAccessible(true);
  33.         } catch (ClassNotFoundException ignore) {
  34.             // no shaders mod installed
  35.         } catch (NoSuchFieldException e) {
  36.             // the field wasn't found. Has it been renamed?
  37.             e.printStackTrace();
  38.         }
  39.     }
  40.  
  41.     @Inject(method = "renderWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;enableDepth()V"))
  42.     private void updateShaderFrameTimeCounter(CallbackInfo ignore) {
  43.         System.out.println("hellooooo");
  44.         if (frameTimeCounterField != null) {
  45.             ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler();
  46.             float timestamp = replayHandler.getReplaySender().currentTimeStamp() / 1000f % 3600f;
  47.             try {
  48.                 frameTimeCounterField.set(null, timestamp);
  49.             } catch (Exception e) {
  50.                 e.printStackTrace();
  51.             }
  52.         }
  53.     }
  54. }
Add Comment
Please, Sign In to add comment