添加物品名称的显示

This commit is contained in:
17146 2024-05-18 18:18:40 +08:00
parent f34abc5ba8
commit a1de705015
3 changed files with 76 additions and 3 deletions

View file

@ -117,10 +117,35 @@ public class AmmoBarOverlay {
0xCCCCCC, 0xCCCCCC,
true true
); );
poseStack.pushPose();
poseStack.scale(0.9f, 0.9f, 1f);
// 渲染物品名称
event.getGuiGraphics().drawString(
Minecraft.getInstance().font,
centerString(gunItem.getGunDisplayName(), 20),
w / 2 + 140,
h - 38,
0xFFFFFF,
true
);
// 渲染弹药类型
event.getGuiGraphics().drawString(
Minecraft.getInstance().font,
centerString(getGunAmmoType(stack), 20),
w / 2 + 140,
h - 30,
0xC8A679,
true
);
poseStack.popPose();
} }
} }
public static ResourceLocation getFireMode(ItemStack stack) { private static ResourceLocation getFireMode(ItemStack stack) {
return switch (stack.getOrCreateTag().getInt("fire_mode")) { return switch (stack.getOrCreateTag().getInt("fire_mode")) {
case 1 -> BURST; case 1 -> BURST;
case 2 -> AUTO; case 2 -> AUTO;
@ -128,7 +153,7 @@ public class AmmoBarOverlay {
}; };
} }
public static int getGunAmmoCount(Player player) { private static int getGunAmmoCount(Player player) {
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (stack.getItem() == TargetModItems.BOCEK.get() || stack.getItem() == TargetModItems.M_79.get() if (stack.getItem() == TargetModItems.BOCEK.get() || stack.getItem() == TargetModItems.M_79.get()
@ -142,7 +167,7 @@ public class AmmoBarOverlay {
return stack.getOrCreateTag().getInt("ammo"); return stack.getOrCreateTag().getInt("ammo");
} }
public static String getPlayerAmmoCount(Player player) { private static String getPlayerAmmoCount(Player player) {
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (stack.getItem() == TargetModItems.MINIGUN.get()) { if (stack.getItem() == TargetModItems.MINIGUN.get()) {
@ -163,4 +188,43 @@ public class AmmoBarOverlay {
} }
return ""; return "";
} }
private static String getGunAmmoType(ItemStack stack) {
if (stack.getItem() == TargetModItems.BOCEK.get()) {
return "Arrow";
}
if (stack.getItem() == TargetModItems.MINIGUN.get()) {
return "Rifle Ammo";
}
if (stack.is(TargetModTags.Items.RIFLE)) {
return "Rifle Ammo";
}
if (stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) {
return "Handgun Ammo";
}
if (stack.is(TargetModTags.Items.SHOTGUN)) {
return "Shotgun Ammo";
}
if (stack.is(TargetModTags.Items.SNIPER_RIFLE)) {
return "Sniper Ammo";
}
return "";
}
private static String centerString(String string, int length) {
int spaceBefore = (length - string.length()) / 2;
int spaceAfter = length - string.length() - spaceBefore;
return String.join("",
repeatChar(spaceBefore),
string,
repeatChar(spaceAfter));
}
private static String repeatChar(int count) {
return new String(new char[count]).replace('\0', ' ');
}
} }

View file

@ -197,4 +197,9 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
public ResourceLocation getGunIcon() { public ResourceLocation getGunIcon() {
return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/aa_12.png"); return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/aa_12.png");
} }
@Override
public String getGunDisplayName() {
return "AA-12";
}
} }

View file

@ -99,6 +99,10 @@ public abstract class GunItem extends Item {
return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/default.png"); return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/default.png");
} }
public String getGunDisplayName() {
return "";
}
@Override @Override
public boolean isFoil(ItemStack stack) { public boolean isFoil(ItemStack stack) {
return stack.getOrCreateTag().getBoolean("beast"); return stack.getOrCreateTag().getBoolean("beast");