This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
GulliverReloaded/src/main/java/com/thebrokenrail/gulliverreloaded/mixin/MixinCamera.java

29 lines
1.1 KiB
Java

package com.thebrokenrail.gulliverreloaded.mixin;
import com.thebrokenrail.gulliverreloaded.ScaledEntity;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
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;
@SuppressWarnings("unused")
@Environment(EnvType.CLIENT)
@Mixin(Camera.class)
public abstract class MixinCamera {
@Shadow
private Entity focusedEntity;
@Shadow
protected abstract double clipToSpace(double distance);
@Shadow
protected abstract void moveBy(double x, double y, double z);
@Redirect(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;clipToSpace(D)D"))
public double onUpdateClipToSpaceProxy(Camera obj, double distance) {
float scale = focusedEntity instanceof ScaledEntity ? ((ScaledEntity) focusedEntity).getScale() : 1f;
return clipToSpace(distance * scale);
}
}