From cba1cf967c743ded9b76dddf232869eb2c401f3f Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Thu, 30 Jan 2025 12:07:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=88=9B=E9=80=A0=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=85=85=E7=94=B5=E7=AB=99=E4=BD=9C=E4=B8=BA=E7=89=A9?= =?UTF-8?q?=E5=93=81=E6=8F=90=E4=BE=9B=E8=83=BD=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/init/ModItems.java | 2 +- .../CreativeChargingStationBlockItem.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/atsuishio/superbwarfare/item/CreativeChargingStationBlockItem.java diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java index 0b12c9a24..c03f4fc09 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java @@ -254,7 +254,7 @@ public class ModItems { public static final RegistryObject REFORGING_TABLE = block(ModBlocks.REFORGING_TABLE); public static final RegistryObject CHARGING_STATION = block(ModBlocks.CHARGING_STATION); public static final RegistryObject CREATIVE_CHARGING_STATION = BLOCKS.register("creative_charging_station", - () -> new BlockItem(ModBlocks.CREATIVE_CHARGING_STATION.get(), new Item.Properties().rarity(Rarity.EPIC))); + () -> new CreativeChargingStationBlockItem(ModBlocks.CREATIVE_CHARGING_STATION.get(), new Item.Properties().rarity(Rarity.EPIC))); public static final RegistryObject LEAD_BLOCK = block(ModBlocks.LEAD_BLOCK); public static final RegistryObject STEEL_BLOCK = block(ModBlocks.STEEL_BLOCK); public static final RegistryObject TUNGSTEN_BLOCK = block(ModBlocks.TUNGSTEN_BLOCK); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/CreativeChargingStationBlockItem.java b/src/main/java/com/atsuishio/superbwarfare/item/CreativeChargingStationBlockItem.java new file mode 100644 index 000000000..2996ae26f --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/item/CreativeChargingStationBlockItem.java @@ -0,0 +1,30 @@ +package com.atsuishio.superbwarfare.item; + +import com.atsuishio.superbwarfare.capability.energy.ItemEnergyProvider; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.ICapabilityProvider; + +public class CreativeChargingStationBlockItem extends BlockItem { + public CreativeChargingStationBlockItem(Block pBlock, Properties pProperties) { + super(pBlock, pProperties); + } + + @Override + public ICapabilityProvider initCapabilities(ItemStack stack, CompoundTag tag) { + return new ItemEnergyProvider(stack, 2147483647); + } + + @Override + public void inventoryTick(ItemStack pStack, Level pLevel, Entity pEntity, int pSlotId, boolean pIsSelected) { + pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent(energy -> + energy.receiveEnergy(2147483647 - energy.getEnergyStored(), false) + ); + super.inventoryTick(pStack, pLevel, pEntity, pSlotId, pIsSelected); + } +}