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;
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) {

View File

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

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",
"world_border.Mixin_UseReplayTime_ForMovement",
"world_border.Mixin_UseReplayTime_ForTexture",
"Mixin_HandleInputsInReplay",
"Mixin_FixNPCSkinCaching",
//#if MC>=11900
//$$ "Mixin_AllowExpiredPlayerKeys",