From bf1f5a86140b75b977901e1b5abafc2635902b40 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 22 Apr 2025 23:00:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E6=BB=9A=E5=93=A8=E5=85=B5=E8=80=97?= =?UTF-8?q?=E8=83=BD=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/gun/sniper/SentinelItem.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java index be0709181..8c279a5c0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java @@ -15,11 +15,13 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; 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.level.Level; import net.neoforged.neoforge.capabilities.Capabilities; import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoItem; @@ -125,11 +127,6 @@ public class SentinelItem extends GunItem implements GeoItem, EnergyStorageItem data.add(idleController); } - @Override - public AnimatableInstanceCache getAnimatableInstanceCache() { - return this.cache; - } - @Override public double getCustomDamage(ItemStack stack) { var data = GunData.from(stack); @@ -140,6 +137,20 @@ public class SentinelItem extends GunItem implements GeoItem, EnergyStorageItem return 0; } + @Override + public void inventoryTick(@NotNull ItemStack stack, @NotNull Level level, @NotNull Entity entity, int slot, boolean selected) { + super.inventoryTick(stack, level, entity, slot, selected); + var cap = stack.getCapability(Capabilities.EnergyStorage.ITEM); + if (cap != null && cap.getEnergyStored() > 0) { + cap.extractEnergy(1, false); + } + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.cache; + } + @Override public Set getReloadSound() { return Set.of(