diff --git a/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java b/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java new file mode 100644 index 00000000..9865af5b --- /dev/null +++ b/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java @@ -0,0 +1,24 @@ +package carpet.mixins; + +import carpet.helpers.TickSpeed; +import net.minecraft.client.MinecraftClient; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(MinecraftClient.class) +public class MinecraftClient_pausedShakeMixin +{ + @Shadow private boolean paused; + + @Redirect(method = "render", at = @At( + value = "FIELD", + target = "Lnet/minecraft/client/MinecraftClient;paused:Z", + ordinal = 0 + )) + private boolean isPausedForRendering(MinecraftClient client) + { + return paused || !TickSpeed.process_entities; + } +} diff --git a/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java b/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java index afe068cb..480f53fa 100644 --- a/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayNetworkHandler_tickMixin.java @@ -36,7 +36,9 @@ public class ServerPlayNetworkHandler_tickMixin )) private void checkMove(PlayerMoveC2SPacket p, CallbackInfo ci) { - if (p.getX(player.x) - lastTickX > 0.0001D || p.getY(player.y) - lastTickY > 0.0001D || p.getY(player.y) - lastTickY > 0.0001D) + if (Math.abs(p.getX(player.x) - lastTickX) > 0.0001D + || Math.abs(p.getY(player.y) - lastTickY) > 0.0001D + || Math.abs(p.getY(player.y) - lastTickY) > 0.0001D) { TickSpeed.reset_player_active_timeout(); } diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 174a43f0..4cd22f74 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -138,7 +138,8 @@ "ClientPlayerInteractionManager_ghostBlocksMixin", "BlockEntityRenderDispatcher_movableTEMixin", - "PistonBlockEntityRenderer_movableTEMixin" + "PistonBlockEntityRenderer_movableTEMixin", + "MinecraftClient_pausedShakeMixin" ], "server": [ "MinecraftDedicatedServerMixin"