From 7567dce28c1e7fd090ae6a2d65d1893428073e6c Mon Sep 17 00:00:00 2001 From: JustaSqu1d Date: Wed, 15 Mar 2023 14:41:49 -0700 Subject: [PATCH] feat: camera movement smoothing This makes the camera less jittery and better for user experience Co-Authored-By: scorbett123 <50634068+scorbett123@users.noreply.github.com> --- src/main/java/adris/altoclef/AltoClef.java | 4 +++ .../altoclef/mixins/MixinLocalPlayer.java | 29 +++++++++++++++++++ src/main/resources/altoclef.mixins.json | 1 + 3 files changed, 34 insertions(+) create mode 100644 src/main/java/adris/altoclef/mixins/MixinLocalPlayer.java diff --git a/src/main/java/adris/altoclef/AltoClef.java b/src/main/java/adris/altoclef/AltoClef.java index 164067123..52534ea21 100644 --- a/src/main/java/adris/altoclef/AltoClef.java +++ b/src/main/java/adris/altoclef/AltoClef.java @@ -244,6 +244,10 @@ private void initializeBaritoneSettings() { // Water bucket placement will be handled by us exclusively getExtraBaritoneSettings().configurePlaceBucketButDontFall(true); + // For render smoothing + getClientBaritoneSettings().randomLooking.value = 0.0; + getClientBaritoneSettings().randomLooking113.value = 0.0; + // Give baritone more time to calculate paths. Sometimes they can be really far away. // Was: 2000L getClientBaritoneSettings().failureTimeoutMS.reset(); diff --git a/src/main/java/adris/altoclef/mixins/MixinLocalPlayer.java b/src/main/java/adris/altoclef/mixins/MixinLocalPlayer.java new file mode 100644 index 000000000..5c384d341 --- /dev/null +++ b/src/main/java/adris/altoclef/mixins/MixinLocalPlayer.java @@ -0,0 +1,29 @@ +package adris.altoclef.mixins; + +import com.mojang.authlib.GameProfile; +import net.minecraft.client.network.AbstractClientPlayerEntity; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.network.encryption.PlayerPublicKey; +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.CallbackInfoReturnable; + +@Mixin(ClientPlayerEntity.class) +public abstract class MixinLocalPlayer extends AbstractClientPlayerEntity { + + public MixinLocalPlayer(ClientWorld world, GameProfile profile, PlayerPublicKey publicKey) { + super(world, profile); + } + + @Inject(method = "getPitch", at = @At("RETURN"), cancellable = true) + public void getPitch(float tickDelta, CallbackInfoReturnable cir) { + cir.setReturnValue(super.getPitch(tickDelta)); + } + + @Inject(method = "getYaw", at = @At("RETURN"), cancellable = true) + public void getYaw(float tickDelta, CallbackInfoReturnable cir) { + cir.setReturnValue(super.getYaw(tickDelta)); + } +} \ No newline at end of file diff --git a/src/main/resources/altoclef.mixins.json b/src/main/resources/altoclef.mixins.json index c1ec69fda..ca6e2d4d8 100644 --- a/src/main/resources/altoclef.mixins.json +++ b/src/main/resources/altoclef.mixins.json @@ -25,6 +25,7 @@ "ClientTickMixin", "EntryMixin", "LoadChunkMixin", + "MixinLocalPlayer", "PlayerCollidesWithEntityMixin" ], "injectors": {