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); + } +}