36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
package net.mcreator.target.client;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.tags.ItemTags;
|
|
import net.minecraft.world.entity.player.Player;
|
|
import net.minecraft.world.item.ItemStack;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.client.event.ViewportEvent;
|
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
import net.minecraftforge.fml.common.Mod;
|
|
|
|
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
|
|
public class RenderHandler {
|
|
|
|
@SubscribeEvent
|
|
public static void onFovUpdate(ViewportEvent.ComputeFov event) {
|
|
if (!event.usedConfiguredFov()) {
|
|
return;
|
|
}
|
|
|
|
Player player = Minecraft.getInstance().player;
|
|
|
|
if (player != null) {
|
|
ItemStack stack = player.getMainHandItem();
|
|
|
|
double p = player.getPersistentData().getDouble("zoompos");
|
|
double zoom = stack.getOrCreateTag().getDouble("zoom");
|
|
|
|
if (stack.is(ItemTags.create(new ResourceLocation("target:gun")))) {
|
|
event.setFOV(event.getFOV() / (1.0 + p * (zoom - 1)));
|
|
player.getPersistentData().putDouble("fov", event.getFOV());
|
|
}
|
|
}
|
|
}
|
|
}
|