Replace InputReplayTimer with Mixin

This commit is contained in:
Jonas Herzig
2024-06-23 14:02:43 +02:00
parent 76a68b7867
commit 454e990849
4 changed files with 21 additions and 39 deletions

View File

@@ -1,13 +1,11 @@
package com.replaymod.replay; package com.replaymod.replay;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;
import com.replaymod.core.utils.WrappedTimer;
import com.replaymod.core.versions.MCVer; import com.replaymod.core.versions.MCVer;
import com.replaymod.replay.camera.CameraController; import com.replaymod.replay.camera.CameraController;
import com.replaymod.replay.camera.CameraEntity; import com.replaymod.replay.camera.CameraEntity;
import de.johni0702.minecraft.gui.versions.ScreenExt; import de.johni0702.minecraft.gui.versions.ScreenExt;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.RenderTickCounter;
//#if MC>=11802 //#if MC>=11802
//$$ import net.minecraft.client.gui.screen.DownloadingTerrainScreen; //$$ import net.minecraft.client.gui.screen.DownloadingTerrainScreen;
@@ -33,36 +31,10 @@ import org.lwjgl.glfw.GLFW;
//$$ import net.minecraft.client.multiplayer.WorldClient; //$$ import net.minecraft.client.multiplayer.WorldClient;
//#endif //#endif
public class InputReplayTimer extends WrappedTimer { public class InputReplayTimer {
private final ReplayModReplay mod; public static void updateInReplay() {
private final MinecraftClient mc; ReplayModReplay mod = ReplayModReplay.instance;
MinecraftClient mc = mod.getCore().getMinecraft();
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
);
ReplayMod.instance.runTasks(); ReplayMod.instance.runTasks();
@@ -126,9 +98,6 @@ public class InputReplayTimer extends WrappedTimer {
//#endif //#endif
} }
//#if MC>=11600
return ticksThisFrame;
//#endif
} }
public static void handleScroll(int wheel) { public static void handleScroll(int wheel) {

View File

@@ -7,7 +7,6 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.replaymod.core.KeyBindingRegistry; import com.replaymod.core.KeyBindingRegistry;
import com.replaymod.core.Module; import com.replaymod.core.Module;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;
import com.replaymod.core.mixin.MinecraftAccessor;
import com.replaymod.core.utils.ModCompat; import com.replaymod.core.utils.ModCompat;
import com.replaymod.core.versions.MCVer; import com.replaymod.core.versions.MCVer;
import com.replaymod.core.versions.MCVer.Keyboard; 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(); new GuiHandler(this).register();
} }

View File

@@ -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();
}
}

View File

@@ -9,6 +9,7 @@
"entity_tracking.Mixin_FixPartialUpdates", "entity_tracking.Mixin_FixPartialUpdates",
"world_border.Mixin_UseReplayTime_ForMovement", "world_border.Mixin_UseReplayTime_ForMovement",
"world_border.Mixin_UseReplayTime_ForTexture", "world_border.Mixin_UseReplayTime_ForTexture",
"Mixin_HandleInputsInReplay",
"Mixin_FixNPCSkinCaching", "Mixin_FixNPCSkinCaching",
//#if MC>=11900 //#if MC>=11900
//$$ "Mixin_AllowExpiredPlayerKeys", //$$ "Mixin_AllowExpiredPlayerKeys",