From f4a48c5aba6e62dcd002ea98c532d750688d26b0 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 15 Jul 2024 00:06:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9F=B3=E6=95=88=E5=92=8C?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/event/GunEventHandler.java | 44 +++++++++++-------- .../mcreator/target/item/TargetDeployer.java | 2 +- .../target/item/gun/SentinelItem.java | 2 - .../target/network/message/FireMessage.java | 1 - .../mcreator/target/tools/TooltipTool.java | 5 +++ 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index 68886c013..7662785a1 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -25,6 +25,8 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; +import java.util.concurrent.atomic.AtomicBoolean; + @Mod.EventBusSubscriber public class GunEventHandler { @@ -267,25 +269,33 @@ public class GunEventHandler { String origin = stack.getItem().getDescriptionId(); String name = origin.substring(origin.lastIndexOf(".") + 1); - if (player.getMainHandItem().getItem() == TargetModItems.SENTINEL.get() && stack.getOrCreateTag().getDouble("power") > 0) { - SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_fire_1p")); - if (sound1p != null && player instanceof ServerPlayer serverPlayer) { - SoundTool.playLocalSound(serverPlayer, sound1p, 2f, 1f); - } + if (stack.getItem() == TargetModItems.SENTINEL.get()) { + AtomicBoolean charged = new AtomicBoolean(false); - SoundEvent sound3p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_fire_3p")); - if (sound3p != null) { - player.level().playSound(null, player.getOnPos(), sound3p, SoundSource.PLAYERS, 4f, 1f); - } + stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + e -> charged.set(e.getEnergyStored() > 0) + ); - SoundEvent soundFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_far")); - if (soundFar != null) { - player.playSound(soundFar, 12f, 1f); - } + if (charged.get()) { + SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_fire_1p")); + if (sound1p != null && player instanceof ServerPlayer serverPlayer) { + SoundTool.playLocalSound(serverPlayer, sound1p, 2f, 1f); + } - SoundEvent soundVeryFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_veryfar")); - if (soundVeryFar != null) { - player.playSound(soundVeryFar, 24f, 1f); + SoundEvent sound3p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_fire_3p")); + if (sound3p != null) { + player.level().playSound(null, player.getOnPos(), sound3p, SoundSource.PLAYERS, 4f, 1f); + } + + SoundEvent soundFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_far")); + if (soundFar != null) { + player.playSound(soundFar, 12f, 1f); + } + + SoundEvent soundVeryFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, "sentinel_charge_veryfar")); + if (soundVeryFar != null) { + player.playSound(soundVeryFar, 24f, 1f); + } } } else { SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_fire_1p")); @@ -769,7 +779,6 @@ public class GunEventHandler { CompoundTag tag = stack.getOrCreateTag(); //启动换弹 if (tag.getBoolean("start_sentinel_charge")) { - tag.putInt("sentinel_charge_time", 127); stack.getOrCreateTag().putBoolean("sentinel_is_charging", true); @@ -790,7 +799,6 @@ public class GunEventHandler { iEnergyStorage -> iEnergyStorage.receiveEnergy(24000, false) ); -// tag.putDouble("power", Mth.clamp(tag.getDouble("power") + 24000,0,240000)); player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == TargetModItems.SHIELD_CELL.get(), 1, player.inventoryMenu.getCraftSlots()); } diff --git a/src/main/java/net/mcreator/target/item/TargetDeployer.java b/src/main/java/net/mcreator/target/item/TargetDeployer.java index 88bdb6802..dcb7e19d9 100644 --- a/src/main/java/net/mcreator/target/item/TargetDeployer.java +++ b/src/main/java/net/mcreator/target/item/TargetDeployer.java @@ -43,7 +43,7 @@ public class TargetDeployer extends Item { } } - player.getInventory().clearOrCountMatchingItems(p -> TargetModItems.TARGET_DEPLOYER.get() == p.getItem(), 1, player.inventoryMenu.getCraftSlots()); + context.getItemInHand().shrink(1); player.swing(InteractionHand.MAIN_HAND, true); return InteractionResult.SUCCESS; diff --git a/src/main/java/net/mcreator/target/item/gun/SentinelItem.java b/src/main/java/net/mcreator/target/item/gun/SentinelItem.java index bd368da26..f2da61c5b 100644 --- a/src/main/java/net/mcreator/target/item/gun/SentinelItem.java +++ b/src/main/java/net/mcreator/target/item/gun/SentinelItem.java @@ -207,8 +207,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { energy -> { int energyStored = energy.getEnergyStored(); - System.out.println("Client:" + world.isClientSide + " " + energyStored); - if (energyStored > 0) { energy.extractEnergy(5, false); diff --git a/src/main/java/net/mcreator/target/network/message/FireMessage.java b/src/main/java/net/mcreator/target/network/message/FireMessage.java index 3f323f85c..deb85f2a5 100644 --- a/src/main/java/net/mcreator/target/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/target/network/message/FireMessage.java @@ -169,7 +169,6 @@ public class FireMessage { player.playSound(TargetModSounds.BOCEK_ZOOM_FIRE_3P.get(), 2, 1); } } else { - stack.getOrCreateTag().putBoolean("shoot", true); for (int index0 = 0; index0 < 10; index0++) { diff --git a/src/main/java/net/mcreator/target/tools/TooltipTool.java b/src/main/java/net/mcreator/target/tools/TooltipTool.java index 3d349717d..d8ba20e38 100644 --- a/src/main/java/net/mcreator/target/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/target/tools/TooltipTool.java @@ -4,6 +4,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import java.text.DecimalFormat; import java.util.List; @@ -103,5 +104,9 @@ public class TooltipTool { } addLevelTips(tooltip, stack); + + stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + e -> tooltip.add(Component.literal(e.getEnergyStored() + " / " + e.getMaxEnergyStored() + " FE").withStyle(ChatFormatting.GRAY)) + ); } }