Class BatterySocketBlockEntity

java.lang.Object
net.minecraftforge.common.capabilities.CapabilityProvider<net.minecraft.world.level.block.entity.BlockEntity>
net.minecraft.world.level.block.entity.BlockEntity
com.hbm_m.block.entity.BaseMachineBlockEntity
com.hbm_m.block.entity.machines.BatterySocketBlockEntity
All Implemented Interfaces:
IEnergyConnector, IEnergyModeHolder, IEnergyProvider, IEnergyReceiver, net.minecraft.world.inventory.MenuConstructor, net.minecraft.world.MenuProvider, net.minecraftforge.common.capabilities.ICapabilityProvider, net.minecraftforge.common.capabilities.ICapabilityProviderImpl<net.minecraft.world.level.block.entity.BlockEntity>, net.minecraftforge.common.capabilities.ICapabilitySerializable<net.minecraft.nbt.CompoundTag>, net.minecraftforge.common.extensions.IForgeBlockEntity, net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>

public class BatterySocketBlockEntity extends BaseMachineBlockEntity implements IEnergyModeHolder
Battery socket: one portable battery slot, modes like machine battery, energy from item capabilities.
  • Field Details

    • HAS_INSERT

      public static final net.minecraftforge.client.model.data.ModelProperty<Boolean> HAS_INSERT
    • modeOnNoSignal

      public int modeOnNoSignal
    • modeOnSignal

      public int modeOnSignal
    • energyDelta

      public long energyDelta
    • data

      protected final net.minecraft.world.inventory.ContainerData data
  • Constructor Details

    • BatterySocketBlockEntity

      public BatterySocketBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
  • Method Details

    • isAllowedPortableEnergyStack

      public static boolean isAllowedPortableEnergyStack(net.minecraft.world.item.ItemStack stack)
    • getDefaultName

      protected net.minecraft.network.chat.Component getDefaultName()
      Specified by:
      getDefaultName in class BaseMachineBlockEntity
    • tick

      public static void tick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, BatterySocketBlockEntity be)
    • getItemHandler

      public ModItemStackHandler getItemHandler()
      Backwards-compatible accessor for renderers/menus.
    • isItemValidForSlot

      protected boolean isItemValidForSlot(int slot, net.minecraft.world.item.ItemStack stack)
      Specified by:
      isItemValidForSlot in class BaseMachineBlockEntity
    • isCriticalSlot

      protected boolean isCriticalSlot(int slot)
      Overrides:
      isCriticalSlot in class BaseMachineBlockEntity
    • getModelData

      public net.minecraftforge.client.model.data.ModelData getModelData()
      Specified by:
      getModelData in interface net.minecraftforge.common.extensions.IForgeBlockEntity
    • getEnergyDelta

      public long getEnergyDelta()
      Overrides:
      getEnergyDelta in class BaseMachineBlockEntity
    • getCurrentMode

      public int getCurrentMode()
      Description copied from interface: IEnergyModeHolder
      0 = BOTH, 1 = INPUT only, 2 = OUTPUT only, 3 = DISABLED
      Specified by:
      getCurrentMode in interface IEnergyModeHolder
    • getEnergyStored

      public long getEnergyStored()
      Description copied from interface: IEnergyProvider
      Получить текущее количество энергии
      Specified by:
      getEnergyStored in interface IEnergyProvider
      Specified by:
      getEnergyStored in interface IEnergyReceiver
      Overrides:
      getEnergyStored in class BaseMachineBlockEntity
    • getMaxEnergyStored

      public long getMaxEnergyStored()
      Description copied from interface: IEnergyProvider
      Получить максимальную емкость
      Specified by:
      getMaxEnergyStored in interface IEnergyProvider
      Specified by:
      getMaxEnergyStored in interface IEnergyReceiver
      Overrides:
      getMaxEnergyStored in class BaseMachineBlockEntity
    • setEnergyStored

      public void setEnergyStored(long energy)
      Description copied from interface: IEnergyProvider
      Установить количество энергии (используется сетью)
      Specified by:
      setEnergyStored in interface IEnergyProvider
      Specified by:
      setEnergyStored in interface IEnergyReceiver
      Overrides:
      setEnergyStored in class BaseMachineBlockEntity
    • getReceiveSpeed

      public long getReceiveSpeed()
      Description copied from interface: IEnergyReceiver
      Максимальная скорость приема энергии за тик
      Specified by:
      getReceiveSpeed in interface IEnergyReceiver
      Overrides:
      getReceiveSpeed in class BaseMachineBlockEntity
    • getPriority

      public IEnergyReceiver.Priority getPriority()
      Description copied from interface: IEnergyReceiver
      Приоритет получения энергии в сети
      Specified by:
      getPriority in interface IEnergyReceiver
      Overrides:
      getPriority in class BaseMachineBlockEntity
    • receiveEnergy

      public long receiveEnergy(long maxReceive, boolean simulate)
      Description copied from interface: IEnergyReceiver
      Принять энергию в приемник
      Specified by:
      receiveEnergy in interface IEnergyReceiver
      Overrides:
      receiveEnergy in class BaseMachineBlockEntity
      Parameters:
      maxReceive - Максимальное количество энергии для приема
      simulate - Если true, только симулирует операцию без изменения состояния
      Returns:
      Фактически принятое количество энергии
    • canReceive

      public boolean canReceive()
      Description copied from interface: IEnergyReceiver
      Может ли этот приемник принимать энергию
      Specified by:
      canReceive in interface IEnergyReceiver
      Overrides:
      canReceive in class BaseMachineBlockEntity
    • getProvideSpeed

      public long getProvideSpeed()
      Description copied from interface: IEnergyProvider
      Максимальная скорость отдачи энергии за тик
      Specified by:
      getProvideSpeed in interface IEnergyProvider
      Overrides:
      getProvideSpeed in class BaseMachineBlockEntity
    • extractEnergy

      public long extractEnergy(long maxExtract, boolean simulate)
      Description copied from interface: IEnergyProvider
      Извлечь энергию из провайдера
      Specified by:
      extractEnergy in interface IEnergyProvider
      Overrides:
      extractEnergy in class BaseMachineBlockEntity
      Parameters:
      maxExtract - Максимальное количество энергии для извлечения
      simulate - Если true, только симулирует операцию без изменения состояния
      Returns:
      Фактически извлеченное количество энергии
    • canExtract

      public boolean canExtract()
      Description copied from interface: IEnergyProvider
      Может ли этот провайдер отдавать энергию
      Specified by:
      canExtract in interface IEnergyProvider
      Overrides:
      canExtract in class BaseMachineBlockEntity
    • canConnectEnergy

      public boolean canConnectEnergy(net.minecraft.core.Direction side)
      Description copied from interface: IEnergyConnector
      Может ли этот блок подключаться к энергосети с указанной стороны
      Specified by:
      canConnectEnergy in interface IEnergyConnector
      Overrides:
      canConnectEnergy in class BaseMachineBlockEntity
      Parameters:
      side - Сторона подключения (null = любая)
    • handleButtonPress

      public void handleButtonPress(int buttonId)
    • getComparatorOutput

      public int getComparatorOutput()
    • saveAdditional

      protected void saveAdditional(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      saveAdditional in class BaseMachineBlockEntity
    • load

      public void load(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      load in class BaseMachineBlockEntity
    • getUpdatePacket

      public net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket getUpdatePacket()
      Overrides:
      getUpdatePacket in class BaseMachineBlockEntity
    • getUpdateTag

      public net.minecraft.nbt.CompoundTag getUpdateTag()
      Overrides:
      getUpdateTag in class BaseMachineBlockEntity
    • getRenderBoundingBox

      public net.minecraft.world.phys.AABB getRenderBoundingBox()
      Description copied from class: BaseMachineBlockEntity
      Рендер-баундинг бокс по умолчанию. На Forge это @Override метода из BlockEntity, на Fabric — обычный public метод. Подклассы могут переопределить для мультиблоков с увеличенным размером.
      Specified by:
      getRenderBoundingBox in interface net.minecraftforge.common.extensions.IForgeBlockEntity
      Overrides:
      getRenderBoundingBox in class BaseMachineBlockEntity
    • getDisplayName

      public net.minecraft.network.chat.Component getDisplayName()
      Specified by:
      getDisplayName in interface net.minecraft.world.MenuProvider
    • createMenu

      @Nullable public net.minecraft.world.inventory.AbstractContainerMenu createMenu(int containerId, net.minecraft.world.entity.player.Inventory inv, net.minecraft.world.entity.player.Player player)
      Specified by:
      createMenu in interface net.minecraft.world.inventory.MenuConstructor