package xyz.nodrop.farmingtools.mixin.client; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.Camera; import net.minecraft.entity.Entity; import net.minecraft.world.World; 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.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import xyz.nodrop.farmingtools.client.pathfinding.PathfindingController; @Mixin(Camera.class) public abstract class MixinCameraInterpolation { @Shadow protected abstract void setRotation(float yaw, float pitch); @Inject(method = "update", at = @At("TAIL")) private void onCameraUpdate(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickProgress, CallbackInfo ci) { MinecraftClient client = MinecraftClient.getInstance(); if (client.player == null) return; if (!PathfindingController.INSTANCE.getExecutor().isActive()) return; float yaw = PathfindingController.INSTANCE.getExecutor().getInterpolatedYaw(tickProgress); float pitch = PathfindingController.INSTANCE.getExecutor().getInterpolatedPitch(tickProgress); this.setRotation(yaw, pitch); } }