diff --git a/src/main/java/net/mcreator/target/client/screens/AmmoBarOverlay.java b/src/main/java/net/mcreator/target/client/screens/AmmoBarOverlay.java index 5646ff0a1..8ba468dae 100644 --- a/src/main/java/net/mcreator/target/client/screens/AmmoBarOverlay.java +++ b/src/main/java/net/mcreator/target/client/screens/AmmoBarOverlay.java @@ -2,7 +2,9 @@ package net.mcreator.target.client.screens; import com.mojang.blaze3d.vertex.PoseStack; import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.init.TargetModKeyMappings; import net.mcreator.target.init.TargetModTags; +import net.mcreator.target.item.gun.GunItem; import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.tools.FireMode; import net.minecraft.client.Minecraft; @@ -28,29 +30,52 @@ public class AmmoBarOverlay { } ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModTags.Items.GUN)) { + if (stack.getItem() instanceof GunItem gunItem) { PoseStack poseStack = event.getGuiGraphics().pose(); + // 渲染图标 + event.getGuiGraphics().blit(gunItem.getGunIcon(), + w / 2 + 100, + h - 40, + 0, + 0, + 64, + 16, + 64, + 16); + FireMode mode = getFireMode(stack); + // 渲染开火模式切换按键 + event.getGuiGraphics().drawString( + Minecraft.getInstance().font, + "[" + TargetModKeyMappings.FIREMODE.getKey().getDisplayName().getString() + "]", + w / 2 + 125, + h - 18, + 0xFFFFFF, + true + ); + + // 渲染当前弹药量 poseStack.pushPose(); poseStack.scale(1.5f, 1.5f, 1f); event.getGuiGraphics().drawString( Minecraft.getInstance().font, getGunAmmoCount(player) + "", - w / 3f + 117, - h / 1.5f - 28, + w / 3f + 112, + h / 1.5f - 31, 0xFFFFFF, true ); poseStack.popPose(); + // 渲染备弹量 event.getGuiGraphics().drawString( Minecraft.getInstance().font, getPlayerAmmoCount(player), - w / 2 + 180, - h - 30, + w / 2 + 170, + h - 35, 0xCCCCCC, true ); @@ -83,12 +108,10 @@ public class AmmoBarOverlay { public static String getPlayerAmmoCount(Player player) { ItemStack stack = player.getMainHandItem(); - if (stack.getItem() == TargetModItems.BOCEK.get()) { - return ""; - } if (stack.getItem() == TargetModItems.MINIGUN.get()) { return ""; } + if (stack.is(TargetModTags.Items.RIFLE)) { return "" + (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleAmmo; } diff --git a/src/main/java/net/mcreator/target/item/gun/Aa12Item.java b/src/main/java/net/mcreator/target/item/gun/Aa12Item.java index 7b2195531..ad95684f6 100644 --- a/src/main/java/net/mcreator/target/item/gun/Aa12Item.java +++ b/src/main/java/net/mcreator/target/item/gun/Aa12Item.java @@ -16,6 +16,7 @@ import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.Entity; @@ -191,4 +192,9 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { public void setAnimationProcedure(String procedure) { this.animationProcedure = procedure; } + + @Override + public ResourceLocation getGunIcon() { + return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/aa_12.png"); + } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/target/item/gun/GunItem.java b/src/main/java/net/mcreator/target/item/gun/GunItem.java index 445caefbc..5cded16d2 100644 --- a/src/main/java/net/mcreator/target/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/target/item/gun/GunItem.java @@ -1,5 +1,6 @@ package net.mcreator.target.item.gun; +import net.mcreator.target.TargetMod; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; @@ -7,6 +8,7 @@ import net.mcreator.target.tools.GunsTool; import net.mcreator.target.tools.ItemNBTTool; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; @@ -93,6 +95,10 @@ public abstract class GunItem extends Item { return Set.of(); } + public ResourceLocation getGunIcon() { + return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/default.png"); + } + @Override public boolean isFoil(ItemStack stack) { return stack.getOrCreateTag().getBoolean("beast"); diff --git a/src/main/resources/assets/target/textures/gun_icon/aa_12.png b/src/main/resources/assets/target/textures/gun_icon/aa_12.png new file mode 100644 index 000000000..dc5f7f7fa Binary files /dev/null and b/src/main/resources/assets/target/textures/gun_icon/aa_12.png differ diff --git a/src/main/resources/assets/target/textures/gun_icon/default.png b/src/main/resources/assets/target/textures/gun_icon/default.png new file mode 100644 index 000000000..7078e6e3e Binary files /dev/null and b/src/main/resources/assets/target/textures/gun_icon/default.png differ