1
mirror of https://github.com/Shiewk/BedrockDeathScreen.git synced 2026-04-27 22:44:17 +02:00

FOV warp and camera

This commit is contained in:
Shy
2024-06-15 15:41:47 +02:00
parent 48b9a0a7fd
commit cc0d9ea367
5 changed files with 235 additions and 36 deletions
@@ -0,0 +1,47 @@
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.Shadow;
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 {
@Shadow private float lastTickDelta;
@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.getTickDelta();
return bedrockDeathScreen.calcCameraOffset(delta);
} else {
return 4.0f;
}
}
}