diff --git a/src/main/java/com/replaymod/replay/InputReplayTimer.java b/src/main/java/com/replaymod/replay/InputReplayTimer.java index 5b0b3d15..dd64014f 100644 --- a/src/main/java/com/replaymod/replay/InputReplayTimer.java +++ b/src/main/java/com/replaymod/replay/InputReplayTimer.java @@ -1,13 +1,11 @@ package com.replaymod.replay; import com.replaymod.core.ReplayMod; -import com.replaymod.core.utils.WrappedTimer; import com.replaymod.core.versions.MCVer; import com.replaymod.replay.camera.CameraController; import com.replaymod.replay.camera.CameraEntity; import de.johni0702.minecraft.gui.versions.ScreenExt; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.RenderTickCounter; //#if MC>=11802 //$$ import net.minecraft.client.gui.screen.DownloadingTerrainScreen; @@ -33,36 +31,10 @@ import org.lwjgl.glfw.GLFW; //$$ import net.minecraft.client.multiplayer.WorldClient; //#endif -public class InputReplayTimer extends WrappedTimer { - private final ReplayModReplay mod; - private final MinecraftClient mc; - - public InputReplayTimer(RenderTickCounter wrapped, ReplayModReplay mod) { - super(wrapped); - this.mod = mod; - this.mc = mod.getCore().getMinecraft(); - } - - @Override - public - //#if MC>=11600 - int - //#else - //$$ void - //#endif - beginRenderTick( - //#if MC>=11400 - long sysClock - //#endif - ) { - //#if MC>=11600 - int ticksThisFrame = - //#endif - super.beginRenderTick( - //#if MC>=11400 - sysClock - //#endif - ); +public class InputReplayTimer { + public static void updateInReplay() { + ReplayModReplay mod = ReplayModReplay.instance; + MinecraftClient mc = mod.getCore().getMinecraft(); ReplayMod.instance.runTasks(); @@ -126,9 +98,6 @@ public class InputReplayTimer extends WrappedTimer { //#endif } - //#if MC>=11600 - return ticksThisFrame; - //#endif } public static void handleScroll(int wheel) { diff --git a/src/main/java/com/replaymod/replay/ReplayModReplay.java b/src/main/java/com/replaymod/replay/ReplayModReplay.java index cb225447..11459bd2 100644 --- a/src/main/java/com/replaymod/replay/ReplayModReplay.java +++ b/src/main/java/com/replaymod/replay/ReplayModReplay.java @@ -7,7 +7,6 @@ import com.google.common.util.concurrent.ListenableFuture; import com.replaymod.core.KeyBindingRegistry; import com.replaymod.core.Module; import com.replaymod.core.ReplayMod; -import com.replaymod.core.mixin.MinecraftAccessor; import com.replaymod.core.utils.ModCompat; import com.replaymod.core.versions.MCVer; import com.replaymod.core.versions.MCVer.Keyboard; @@ -152,9 +151,6 @@ public class ReplayModReplay implements Module { } }); - MinecraftAccessor mc = (MinecraftAccessor) core.getMinecraft(); - mc.setTimer(new InputReplayTimer(mc.getTimer(), this)); - new GuiHandler(this).register(); } diff --git a/src/main/java/com/replaymod/replay/mixin/Mixin_HandleInputsInReplay.java b/src/main/java/com/replaymod/replay/mixin/Mixin_HandleInputsInReplay.java new file mode 100644 index 00000000..7e87b2ba --- /dev/null +++ b/src/main/java/com/replaymod/replay/mixin/Mixin_HandleInputsInReplay.java @@ -0,0 +1,16 @@ +package com.replaymod.replay.mixin; + +import com.replaymod.replay.InputReplayTimer; +import net.minecraft.client.MinecraftClient; +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(MinecraftClient.class) +public abstract class Mixin_HandleInputsInReplay { + @Inject(method = "render", at = @At(value = "CONSTANT", args = "stringValue=scheduledExecutables")) + private void updateInReplay(CallbackInfo ci) { + InputReplayTimer.updateInReplay(); + } +} diff --git a/src/main/resources/mixins.replay.replaymod.json b/src/main/resources/mixins.replay.replaymod.json index bdd258a6..a6cc78d7 100644 --- a/src/main/resources/mixins.replay.replaymod.json +++ b/src/main/resources/mixins.replay.replaymod.json @@ -9,6 +9,7 @@ "entity_tracking.Mixin_FixPartialUpdates", "world_border.Mixin_UseReplayTime_ForMovement", "world_border.Mixin_UseReplayTime_ForTexture", + "Mixin_HandleInputsInReplay", "Mixin_FixNPCSkinCaching", //#if MC>=11900 //$$ "Mixin_AllowExpiredPlayerKeys",