From a1f4d689ec5f0e3bcc05458a9d796c929a53e4f9 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 7 Jul 2025 20:16:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=83=9F=E9=9B=BE=E9=A2=9C?= =?UTF-8?q?=E8=89=B2=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/item/M18SmokeGrenade.java | 25 +++++++++++++++++++ .../assets/superbwarfare/lang/en_us.json | 1 + .../assets/superbwarfare/lang/zh_cn.json | 1 + 3 files changed, 27 insertions(+) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/M18SmokeGrenade.java b/src/main/java/com/atsuishio/superbwarfare/item/M18SmokeGrenade.java index d38f7ae9f..0e6944560 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/M18SmokeGrenade.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/M18SmokeGrenade.java @@ -4,10 +4,14 @@ import com.atsuishio.superbwarfare.entity.projectile.M18SmokeGrenadeEntity; import com.atsuishio.superbwarfare.init.ModEntities; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.tools.NBTTool; +import net.minecraft.ChatFormatting; import net.minecraft.core.Direction; import net.minecraft.core.Position; import net.minecraft.core.dispenser.BlockSource; import net.minecraft.core.dispenser.ProjectileDispenseBehavior; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.Style; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; @@ -20,6 +24,7 @@ import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import javax.annotation.ParametersAreNonnullByDefault; +import java.util.List; public class M18SmokeGrenade extends Item implements ProjectileItem { @@ -27,6 +32,26 @@ public class M18SmokeGrenade extends Item implements ProjectileItem { super(new Properties().rarity(Rarity.UNCOMMON)); } + public static final String TAG_COLOR = "Color"; + + public void setColor(ItemStack stack, int color) { + NBTTool.getTag(stack).putInt(TAG_COLOR, color); + } + + public int getColor(ItemStack stack) { + var tag = NBTTool.getTag(stack); + return tag.contains(TAG_COLOR) ? tag.getInt(TAG_COLOR) : 0xFFFFFF; + } + + @Override + @ParametersAreNonnullByDefault + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("des.superbwarfare.m18_smoke_grenade").withStyle(ChatFormatting.GRAY) + .append(Component.empty().withStyle(ChatFormatting.RESET)) + .append(Component.literal("#" + Integer.toHexString(this.getColor(stack))).withStyle(Style.EMPTY.withColor(this.getColor(stack)))) + ); + } + @Override @ParametersAreNonnullByDefault public @NotNull InteractionResultHolder use(Level worldIn, Player playerIn, InteractionHand handIn) { diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 393682b01..c670e86de 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -241,6 +241,7 @@ "item.superbwarfare.hand_grenade": "Hand Grenade", "item.superbwarfare.rgo_grenade": "RGO Grenade", "item.superbwarfare.m18_smoke_grenade": "M18 Smoke Grenade", + "des.superbwarfare.m18_smoke_grenade": "Smoke Color: ", "item.superbwarfare.transcript": "Transcript", "des.superbwarfare.transcript": "Recent 10 shooting records:", "des.superbwarfare.transcript.score": "Score: ", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 7237e09e7..feba2f4d7 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -241,6 +241,7 @@ "item.superbwarfare.hand_grenade": "M67手榴弹", "item.superbwarfare.rgo_grenade": "RGO手榴弹", "item.superbwarfare.m18_smoke_grenade": "M18烟雾弹", + "des.superbwarfare.m18_smoke_grenade": "烟雾颜色:", "item.superbwarfare.transcript": "成绩单", "des.superbwarfare.transcript": "最近10次的射击成绩:", "des.superbwarfare.transcript.score": "环数:",