mirror of
https://github.com/Shiewk/BedrockDeathScreen.git
synced 2026-04-27 22:44:17 +02:00
46 lines
1.8 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|