添加特殊类型的component

This commit is contained in:
17146 2024-11-22 20:20:25 +08:00
parent 78698441e9
commit 221eed727f
12 changed files with 200 additions and 88 deletions

View file

@ -1,7 +1,9 @@
package net.mcreator.superbwarfare.client; package net.mcreator.superbwarfare.client;
import net.mcreator.superbwarfare.client.tooltip.ClientImageTooltip; import net.mcreator.superbwarfare.client.tooltip.*;
import net.mcreator.superbwarfare.client.tooltip.ImageTooltip; 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.api.distmarker.Dist;
import net.minecraftforge.client.event.RegisterClientTooltipComponentFactoriesEvent; import net.minecraftforge.client.event.RegisterClientTooltipComponentFactoriesEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
@ -12,7 +14,9 @@ public class ClientRenderHandler {
@SubscribeEvent @SubscribeEvent
public static void registerTooltip(RegisterClientTooltipComponentFactoriesEvent event) { 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);
} }
} }

View file

@ -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));
}
}
}

View file

@ -1,6 +1,6 @@
package net.mcreator.superbwarfare.client.tooltip; 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.ModKeyMappings;
import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
@ -23,13 +23,13 @@ import org.jetbrains.annotations.NotNull;
import java.text.DecimalFormat; import java.text.DecimalFormat;
// TODO 等nbt重置后修改nbt位置 // TODO 等nbt重置后修改nbt位置
public class ClientImageTooltip implements ClientTooltipComponent { public class ClientGunImageTooltip implements ClientTooltipComponent {
private final int width; protected final int width;
private final int height; protected final int height;
private final ItemStack stack; protected final ItemStack stack;
public ClientImageTooltip(ImageTooltip tooltip) { public ClientGunImageTooltip(GunImageComponent tooltip) {
this.width = tooltip.width; this.width = tooltip.width;
this.height = tooltip.height; this.height = tooltip.height;
this.stack = tooltip.stack; this.stack = tooltip.stack;
@ -63,22 +63,22 @@ public class ClientImageTooltip implements ClientTooltipComponent {
guiGraphics.pose().popPose(); guiGraphics.pose().popPose();
} }
private boolean shouldRenderBypassAndHeadshotTooltip() { protected boolean shouldRenderBypassAndHeadshotTooltip() {
return ItemNBTTool.getDouble(stack, "BypassesArmor", 0) > 0 || ItemNBTTool.getDouble(stack, "headshot", 0) > 0; 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); 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; 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); guiGraphics.drawString(font, getDamageComponent(), x, y, 0xFFFFFF);
int xo = font.width(getDamageComponent().getVisualOrderText()); int xo = font.width(getDamageComponent().getVisualOrderText());
guiGraphics.drawString(font, getRpmComponent(), x + xo + 16, y, 0xFFFFFF); guiGraphics.drawString(font, getRpmComponent(), x + xo + 16, y, 0xFFFFFF);
@ -87,14 +87,7 @@ public class ClientImageTooltip implements ClientTooltipComponent {
/** /**
* 获取武器伤害的文本组件 * 获取武器伤害的文本组件
*/ */
private Component getDamageComponent() { protected Component getDamageComponent() {
if (stack.is(ModItems.BOCEK.get())) {
return getBocekDamageComponent();
}
if (stack.is(ModTags.Items.SHOTGUN)) {
return getShotgunDamageComponent();
}
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .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)); + 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)) { if (!stack.is(ModTags.Items.IS_AUTO_WEAPON)) {
return Component.literal(""); return Component.literal("");
} else { } 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); guiGraphics.drawString(font, getLevelComponent(), x, y, 0xFFFFFF);
int xo = font.width(getLevelComponent().getVisualOrderText()); int xo = font.width(getLevelComponent().getVisualOrderText());
guiGraphics.drawString(font, getUpgradePointComponent(), x + xo + 16, y, 0xFFFFFF); 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); int level = ItemNBTTool.getInt(stack, "Level", 0);
double rate = ItemNBTTool.getDouble(stack, "Exp", 0) / (20 * Math.pow(level, 2) + 160 * level + 20); 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)); int upgradePoint = Mth.floor(ItemNBTTool.getDouble(stack, "UpgradePoint", 0));
return Component.translatable("des.superbwarfare.tips.upgrade_point").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.upgrade_point").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .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); guiGraphics.drawString(font, getBypassComponent(), x, y, 0xFFFFFF);
int xo = font.width(getBypassComponent().getVisualOrderText()); int xo = font.width(getBypassComponent().getVisualOrderText());
guiGraphics.drawString(font, getHeadshotComponent(), x + xo + 16, y, 0xFFFFFF); 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; double perkBypassArmorRate = 0;
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); 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); double headshot = ItemNBTTool.getDouble(stack, "headshot", 0);
return Component.translatable("des.superbwarfare.tips.headshot").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.headshot").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .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); 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() + "]") return Component.translatable("des.superbwarfare.tips.edit", "[" + ModKeyMappings.EDIT_MODE.getKey().getDisplayName().getString() + "]")
.withStyle(ChatFormatting.LIGHT_PURPLE).withStyle(ChatFormatting.ITALIC); .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(); guiGraphics.pose().pushPose();
int xOffset = -20; 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.pose().pushPose();
guiGraphics.drawString(font, Component.translatable("perk.superbwarfare.tips").withStyle(ChatFormatting.GOLD).withStyle(ChatFormatting.UNDERLINE), x, y + 10, 0xFFFFFF); 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(); guiGraphics.pose().popPose();
} }
private int getDefaultMaxWidth(Font font) { protected int getDefaultMaxWidth(Font font) {
int width = font.width(getDamageComponent().getVisualOrderText()) + font.width(getRpmComponent().getVisualOrderText()) + 16; int width = font.width(getDamageComponent().getVisualOrderText()) + font.width(getRpmComponent().getVisualOrderText()) + 16;
width = Math.max(width, font.width(getLevelComponent().getVisualOrderText()) + font.width(getUpgradePointComponent().getVisualOrderText()) + 16); width = Math.max(width, font.width(getLevelComponent().getVisualOrderText()) + font.width(getUpgradePointComponent().getVisualOrderText()) + 16);
if (shouldRenderBypassAndHeadshotTooltip()) { if (shouldRenderBypassAndHeadshotTooltip()) {
@ -413,7 +360,7 @@ public class ClientImageTooltip implements ClientTooltipComponent {
return width + 4; return width + 4;
} }
private int getMaxPerkDesWidth(Font font) { protected int getMaxPerkDesWidth(Font font) {
if (!shouldRenderPerks()) return 0; if (!shouldRenderPerks()) return 0;
int width = 0; int width = 0;
@ -459,9 +406,9 @@ public class ClientImageTooltip implements ClientTooltipComponent {
if (shouldRenderEditTooltip()) height += 20; if (shouldRenderEditTooltip()) height += 20;
if (shouldRenderPerks()) { if (shouldRenderPerks()) {
if (!Screen.hasShiftDown()) { if (!Screen.hasShiftDown()) {
height += 20; height += 16;
} else { } else {
height += 20; height += 16;
if (PerkHelper.getPerkByType(stack, Perk.Type.AMMO) != null) { if (PerkHelper.getPerkByType(stack, Perk.Type.AMMO) != null) {
height += 25; height += 25;
} }

View file

@ -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));
}
}
}

View file

@ -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);
}
}

View file

@ -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.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
public class ImageTooltip implements TooltipComponent { public class GunImageComponent implements TooltipComponent {
public int width; public int width;
public int height; public int height;
public ItemStack stack; public ItemStack stack;
public ImageTooltip(int width, int height, ItemStack stack) { public GunImageComponent(int width, int height, ItemStack stack) {
this.width = width; this.width = width;
this.height = height; this.height = height;
this.stack = stack; this.stack = stack;
} }
public ImageTooltip(ItemStack stack) { public GunImageComponent(ItemStack stack) {
this(32, 16, stack); this(32, 16, stack);
} }

View file

@ -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);
}
}

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.item.gun;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.superbwarfare.ModUtils; 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.ModPerks;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.ModVariables;
@ -117,7 +117,7 @@ public abstract class GunItem extends Item {
@Override @Override
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) { public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
return Optional.of(new ImageTooltip(pStack)); return Optional.of(new GunImageComponent(pStack));
} }
public Set<SoundEvent> getReloadSound() { public Set<SoundEvent> getReloadSound() {

View file

@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.PoseTool;
import net.mcreator.superbwarfare.client.renderer.item.Aa12ItemRenderer; 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.event.ClientEventHandler;
import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModPerks;
@ -23,10 +24,12 @@ import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import org.jetbrains.annotations.NotNull;
import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager; 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.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil; import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; 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(); return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk) || perk == ModPerks.DESPERADO.get();
} }
@Override
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
return Optional.of(new ShotgunImageComponent(pStack));
}
} }

