diff --git a/src/main/java/carpet/fakes/MinecraftClientInferface.java b/src/main/java/carpet/fakes/MinecraftClientInferface.java new file mode 100644 index 00000000..a96303ee --- /dev/null +++ b/src/main/java/carpet/fakes/MinecraftClientInferface.java @@ -0,0 +1,6 @@ +package carpet.fakes; + +public interface MinecraftClientInferface +{ + public float getPausedTickDelta(); +} diff --git a/src/main/java/carpet/logging/LoggerRegistry.java b/src/main/java/carpet/logging/LoggerRegistry.java index c1fc69c6..581f7623 100644 --- a/src/main/java/carpet/logging/LoggerRegistry.java +++ b/src/main/java/carpet/logging/LoggerRegistry.java @@ -34,9 +34,9 @@ public class LoggerRegistry registerLogger("tnt", new Logger("tnt", "brief", new String[]{"brief", "full"})); registerLogger("projectiles", new Logger("projectiles", "brief", new String[]{"brief", "full"})); registerLogger("fallingBlocks",new Logger("fallingBlocks", "brief", new String[]{"brief", "full"})); - registerLogger("kills", new Logger("kills", null, null)); - registerLogger("damage", new Logger("damage", "all", new String[]{"all","players","me"})); - registerLogger("weather", new Logger("weather", null, null)); + //registerLogger("kills", new Logger("kills", null, null)); + //registerLogger("damage", new Logger("damage", "all", new String[]{"all","players","me"})); + //registerLogger("weather", new Logger("weather", null, null)); registerLogger( "pathfinding", new Logger("pathfinding", "20", new String[]{"2", "5", "10"})); registerLogger("tps", new HUDLogger("tps", null, null)); diff --git a/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java b/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java new file mode 100644 index 00000000..6e4251c8 --- /dev/null +++ b/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java @@ -0,0 +1,36 @@ +package carpet.mixins; + +import carpet.fakes.MinecraftClientInferface; +import carpet.helpers.TickSpeed; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.Camera; +import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.render.VisibleRegion; +import net.minecraft.client.render.WorldRenderer; +import org.spongepowered.asm.mixin.Final; +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(GameRenderer.class) +public class GameRenderer_pausedShakeMixin +{ + @Shadow @Final private MinecraftClient client; + + @Redirect(method = "renderCenter", at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/render/WorldRenderer;renderEntities(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/VisibleRegion;F)V" + )) + private void renderEntitiesNoShake(WorldRenderer worldRenderer, Camera camera_1, VisibleRegion visibleRegion_1, float float_1) + { + if (!TickSpeed.process_entities) + { + worldRenderer.renderEntities(camera_1, visibleRegion_1, ((MinecraftClientInferface)client).getPausedTickDelta()); + } + else + { + worldRenderer.renderEntities(camera_1, visibleRegion_1, float_1); + } + } +} diff --git a/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java b/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java index 9865af5b..693ad49f 100644 --- a/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java +++ b/src/main/java/carpet/mixins/MinecraftClient_pausedShakeMixin.java @@ -1,24 +1,18 @@ package carpet.mixins; -import carpet.helpers.TickSpeed; +import carpet.fakes.MinecraftClientInferface; 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 +public class MinecraftClient_pausedShakeMixin implements MinecraftClientInferface { - @Shadow private boolean paused; + @Shadow private float pausedTickDelta; - @Redirect(method = "render", at = @At( - value = "FIELD", - target = "Lnet/minecraft/client/MinecraftClient;paused:Z", - ordinal = 0 - )) - private boolean isPausedForRendering(MinecraftClient client) + @Override + public float getPausedTickDelta() { - return paused || !TickSpeed.process_entities; + return pausedTickDelta; } } diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index aae93337..eb3fa6af 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -135,6 +135,10 @@ "client": [ "RenderTickCounter_tickSpeedMixin", "MinecraftClientMixin", + + "MinecraftClient_pausedShakeMixin", + "GameRenderer_pausedShakeMixin", + "IntegratedServerMixin", "InGameHudMixin", "PlayerListHudMixin", @@ -142,8 +146,7 @@ "ClientPlayerInteractionManager_ghostBlocksMixin", "BlockEntityRenderDispatcher_movableTEMixin", - "PistonBlockEntityRenderer_movableTEMixin", - "MinecraftClient_pausedShakeMixin" + "PistonBlockEntityRenderer_movableTEMixin" ], "server": [ "MinecraftDedicatedServerMixin"