From c74b64bed439e552ad8f3a4f3c96354aeeb1eb47 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Mon, 9 Sep 2024 19:57:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0perk=E8=B4=B4=E5=9B=BE?= =?UTF-8?q?=EF=BC=8C=E7=A9=BA=E7=99=BD=E6=A8=A1=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/model/item/TaserItemModel.java | 2 -- .../mcreator/superbwarfare/init/ModItems.java | 3 +++ .../item/gun/launcher/JavelinItem.java | 8 ++++++ .../item/gun/launcher/M79Item.java | 13 +++++++--- .../item/gun/launcher/RpgItem.java | 13 +++++++--- .../superbwarfare/tools/TooltipTool.java | 16 ++++++++++++ .../assets/superbwarfare/lang/en_us.json | 2 ++ .../assets/superbwarfare/lang/zh_cn.json | 1 + .../superbwarfare/models/item/empty_perk.json | 6 +++++ .../models/item/longer_wire.json | 6 +++++ .../models/item/monster_hunter.json | 6 +++++ .../models/item/super_recharge.json | 6 +++++ .../models/item/volt_overload.json | 6 +++++ .../textures/item/perk/empty_perk.png | Bin 0 -> 416 bytes .../textures/item/perk/longer_wire.png | Bin 0 -> 756 bytes .../textures/item/perk/monster_hunter.png | Bin 0 -> 800 bytes .../textures/item/perk/super_recharge.png | Bin 0 -> 830 bytes .../textures/item/perk/volt_overload.png | Bin 0 -> 828 bytes .../recipes/empty_perk_crafting.json | 24 ++++++++++++++++++ 19 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/models/item/empty_perk.json create mode 100644 src/main/resources/assets/superbwarfare/models/item/longer_wire.json create mode 100644 src/main/resources/assets/superbwarfare/models/item/monster_hunter.json create mode 100644 src/main/resources/assets/superbwarfare/models/item/super_recharge.json create mode 100644 src/main/resources/assets/superbwarfare/models/item/volt_overload.json create mode 100644 src/main/resources/assets/superbwarfare/textures/item/perk/empty_perk.png create mode 100644 src/main/resources/assets/superbwarfare/textures/item/perk/longer_wire.png create mode 100644 src/main/resources/assets/superbwarfare/textures/item/perk/monster_hunter.png create mode 100644 src/main/resources/assets/superbwarfare/textures/item/perk/super_recharge.png create mode 100644 src/main/resources/assets/superbwarfare/textures/item/perk/volt_overload.png create mode 100644 src/main/resources/data/superbwarfare/recipes/empty_perk_crafting.json diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java index 4a458a255..093bf5628 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java @@ -19,8 +19,6 @@ import java.util.concurrent.atomic.AtomicInteger; public class TaserItemModel extends GeoModel { - public static final String TAG_POWER = "Power"; - @Override public ResourceLocation getAnimationResource(TaserItem animatable) { return new ResourceLocation(ModUtils.MODID, "animations/taser.animation.json"); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModItems.java b/src/main/java/net/mcreator/superbwarfare/init/ModItems.java index 1b7c36a9b..39f7ddd75 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModItems.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModItems.java @@ -236,6 +236,9 @@ public class ModItems { /** * 单独注册,用于Tab图标,不要删 */ + + public static final RegistryObject EMPTY_PERK = PERKS.register("empty_perk", () -> new Item(new Item.Properties())); + public static final RegistryObject AP_BULLET = PERKS.register("ap_bullet", () -> new PerkItem(ModPerks.AP_BULLET)); public static void register(IEventBus bus) { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java index b4974e438..cc789561b 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java @@ -16,6 +16,7 @@ import net.minecraft.client.Minecraft; 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.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; @@ -31,6 +32,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; @@ -42,6 +44,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.List; import java.util.Set; import java.util.UUID; import java.util.function.Consumer; @@ -222,6 +225,11 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem { return "FGM-148"; } + @Override + public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { + TooltipTool.addLauncherTips(list, stack); + } + @Override public boolean canApplyPerk(Perk perk) { return PerkHelper.LAUNCHER_PERKS.test(perk); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java index 081d128e5..423d73717 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java @@ -13,10 +13,12 @@ import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.PoseTool; +import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; 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; @@ -28,10 +30,7 @@ import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; -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.minecraft.world.item.*; import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; @@ -43,6 +42,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.List; import java.util.Set; import java.util.UUID; import java.util.function.Consumer; @@ -197,6 +197,11 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem { return "M79 LAUNCHER"; } + @Override + public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { + TooltipTool.addLauncherTips(list, stack); + } + @Override public boolean canApplyPerk(Perk perk) { return PerkHelper.LAUNCHER_PERKS.test(perk); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java index e8336ba82..eade4d378 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java @@ -13,10 +13,12 @@ import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.PoseTool; +import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; 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; @@ -28,10 +30,7 @@ import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; -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.minecraft.world.item.*; import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; @@ -43,6 +42,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.List; import java.util.Set; import java.util.UUID; import java.util.function.Consumer; @@ -203,6 +203,11 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { return " RPG-7"; } + @Override + public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { + TooltipTool.addLauncherTips(list, stack); + } + @Override public boolean canApplyPerk(Perk perk) { return PerkHelper.LAUNCHER_PERKS.test(perk); diff --git a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java index 37df979ab..6a2348100 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java @@ -202,6 +202,7 @@ public class TooltipTool { .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN))); + addLevelTips(tooltip, stack); addPerkTips(tooltip, stack); stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( @@ -209,6 +210,21 @@ public class TooltipTool { ); } + public static void addLauncherTips(List tooltip, ItemStack stack) { + tooltip.add(Component.literal("")); + + double damage = ItemNBTTool.getDouble(stack, "damage", 0) + * ItemNBTTool.getDouble(stack, "levelDamageMultiple", 1); + + tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN))); + + addLevelTips(tooltip, stack); + addPerkTips(tooltip, stack); + + } + public static void addMonitorTips(List tooltip, String id) { if (id.equals("none")) return; diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 2a31df8c2..98b6b5b76 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -232,6 +232,8 @@ "item.superbwarfare.volt_overload": "Volt Overload", "des.superbwarfare.volt_overload": "Increases the shock damage of Taser Gun", + "item.superbwarfare.empty_perk": "Empty Perk", + "perk.superbwarfare.tips": "[Perks]", "perk.superbwarfare.slot": "Type: ", "perk.superbwarfare.slot_Ammo": "Bullet Perk", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 9d1c1d60f..4d630c2dd 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -237,6 +237,7 @@ "perk.superbwarfare.slot_Ammo": "子弹模组", "perk.superbwarfare.slot_Functional": "功能模组", "perk.superbwarfare.slot_Damage": "伤害模组", + "item.superbwarfare.empty_perk": "空白模组", "death.attack.gunfire": "%1$s被%2$s射爆了", "death.attack.gunfire.entity": "%1$s被%2$s射爆了", diff --git a/src/main/resources/assets/superbwarfare/models/item/empty_perk.json b/src/main/resources/assets/superbwarfare/models/item/empty_perk.json new file mode 100644 index 000000000..ece63f8c0 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/empty_perk.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/empty_perk" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/models/item/longer_wire.json b/src/main/resources/assets/superbwarfare/models/item/longer_wire.json new file mode 100644 index 000000000..8606841f9 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/longer_wire.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/longer_wire" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/models/item/monster_hunter.json b/src/main/resources/assets/superbwarfare/models/item/monster_hunter.json new file mode 100644 index 000000000..b5797b21d --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/monster_hunter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/monster_hunter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/models/item/super_recharge.json b/src/main/resources/assets/superbwarfare/models/item/super_recharge.json new file mode 100644 index 000000000..c19a9dec5 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/super_recharge.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/super_recharge" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/models/item/volt_overload.json b/src/main/resources/assets/superbwarfare/models/item/volt_overload.json new file mode 100644 index 000000000..a98980d14 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/volt_overload.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/volt_overload" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/empty_perk.png b/src/main/resources/assets/superbwarfare/textures/item/perk/empty_perk.png new file mode 100644 index 0000000000000000000000000000000000000000..af172e92f2a4f030d2a05a462ca9d234c6b1475a GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R4_ zr;B4q#hkaZ59T%-NVv_P{H8IYnROTQbe>Dm=__X_tDm1B{U$K<35&0^vqJ7K&j0_d zZywsT@BK-;0s{$khAX9aS2t^9%u(>=OPC9E=Uya>H{2raiTI zx9eSgknO}p8vD-j3%?foxcSe=uYZ2d{`;@_^6%6Cs{U%8CEGh`?X_)OEEdTbl-BttfRjZVaS)9vf oiK*Yx5Z{=%p*4K|IpG})(;`dHh@WZ>1O_>Sr>mdKI;Vst02%(KCjbBd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/longer_wire.png b/src/main/resources/assets/superbwarfare/textures/item/perk/longer_wire.png new file mode 100644 index 0000000000000000000000000000000000000000..061ca5c4fcf79a44ca06a4ae31be33338fb7f66b GIT binary patch literal 756 zcmVKNLP5ZLW@*-Ts% zMSDmH_|`&zDvMTs?f(?XoQWSk)os^ZCE)8PSi0Ci(lvud2;> zec0LEu(_L`+!D(p2)KjmBm=XMz*a=0ebX&1*WGA zAO(EcF6>r;h{K)(e>orkc^}gNkfO=teSi=kkmuXJ&*}Ly0TKy&qkSCj0}25WATOh7 ztF`UytuR;79zia7Hny_P175a^e7)I|>QXP%J>wb9?=cF{ByXdxu5VZ3*hVTTfILta z;qQA)A*ijhNCCt^Z6ZL29;b&E#woDg>?>IWmEjTO0B5k0U{eIueZOY)2lg_UGD#hr zPKAerR$q*GfGMGN9(6HCKrd4+qyQ%G`#LGoB4jOK^01GSA|pcA0>M|7khK61vj9ER z0)WRk?z&HzY5`M+sTRPnYXSC7FcOl@NYmNmb|@M#Y;zCGVJQiqLhFRA6(FLMU{&a= zc8WP+Gsz>h2rzArse9xzq03<|I!nNvML?VBWAUu6A8QOB5zyKQoIFhZ^1~$pD$e`4 z5g?LFu4vbtLKi_U^ zPGwnUWCRR_JfP=dEQg1V(dU3kfY1hn#w0*!143i;0-P;_KZmEmtp6%3mrICEAD|FG mzBvX=Q$RFQ_}Axz4)6;O*j2L_k;x$d0000e)h-r`<{W0Jdr#Z~(An^S}gv zt(yld0QO)WFaX$#c|ZeTPv!y3Qkc?wRpw&)uK&6g&8)z+0I1CS7`J_g6UqocO7kvt zQNtMJ0Ln3cEgGt-dR1jEDB%XZ4NgfmuqtyF2$W(0psFf!()zANgKN={4Y8;lA)P40 zQ;IW+$N~5&&|C|E1T@PKP)$u4tjfIqIH>JDWMYkgZmfoWeU=3gX#`YdE_6M<KVgDToEf0G;ew4Q&|H<_M(6ToUT4&?*j{X9kyw>n1W*3B_Bm4L8_%Dg$%=m zWRhKeuys+lo^A06u^X3KDga=O zzYDBU2Y}QKNUZ}v>IS6N0U&h)Qfv1BMhl_8AHNo{4aTMO`HZ@*`|=2YdT|drhJZX+ e!@oWcG3Xz?)@)XtwLy6R0000P)u!9ad^%j^qKLbwE)R0DyPbt5XGkUSHeox~}82Dk0YE^_%?{Lpc_@Re#!6lXX91=}9&i+3YUBY20j5YEU19>349lj1owm`u} zthGXx0IL;nyZKw5yQrZfMJGq}*#2;7Vu-*J;C9nnt&?wch!rRDNrOzwM5qGl@n7`8$`1JMe5hrso^~j;99y1+xM70-)j1{L&4VpY9%M=<~d;O3nIZ-1dwik zG;$Y!t_Yj{1MtsA;;X_6x(6#V@lpFFJ&%qEJ`*KT2k5^2c?bb=oR;q$>(u9*ncAPs zR8<84c>n1~ZtwJIFPql;t#5xQetrMg)>qeck?sK`=QM0i+usjYRO2xV+_CgT#x|&0P&rOI&H+WumAu607*qo IM6N<$f?DKx8vp48h=BR*v)ghPfpa&isf z1RYR72FN8MLe}qnB-xm~#2Oj-?P{NXjsZrF3IJfWT3t&AQUbf(u9~Vs+qQ7Mj!%b) zx)>vQ0DzkVs;UA2fWvHtYT)H`x?LZSN13P+Vm_bWm8XvTqF|DLd;dOj+RK5j&(~Tn zlLZ(ed4PYXD@+{sc`;P-HlPJ~B=P`A0UnJ!078INj_6p+mO?PgKC0`=9!fHEGCPK1O|bQ`P?6rgXTeh63>lyrcJB98D1 zFtpxRz__581Gbxmx10;v1z0zGy;vK6&HChU3XsG8s@GHWery`BUX4+)ZuVBvoZhFd zA4&+I++^FwN1Z%L!YhDz@FAHFrZsKnh}ib@a_m8gR{)c=^jLtkJofacw_|{Yj;nI7 zH=Rbqb{|M*YP)_@K1%Y=mU8GdK_E_WO;?{19t{N z2{4%eTrO_Q`+^Cr^eFY_t1=2uDR8;it(I{Mn|CkZ19n*oAkzEJ_C;TgVvzBzkn<>= z(zCA4jOD|ZCYE60Fm3aE=AeD(Q60{j9bosVa>-l(Vm0000