1
mirror of https://github.com/Shiewk/BedrockDeathScreen.git synced 2026-04-27 22:44:17 +02:00
Files
BedrockDeathScreen/src/main/java/de/shiewk/bedrockdeathscreen/mixin/MixinCamera.java
T
2024-07-14 10:33:43 +02:00

46 lines
1.8 KiB
Java

package de.shiewk.bedrockdeathscreen.mixin;
import de.shiewk.bedrockdeathscreen.client.screen.BedrockDeathScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(Camera.class)
public class MixinCamera {
@Redirect(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getYaw(F)F"))
public float onYawGet(Entity instance, float tickDelta){
if (MinecraftClient.getInstance().currentScreen instanceof BedrockDeathScreen bedrockDeathScreen){
return bedrockDeathScreen.calcCamYaw();
} else {
return instance.getYaw(tickDelta);
}
}
@Redirect(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getPitch(F)F"))
public float onPitchGet(Entity instance, float tickDelta){
if (MinecraftClient.getInstance().currentScreen instanceof BedrockDeathScreen bedrockDeathScreen){
return bedrockDeathScreen.calcCamPitch();
} else {
return instance.getPitch(tickDelta);
}
}
@ModifyConstant(method = "update", constant = @Constant(floatValue = 4.0f))
public float onUpdateThirdPerson(float constant){
final MinecraftClient client = MinecraftClient.getInstance();
if (client.currentScreen instanceof BedrockDeathScreen bedrockDeathScreen){
final float delta = client.getRenderTickCounter().getTickDelta(true);
return bedrockDeathScreen.calcCameraOffset(delta);
} else {
return 4.0f;
}
}
}