Files
help/MixinCameraInterpolation.java
2026-06-01 09:00:43 +00:00

30 lines
1.3 KiB
Java

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);
}
}