39 lines
1.4 KiB
Java
39 lines
1.4 KiB
Java
//#if MC>=10800
|
|
package com.replaymod.compat.shaders.mixin;
|
|
|
|
import com.replaymod.compat.shaders.ShaderReflection;
|
|
import com.replaymod.replay.ReplayHandler;
|
|
import com.replaymod.replay.ReplayModReplay;
|
|
import net.minecraft.client.render.GameRenderer;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
@Mixin(GameRenderer.class)
|
|
public abstract class MixinShaderEntityRenderer {
|
|
|
|
//#if MC>=11400
|
|
@Inject(method = "renderCenter", at = @At("HEAD"))
|
|
//#else
|
|
//#if MC>=11300
|
|
//$$ @Inject(method = "updateCameraAndRender(FJ)V", at = @At("HEAD"))
|
|
//#else
|
|
//$$ @Inject(method = "renderWorldPass", at = @At("HEAD"))
|
|
//#endif
|
|
//#endif
|
|
private void replayModCompat_updateShaderFrameTimeCounter(CallbackInfo ignore) {
|
|
if (ReplayModReplay.instance.getReplayHandler() == null) return;
|
|
if (ShaderReflection.shaders_frameTimeCounter == null) return;
|
|
|
|
ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler();
|
|
float timestamp = replayHandler.getReplaySender().currentTimeStamp() / 1000f % 3600f;
|
|
try {
|
|
ShaderReflection.shaders_frameTimeCounter.set(null, timestamp);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
//#endif
|