diff --git a/src/main/java/net/mcreator/superbwarfare/client/ClientRenderHandler.java b/src/main/java/net/mcreator/superbwarfare/client/ClientRenderHandler.java index 8377d3171..a76126052 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/ClientRenderHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/client/ClientRenderHandler.java @@ -1,7 +1,9 @@ package net.mcreator.superbwarfare.client; -import net.mcreator.superbwarfare.client.tooltip.ClientImageTooltip; -import net.mcreator.superbwarfare.client.tooltip.ImageTooltip; +import net.mcreator.superbwarfare.client.tooltip.*; +import net.mcreator.superbwarfare.client.tooltip.component.BocekImageComponent; +import net.mcreator.superbwarfare.client.tooltip.component.GunImageComponent; +import net.mcreator.superbwarfare.client.tooltip.component.ShotgunImageComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.RegisterClientTooltipComponentFactoriesEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -12,7 +14,9 @@ public class ClientRenderHandler { @SubscribeEvent public static void registerTooltip(RegisterClientTooltipComponentFactoriesEvent event) { - event.register(ImageTooltip.class, ClientImageTooltip::new); + event.register(GunImageComponent.class, ClientGunImageTooltip::new); + event.register(ShotgunImageComponent.class, ClientShotgunImageTooltip::new); + event.register(BocekImageComponent.class, ClientBocekImageTooltip::new); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientBocekImageTooltip.java b/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientBocekImageTooltip.java new file mode 100644 index 000000000..28e3da79e --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientBocekImageTooltip.java @@ -0,0 +1,44 @@ +package net.mcreator.superbwarfare.client.tooltip; + +import net.mcreator.superbwarfare.client.tooltip.component.GunImageComponent; +import net.mcreator.superbwarfare.perk.AmmoPerk; +import net.mcreator.superbwarfare.perk.Perk; +import net.mcreator.superbwarfare.perk.PerkHelper; +import net.mcreator.superbwarfare.tools.ItemNBTTool; +import net.mcreator.superbwarfare.tools.TooltipTool; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; + +import java.text.DecimalFormat; + +public class ClientBocekImageTooltip extends ClientGunImageTooltip { + + public ClientBocekImageTooltip(GunImageComponent tooltip) { + super(tooltip); + } + + @Override + protected Component getDamageComponent() { + boolean slug = false; + + var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); + if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) { + slug = true; + } + + double total = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); + + if (slug) { + return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(total) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#") + .format(0.8 * total * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)); + } else { + return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(total * 0.1) + " * 10").withStyle(ChatFormatting.GREEN)) + .append(Component.literal(" / ").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(total)).withStyle(ChatFormatting.GREEN)); + } + } +} diff --git a/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientImageTooltip.java b/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientGunImageTooltip.java similarity index 79% rename from src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientImageTooltip.java rename to src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientGunImageTooltip.java index d0c1aadc6..5487d96fa 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientImageTooltip.java +++ b/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientGunImageTooltip.java @@ -1,6 +1,6 @@ package net.mcreator.superbwarfare.client.tooltip; -import net.mcreator.superbwarfare.init.ModItems; +import net.mcreator.superbwarfare.client.tooltip.component.GunImageComponent; import net.mcreator.superbwarfare.init.ModKeyMappings; import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; @@ -23,13 +23,13 @@ import org.jetbrains.annotations.NotNull; import java.text.DecimalFormat; // TODO 等nbt重置后,修改nbt位置 -public class ClientImageTooltip implements ClientTooltipComponent { +public class ClientGunImageTooltip implements ClientTooltipComponent { - private final int width; - private final int height; - private final ItemStack stack; + protected final int width; + protected final int height; + protected final ItemStack stack; - public ClientImageTooltip(ImageTooltip tooltip) { + public ClientGunImageTooltip(GunImageComponent tooltip) { this.width = tooltip.width; this.height = tooltip.height; this.stack = tooltip.stack; @@ -63,22 +63,22 @@ public class ClientImageTooltip implements ClientTooltipComponent { guiGraphics.pose().popPose(); } - private boolean shouldRenderBypassAndHeadshotTooltip() { + protected boolean shouldRenderBypassAndHeadshotTooltip() { return ItemNBTTool.getDouble(stack, "BypassesArmor", 0) > 0 || ItemNBTTool.getDouble(stack, "headshot", 0) > 0; } - private boolean shouldRenderEditTooltip() { + protected boolean shouldRenderEditTooltip() { return stack.is(ModTags.Items.CAN_CUSTOM_GUN); } - private boolean shouldRenderPerks() { + protected boolean shouldRenderPerks() { return PerkHelper.getPerkByType(stack, Perk.Type.AMMO) != null || PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE) != null || PerkHelper.getPerkByType(stack, Perk.Type.FUNCTIONAL) != null; } /** * 渲染武器伤害和射速 */ - private void renderDamageAndRpmTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { + protected void renderDamageAndRpmTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { guiGraphics.drawString(font, getDamageComponent(), x, y, 0xFFFFFF); int xo = font.width(getDamageComponent().getVisualOrderText()); guiGraphics.drawString(font, getRpmComponent(), x + xo + 16, y, 0xFFFFFF); @@ -87,14 +87,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 获取武器伤害的文本组件 */ - private Component getDamageComponent() { - if (stack.is(ModItems.BOCEK.get())) { - return getBocekDamageComponent(); - } - if (stack.is(ModTags.Items.SHOTGUN)) { - return getShotgunDamageComponent(); - } - + protected Component getDamageComponent() { double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) @@ -102,56 +95,10 @@ public class ClientImageTooltip implements ClientTooltipComponent { + new DecimalFormat("##.#").format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)); } - private Component getShotgunDamageComponent() { - boolean slug = false; - - var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); - if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) { - slug = true; - } - - if (slug) { - double damage = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "projectile_amount", 0) * TooltipTool.perkDamage(stack); - return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) - .append(Component.literal("").withStyle(ChatFormatting.RESET)) - .append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#") - .format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)); - } else { - double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); - return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) - .append(Component.literal("").withStyle(ChatFormatting.RESET)) - .append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(ItemNBTTool.getDouble(stack, "projectile_amount", 0))).withStyle(ChatFormatting.GREEN)); - } - } - - private Component getBocekDamageComponent() { - boolean slug = false; - - var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); - if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) { - slug = true; - } - - double total = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); - - if (slug) { - return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) - .append(Component.literal("").withStyle(ChatFormatting.RESET)) - .append(Component.literal(new DecimalFormat("##.#").format(total) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#") - .format(0.8 * total * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)); - } else { - return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) - .append(Component.literal("").withStyle(ChatFormatting.RESET)) - .append(Component.literal(new DecimalFormat("##.#").format(total * 0.1) + " * 10").withStyle(ChatFormatting.GREEN)) - .append(Component.literal(" / ").withStyle(ChatFormatting.RESET)) - .append(Component.literal(new DecimalFormat("##.#").format(total)).withStyle(ChatFormatting.GREEN)); - } - } - /** * 获取武器射速的文本组件 */ - private Component getRpmComponent() { + protected Component getRpmComponent() { if (!stack.is(ModTags.Items.IS_AUTO_WEAPON)) { return Component.literal(""); } else { @@ -165,7 +112,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 渲染武器等级和强化点数 */ - private void renderLevelAndUpgradePointTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { + protected void renderLevelAndUpgradePointTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { guiGraphics.drawString(font, getLevelComponent(), x, y, 0xFFFFFF); int xo = font.width(getLevelComponent().getVisualOrderText()); guiGraphics.drawString(font, getUpgradePointComponent(), x + xo + 16, y, 0xFFFFFF); @@ -174,7 +121,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 获取武器等级文本组件 */ - private Component getLevelComponent() { + protected Component getLevelComponent() { int level = ItemNBTTool.getInt(stack, "Level", 0); double rate = ItemNBTTool.getDouble(stack, "Exp", 0) / (20 * Math.pow(level, 2) + 160 * level + 20); @@ -201,7 +148,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 获取武器强化点数文本组件 */ - private Component getUpgradePointComponent() { + protected Component getUpgradePointComponent() { int upgradePoint = Mth.floor(ItemNBTTool.getDouble(stack, "UpgradePoint", 0)); return Component.translatable("des.superbwarfare.tips.upgrade_point").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) @@ -211,7 +158,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 渲染武器穿甲比例和爆头倍率 */ - private void renderBypassAndHeadshotTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { + protected void renderBypassAndHeadshotTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { guiGraphics.drawString(font, getBypassComponent(), x, y, 0xFFFFFF); int xo = font.width(getBypassComponent().getVisualOrderText()); guiGraphics.drawString(font, getHeadshotComponent(), x + xo + 16, y, 0xFFFFFF); @@ -220,7 +167,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 获取武器穿甲比例文本组件 */ - private Component getBypassComponent() { + protected Component getBypassComponent() { double perkBypassArmorRate = 0; var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); @@ -238,7 +185,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 获取武器爆头倍率文本组件 */ - private Component getHeadshotComponent() { + protected Component getHeadshotComponent() { double headshot = ItemNBTTool.getDouble(stack, "headshot", 0); return Component.translatable("des.superbwarfare.tips.headshot").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) @@ -248,14 +195,14 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 渲染武器改装信息 */ - private void renderWeaponEditTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { + protected void renderWeaponEditTooltip(Font font, GuiGraphics guiGraphics, int x, int y) { guiGraphics.drawString(font, getEditComponent(), x, y + 10, 0xFFFFFF); } /** * 获取武器改装信息文本组件 */ - private Component getEditComponent() { + protected Component getEditComponent() { return Component.translatable("des.superbwarfare.tips.edit", "[" + ModKeyMappings.EDIT_MODE.getKey().getDisplayName().getString() + "]") .withStyle(ChatFormatting.LIGHT_PURPLE).withStyle(ChatFormatting.ITALIC); } @@ -263,7 +210,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 渲染武器模组缩略图 */ - private void renderPerksShortcut(Font font, GuiGraphics guiGraphics, int x, int y) { + protected void renderPerksShortcut(Font font, GuiGraphics guiGraphics, int x, int y) { guiGraphics.pose().pushPose(); int xOffset = -20; @@ -324,7 +271,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { /** * 渲染武器模组详细信息 */ - private void renderPerks(Font font, GuiGraphics guiGraphics, int x, int y) { + protected void renderPerks(Font font, GuiGraphics guiGraphics, int x, int y) { guiGraphics.pose().pushPose(); guiGraphics.drawString(font, Component.translatable("perk.superbwarfare.tips").withStyle(ChatFormatting.GOLD).withStyle(ChatFormatting.UNDERLINE), x, y + 10, 0xFFFFFF); @@ -400,7 +347,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { guiGraphics.pose().popPose(); } - private int getDefaultMaxWidth(Font font) { + protected int getDefaultMaxWidth(Font font) { int width = font.width(getDamageComponent().getVisualOrderText()) + font.width(getRpmComponent().getVisualOrderText()) + 16; width = Math.max(width, font.width(getLevelComponent().getVisualOrderText()) + font.width(getUpgradePointComponent().getVisualOrderText()) + 16); if (shouldRenderBypassAndHeadshotTooltip()) { @@ -413,7 +360,7 @@ public class ClientImageTooltip implements ClientTooltipComponent { return width + 4; } - private int getMaxPerkDesWidth(Font font) { + protected int getMaxPerkDesWidth(Font font) { if (!shouldRenderPerks()) return 0; int width = 0; @@ -459,9 +406,9 @@ public class ClientImageTooltip implements ClientTooltipComponent { if (shouldRenderEditTooltip()) height += 20; if (shouldRenderPerks()) { if (!Screen.hasShiftDown()) { - height += 20; + height += 16; } else { - height += 20; + height += 16; if (PerkHelper.getPerkByType(stack, Perk.Type.AMMO) != null) { height += 25; } diff --git a/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientShotgunImageTooltip.java b/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientShotgunImageTooltip.java new file mode 100644 index 000000000..632e8d11b --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/client/tooltip/ClientShotgunImageTooltip.java @@ -0,0 +1,42 @@ +package net.mcreator.superbwarfare.client.tooltip; + +import net.mcreator.superbwarfare.client.tooltip.component.GunImageComponent; +import net.mcreator.superbwarfare.perk.AmmoPerk; +import net.mcreator.superbwarfare.perk.Perk; +import net.mcreator.superbwarfare.perk.PerkHelper; +import net.mcreator.superbwarfare.tools.ItemNBTTool; +import net.mcreator.superbwarfare.tools.TooltipTool; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; + +import java.text.DecimalFormat; + +public class ClientShotgunImageTooltip extends ClientGunImageTooltip { + + public ClientShotgunImageTooltip(GunImageComponent tooltip) { + super(tooltip); + } + + @Override + protected Component getDamageComponent() { + boolean slug = false; + + var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); + if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) { + slug = true; + } + + if (slug) { + double damage = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "projectile_amount", 0) * TooltipTool.perkDamage(stack); + return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#") + .format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)); + } else { + double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); + return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(ItemNBTTool.getDouble(stack, "projectile_amount", 0))).withStyle(ChatFormatting.GREEN)); + } + } +} diff --git a/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/BocekImageComponent.java b/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/BocekImageComponent.java new file mode 100644 index 000000000..445be4ecd --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/BocekImageComponent.java @@ -0,0 +1,19 @@ +package net.mcreator.superbwarfare.client.tooltip.component; + +import net.minecraft.world.item.ItemStack; + +public class BocekImageComponent extends GunImageComponent { + + public int width; + public int height; + public ItemStack stack; + + public BocekImageComponent(int width, int height, ItemStack stack) { + super(width, height, stack); + } + + public BocekImageComponent(ItemStack stack) { + this(32, 16, stack); + } + +} \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/client/tooltip/ImageTooltip.java b/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/GunImageComponent.java similarity index 56% rename from src/main/java/net/mcreator/superbwarfare/client/tooltip/ImageTooltip.java rename to src/main/java/net/mcreator/superbwarfare/client/tooltip/component/GunImageComponent.java index 869056fb9..44e4860bf 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/tooltip/ImageTooltip.java +++ b/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/GunImageComponent.java @@ -1,21 +1,21 @@ -package net.mcreator.superbwarfare.client.tooltip; +package net.mcreator.superbwarfare.client.tooltip.component; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.ItemStack; -public class ImageTooltip implements TooltipComponent { +public class GunImageComponent implements TooltipComponent { public int width; public int height; public ItemStack stack; - public ImageTooltip(int width, int height, ItemStack stack) { + public GunImageComponent(int width, int height, ItemStack stack) { this.width = width; this.height = height; this.stack = stack; } - public ImageTooltip(ItemStack stack) { + public GunImageComponent(ItemStack stack) { this(32, 16, stack); } diff --git a/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/ShotgunImageComponent.java b/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/ShotgunImageComponent.java new file mode 100644 index 000000000..afbdafe3d --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/client/tooltip/component/ShotgunImageComponent.java @@ -0,0 +1,20 @@ +package net.mcreator.superbwarfare.client.tooltip.component; + +import net.mcreator.superbwarfare.client.tooltip.component.GunImageComponent; +import net.minecraft.world.item.ItemStack; + +public class ShotgunImageComponent extends GunImageComponent { + + public int width; + public int height; + public ItemStack stack; + + public ShotgunImageComponent(int width, int height, ItemStack stack) { + super(width, height, stack); + } + + public ShotgunImageComponent(ItemStack stack) { + this(32, 16, stack); + } + +} \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java index c7dd1d8f6..da9336dc2 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.item.gun; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.client.tooltip.ImageTooltip; +import net.mcreator.superbwarfare.client.tooltip.component.GunImageComponent; import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.network.ModVariables; @@ -117,7 +117,7 @@ public abstract class GunItem extends Item { @Override public @NotNull Optional getTooltipImage(@NotNull ItemStack pStack) { - return Optional.of(new ImageTooltip(pStack)); + return Optional.of(new GunImageComponent(pStack)); } public Set getReloadSound() { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java index c6d3188f5..0a6b581ca 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java @@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.Aa12ItemRenderer; +import net.mcreator.superbwarfare.client.tooltip.component.ShotgunImageComponent; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModPerks; @@ -23,10 +24,12 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; @@ -36,6 +39,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.Optional; import java.util.Set; import java.util.function.Consumer; @@ -159,4 +163,9 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk) || perk == ModPerks.DESPERADO.get(); } + @Override + public @NotNull Optional getTooltipImage(@NotNull ItemStack pStack) { + return Optional.of(new ShotgunImageComponent(pStack)); + } + } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java index d19cc69ca..60a65d249 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java @@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.AbekiriItemRenderer; +import net.mcreator.superbwarfare.client.tooltip.component.ShotgunImageComponent; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; @@ -21,11 +22,13 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; @@ -35,6 +38,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.Optional; import java.util.Set; import java.util.function.Consumer; @@ -135,4 +139,9 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem { return PerkHelper.SHOTGUN_PERKS.test(perk); } + @Override + public @NotNull Optional getTooltipImage(@NotNull ItemStack pStack) { + return Optional.of(new ShotgunImageComponent(pStack)); + } + } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java index 373f222ad..f5f923a10 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java @@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.M870ItemRenderer; +import net.mcreator.superbwarfare.client.tooltip.component.ShotgunImageComponent; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; @@ -21,11 +22,13 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; @@ -35,6 +38,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.Optional; import java.util.Set; import java.util.function.Consumer; @@ -169,4 +173,9 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } + @Override + public @NotNull Optional getTooltipImage(@NotNull ItemStack pStack) { + return Optional.of(new ShotgunImageComponent(pStack)); + } + } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/special/BocekItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/special/BocekItem.java index 3a60bb8c8..cca2de80e 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/special/BocekItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/special/BocekItem.java @@ -2,6 +2,7 @@ package net.mcreator.superbwarfare.item.gun.special; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.renderer.item.BocekItemRenderer; +import net.mcreator.superbwarfare.client.tooltip.component.BocekImageComponent; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModPerks; @@ -21,9 +22,11 @@ import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.*; import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; @@ -33,6 +36,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.Optional; import java.util.function.Consumer; public class BocekItem extends GunItem implements GeoItem, AnimatedItem { @@ -161,4 +165,9 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem { }; } + @Override + public @NotNull Optional getTooltipImage(@NotNull ItemStack pStack) { + return Optional.of(new BocekImageComponent(pStack)); + } + } \ No newline at end of file