View file

@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.PoseTool;
import net.mcreator.superbwarfare.client.renderer.item.AbekiriItemRenderer; 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.event.ClientEventHandler;
import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModSounds;
@ -21,11 +22,13 @@ import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity; import net.minecraft.world.item.Rarity;
import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import org.jetbrains.annotations.NotNull;
import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager; 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.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil; import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -135,4 +139,9 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
return PerkHelper.SHOTGUN_PERKS.test(perk); return PerkHelper.SHOTGUN_PERKS.test(perk);
} }
@Override
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
return Optional.of(new ShotgunImageComponent(pStack));
}
} }

View file

@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.PoseTool;
import net.mcreator.superbwarfare.client.renderer.item.M870ItemRenderer; 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.event.ClientEventHandler;
import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModSounds;
@ -21,11 +22,13 @@ import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity; import net.minecraft.world.item.Rarity;
import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import org.jetbrains.annotations.NotNull;
import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager; 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.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil; import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; 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); return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
} }
@Override
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
return Optional.of(new ShotgunImageComponent(pStack));
}
} }

View file

@ -2,6 +2,7 @@ package net.mcreator.superbwarfare.item.gun.special;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.client.renderer.item.BocekItemRenderer; 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.event.ClientEventHandler;
import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks; 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.Entity;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.*; import net.minecraft.world.item.*;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import org.jetbrains.annotations.NotNull;
import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager; 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.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil; import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.Optional;
import java.util.function.Consumer; import java.util.function.Consumer;
public class BocekItem extends GunItem implements GeoItem, AnimatedItem { public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
@ -161,4 +165,9 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
}; };
} }
@Override
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
return Optional.of(new BocekImageComponent(pStack));
}
} }