From fd3bcab5222bc9d8fb12ad51dbf54a0a24fa3717 Mon Sep 17 00:00:00 2001 From: gnembon Date: Mon, 16 Sep 2019 22:01:06 -0300 Subject: [PATCH] fix --- .../fakes/MinecraftClientInferface.java | 6 ++++ .../java/carpet/logging/LoggerRegistry.java | 6 ++-- .../mixins/GameRenderer_pausedShakeMixin.java | 36 +++++++++++++++++++ .../MinecraftClient_pausedShakeMixin.java | 18 ++++------ src/main/resources/carpet.mixins.json | 7 ++-- 5 files changed, 56 insertions(+), 17 deletions(-) create mode 100644 src/main/java/carpet/fakes/MinecraftClientInferface.java create mode 100644 src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java 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 9e64e131..5b9b5a54 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -133,6 +133,10 @@ "client": [ "RenderTickCounter_tickSpeedMixin", "MinecraftClientMixin", + + "MinecraftClient_pausedShakeMixin", + "GameRenderer_pausedShakeMixin", + "IntegratedServerMixin", "InGameHudMixin", "PlayerListHudMixin", @@ -140,8 +144,7 @@ "ClientPlayerInteractionManager_ghostBlocksMixin", "BlockEntityRenderDispatcher_movableTEMixin", - "PistonBlockEntityRenderer_movableTEMixin", - "MinecraftClient_pausedShakeMixin" + "PistonBlockEntityRenderer_movableTEMixin" ], "server": [ "MinecraftDedicatedServerMixin"