From 19e925725f4869c31bd33c4f6157d319e22492d6 Mon Sep 17 00:00:00 2001 From: gnembon Date: Wed, 18 Sep 2019 20:32:35 -0300 Subject: [PATCH] 19w38b fixed shake rendering oncemore --- .../mixins/GameRenderer_pausedShakeMixin.java | 2 +- .../RenderTickCounter_tickSpeedMixin.java | 2 +- .../WorldRenderer_pausedShakeMixin.java | 24 +++++++++++++------ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java b/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java index 172635a8..3da78218 100644 --- a/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java +++ b/src/main/java/carpet/mixins/GameRenderer_pausedShakeMixin.java @@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(GameRenderer.class) public class GameRenderer_pausedShakeMixin { - @Shadow @Final private MinecraftClient client; /* + @Shadow @Final private MinecraftClient client; /* needs fixing somewhere else @Redirect(method = "renderCenter", at = @At( value = "INVOKE", diff --git a/src/main/java/carpet/mixins/RenderTickCounter_tickSpeedMixin.java b/src/main/java/carpet/mixins/RenderTickCounter_tickSpeedMixin.java index 812ec41e..d2f1fe7a 100644 --- a/src/main/java/carpet/mixins/RenderTickCounter_tickSpeedMixin.java +++ b/src/main/java/carpet/mixins/RenderTickCounter_tickSpeedMixin.java @@ -14,7 +14,7 @@ public class RenderTickCounter_tickSpeedMixin { target = "Lnet/minecraft/client/render/RenderTickCounter;tickTime:F" )) private float adjustTickSpeed(RenderTickCounter counter) { - if (CarpetSettings.smoothClientAnimations) + if (CarpetSettings.smoothClientAnimations && TickSpeed.process_entities) { return Math.max(50.0f, TickSpeed.mspt); } diff --git a/src/main/java/carpet/mixins/WorldRenderer_pausedShakeMixin.java b/src/main/java/carpet/mixins/WorldRenderer_pausedShakeMixin.java index 559b131a..9e7c0b21 100644 --- a/src/main/java/carpet/mixins/WorldRenderer_pausedShakeMixin.java +++ b/src/main/java/carpet/mixins/WorldRenderer_pausedShakeMixin.java @@ -1,18 +1,28 @@ package carpet.mixins; +import carpet.fakes.MinecraftClientInferface; +import carpet.helpers.TickSpeed; +import net.minecraft.client.MinecraftClient; 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; +import org.spongepowered.asm.mixin.injection.ModifyVariable; @Mixin(WorldRenderer.class) public class WorldRenderer_pausedShakeMixin { - /* todo - figure out proper injections to render entity - @Redirect(method = "method_22710", @At( - value = "INVOKE", - target = "float_1" - )) - */ + @Shadow @Final private MinecraftClient client; + @ModifyVariable(method = "method_22710", argsOnly = true, ordinal = 0 ,at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/world/ClientWorld;getEntities()Ljava/lang/Iterable;" + )) + private float changeTickPhase(float previous) + { + if (!TickSpeed.process_entities) + return ((MinecraftClientInferface)client).getPausedTickDelta(); + return previous; + } }