Class ComponentEnergyStorage

java.lang.Object
net.neoforged.neoforge.energy.ComponentEnergyStorage
All Implemented Interfaces:
IEnergyStorage

@Deprecated(since="1.21.9", forRemoval=true) public class ComponentEnergyStorage extends Object implements IEnergyStorage
Deprecated, for removal: This API element is subject to removal in a future version.
Variant of EnergyStorage for use with data components.

The actual data storage is managed by a data component, and all changes will write back to that component.

To use this class, register a new DataComponentType which holds an Integer for your item. Then reference that component from your ICapabilityProvider passed to RegisterCapabilitiesEvent.registerItem(net.neoforged.neoforge.capabilities.ItemCapability<T, C>, net.neoforged.neoforge.capabilities.ICapabilityProvider<net.minecraft.world.item.ItemStack, C, T>, net.minecraft.world.level.ItemLike...) to create an instance of this class.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected final DataComponentType<Integer>
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected final int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected final int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a new ItemEnergyStorage with a transfer rate equivalent to the capacity.
    ComponentEnergyStorage(MutableDataComponentHolder parent, DataComponentType<Integer> energyComponent, int capacity, int maxTransfer)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a new ItemEnergyStorage with a unified receive / extract rate.
    ComponentEnergyStorage(MutableDataComponentHolder parent, DataComponentType<Integer> energyComponent, int capacity, int maxReceive, int maxExtract)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a new ComponentEnergyStorage with a data component as the backing store for the energy value.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns if this storage can have energy extracted.
    boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
    Used to determine if this storage can receive energy.
    int
    extractEnergy(int toExtract, boolean simulate)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Removes energy from the storage.
    int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the amount of energy currently stored.
    int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the maximum amount of energy that can be stored.
    int
    receiveEnergy(int toReceive, boolean simulate)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds energy to the storage.
    protected void
    setEnergy(int energy)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Writes a new energy value to the data component.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • parent

      protected final MutableDataComponentHolder parent
      Deprecated, for removal: This API element is subject to removal in a future version.
    • energyComponent

      protected final DataComponentType<Integer> energyComponent
      Deprecated, for removal: This API element is subject to removal in a future version.
    • capacity

      protected final int capacity
      Deprecated, for removal: This API element is subject to removal in a future version.
    • maxReceive

      protected final int maxReceive
      Deprecated, for removal: This API element is subject to removal in a future version.
    • maxExtract

      protected final int maxExtract
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • ComponentEnergyStorage

      public ComponentEnergyStorage(MutableDataComponentHolder parent, DataComponentType<Integer> energyComponent, int capacity, int maxReceive, int maxExtract)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new ComponentEnergyStorage with a data component as the backing store for the energy value.
      Parameters:
      parent - The parent component holder, such as an ItemStack
      energyComponent - The data component referencing the stored energy of the item stack
      capacity - The max capacity of the energy being stored
      maxReceive - The max per-transfer power input rate
      maxExtract - The max per-transfer power output rate
    • ComponentEnergyStorage

      public ComponentEnergyStorage(MutableDataComponentHolder parent, DataComponentType<Integer> energyComponent, int capacity, int maxTransfer)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new ItemEnergyStorage with a unified receive / extract rate.
      See Also:
      • invalid reference
        ComponentEnergyStorage#ItemEnergyStorage(ItemStack, DataComponentType, int, int, int)
    • ComponentEnergyStorage

      public ComponentEnergyStorage(MutableDataComponentHolder parent, DataComponentType<Integer> energyComponent, int capacity)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new ItemEnergyStorage with a transfer rate equivalent to the capacity.
      See Also:
      • invalid reference
        ComponentEnergyStorage#ItemEnergyStorage(ItemStack, DataComponentType, int, int, int)
  • Method Details

    • receiveEnergy

      public int receiveEnergy(int toReceive, boolean simulate)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IEnergyStorage
      Adds energy to the storage. Returns the amount of energy that was accepted.
      Specified by:
      receiveEnergy in interface IEnergyStorage
      Parameters:
      toReceive - The amount of energy being received.
      simulate - If true, the insertion will only be simulated, meaning IEnergyStorage.getEnergyStored() will not change.
      Returns:
      Amount of energy that was (or would have been, if simulated) accepted by the storage.
    • extractEnergy

      public int extractEnergy(int toExtract, boolean simulate)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IEnergyStorage
      Removes energy from the storage. Returns the amount of energy that was removed.
      Specified by:
      extractEnergy in interface IEnergyStorage
      Parameters:
      toExtract - The amount of energy being extracted.
      simulate - If true, the extraction will only be simulated, meaning IEnergyStorage.getEnergyStored() will not change.
      Returns:
      Amount of energy that was (or would have been, if simulated) extracted from the storage.
    • getEnergyStored

      public int getEnergyStored()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IEnergyStorage
      Returns the amount of energy currently stored.
      Specified by:
      getEnergyStored in interface IEnergyStorage
    • getMaxEnergyStored

      public int getMaxEnergyStored()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IEnergyStorage
      Returns the maximum amount of energy that can be stored.
      Specified by:
      getMaxEnergyStored in interface IEnergyStorage
    • canExtract

      public boolean canExtract()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IEnergyStorage
      Returns if this storage can have energy extracted. If this is false, then any calls to extractEnergy will return 0.
      Specified by:
      canExtract in interface IEnergyStorage
    • canReceive

      public boolean canReceive()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IEnergyStorage
      Used to determine if this storage can receive energy. If this is false, then any calls to receiveEnergy will return 0.
      Specified by:
      canReceive in interface IEnergyStorage
    • setEnergy

      protected void setEnergy(int energy)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Writes a new energy value to the data component. Clamps to [0, capacity]
      Parameters:
      energy - The new energy value