添加拉栓提示

This commit is contained in:
17146 2024-07-16 01:53:55 +08:00
parent 1dbae88b63
commit f8cdce095f
3 changed files with 20 additions and 4 deletions

View file

@ -6,9 +6,12 @@ import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.init.TargetModTags; import net.mcreator.target.init.TargetModTags;
import net.minecraft.client.CameraType; import net.minecraft.client.CameraType;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGuiEvent; import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.TickEvent;
@ -28,12 +31,12 @@ public class CrossHairOverlay {
public static void eventHandler(RenderGuiEvent.Pre event) { public static void eventHandler(RenderGuiEvent.Pre event) {
int w = event.getWindow().getGuiScaledWidth(); int w = event.getWindow().getGuiScaledWidth();
int h = event.getWindow().getGuiScaledHeight(); int h = event.getWindow().getGuiScaledHeight();
Player entity = Minecraft.getInstance().player; Player player = Minecraft.getInstance().player;
if (entity == null) { if (player == null) {
return; return;
} }
double spread = entity.getPersistentData().getDouble("crosshair"); double spread = player.getPersistentData().getDouble("crosshair");
RenderSystem.disableDepthTest(); RenderSystem.disableDepthTest();
RenderSystem.depthMask(false); RenderSystem.depthMask(false);
@ -42,7 +45,7 @@ public class CrossHairOverlay {
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.setShaderColor(1, 1, 1, 1);
if (shouldRenderCrossHair(entity)) { if (shouldRenderCrossHair(player)) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/point.png"), w / 2f - 7.5f, h / 2f - 8, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/point.png"), w / 2f - 7.5f, h / 2f - 8, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2f - 9.5f - 2.8f * (float) spread, h / 2f - 8, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2f - 9.5f - 2.8f * (float) spread, h / 2f - 8, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2f - 6.5f + 2.8f * (float) spread, h / 2f - 8, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2f - 6.5f + 2.8f * (float) spread, h / 2f - 8, 0, 0, 16, 16, 16, 16);
@ -74,6 +77,17 @@ public class CrossHairOverlay {
RenderSystem.enableDepthTest(); RenderSystem.enableDepthTest();
RenderSystem.disableBlend(); RenderSystem.disableBlend();
RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.setShaderColor(1, 1, 1, 1);
ItemStack stack = player.getMainHandItem();
if (!stack.is(TargetModTags.Items.GUN)) return;
if (stack.getOrCreateTag().getBoolean("need_bolt_action")) {
Font font = Minecraft.getInstance().font;
Component component = Component.translatable("des.target.need_bolt_action");
event.getGuiGraphics().drawString(font, component, w / 2 - font.width(component) / 2, h / 2 + 50, 0xFF6969);
}
} }
private static boolean shouldRenderCrossHair(Player player) { private static boolean shouldRenderCrossHair(Player player) {

View file

@ -220,6 +220,7 @@
"enchantment.target.monster_hunter.desc": "Increases bullet damage against monsters", "enchantment.target.monster_hunter.desc": "Increases bullet damage against monsters",
"des.target.sensitivity": "Current Sensitivity of This Gun: %1$s", "des.target.sensitivity": "Current Sensitivity of This Gun: %1$s",
"des.target.need_bolt_action": "[ Need Bolt Action ]",
"commands.ammo.get": "Current %s ammo: %s", "commands.ammo.get": "Current %s ammo: %s",
"commands.ammo.set": "Set %s ammo to %s for %s players", "commands.ammo.set": "Set %s ammo to %s for %s players",

View file

@ -220,6 +220,7 @@
"enchantment.target.monster_hunter.desc": "增加对怪物的子弹伤害", "enchantment.target.monster_hunter.desc": "增加对怪物的子弹伤害",
"des.target.sensitivity": "当前枪械的灵敏度为:%1$s", "des.target.sensitivity": "当前枪械的灵敏度为:%1$s",
"des.target.need_bolt_action": "【需要拉栓】",
"commands.ammo.get": "当前%s弹药数量: %s", "commands.ammo.get": "当前%s弹药数量: %s",
"commands.ammo.set": "为%3$s位玩家的%1$s弹药数量设置为%2$s", "commands.ammo.set": "为%3$s位玩家的%1$s弹药数量设置为%2$s",