Class DoorBlockEntity

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.doors.DoorBlockEntity
All Implemented Interfaces:
IMultiblockPart, 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 DoorBlockEntity extends net.minecraft.world.level.block.entity.BlockEntity implements IMultiblockPart
  • Nested Class Summary

    Nested classes/interfaces inherited from class net.minecraftforge.common.capabilities.CapabilityProvider

    net.minecraftforge.common.capabilities.CapabilityProvider.AsField<B extends net.minecraftforge.common.capabilities.ICapabilityProviderImpl<B>>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    long
     
    byte
     

    Fields inherited from class net.minecraft.world.level.block.entity.BlockEntity

    level, remove, worldPosition

    Fields inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity

    INFINITE_EXTENT_AABB
  • Constructor Summary

    Constructors
    Constructor
    Description
    DoorBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
     
    DoorBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, String doorDeclId)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
    Called from DoorAnimationDelayHelper when delay expires.
    void
     
    Set<net.minecraft.core.Direction>
     
    long
     
     
    net.minecraft.core.BlockPos
     
     
     
    net.minecraft.core.Direction
     
    Получить текущий выбор модели
    float
    Получает прогресс открытия БЕЗ партиальных тиков (для серверного использования).
    float
    getOpenProgress(float partialTick)
     
    int
     
    Возвращает текущую роль части (может быть DEFAULT если не назначено).
    net.minecraft.world.phys.AABB
     
     
    int
     
    byte
     
    net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener>
     
    net.minecraft.nbt.CompoundTag
     
    void
    handleUpdateTag(net.minecraft.nbt.CompoundTag tag)
     
    void
    initModelSelection(boolean applyConfigDefault)
    Инициализирует выбор модели на основе конфигурации.
    boolean
     
    boolean
     
    boolean
    Проверяет, находится ли дверь в процессе движения.
    boolean
     
    void
    load(net.minecraft.nbt.CompoundTag tag)
     
    void
    onDataPacket(net.minecraft.network.Connection net, net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket pkt)
     
    void
    Вызывается после формирования структуры
    void
     
    void
    Сбросить к выбору по умолчанию
    protected void
    saveAdditional(net.minecraft.nbt.CompoundTag tag)
     
    static void
    serverTick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, DoorBlockEntity be)
     
    void
    setAllowedClimbSides(Set<net.minecraft.core.Direction> sides)
     
    void
    setControllerPos(net.minecraft.core.BlockPos pos)
    Устанавливает позицию главного блока-контроллера.
    void
    setLocked(boolean locked)
     
    void
    Установить выбор модели
    void
    Установить тип модели
    void
    Устанавливает роль для этой части.
    void
     
    void
    Установить скин (только для MODERN модели)
    void
     
    void
    Быстрое переключение типа модели

    Methods inherited from class net.minecraft.world.level.block.entity.BlockEntity

    addEntityType, clearRemoved, fillCrashReportCategory, getBlockPos, getBlockState, getLevel, getPersistentData, getPosFromTag, getType, hasLevel, isRemoved, loadStatic, onChunkUnloaded, onlyOpCanSetNbt, saveToItem, saveWithFullMetadata, saveWithId, saveWithoutMetadata, setBlockState, setChanged, setChanged, setLevel, triggerEvent

    Methods inherited from class net.minecraftforge.common.capabilities.CapabilityProvider

    areCapsCompatible, areCapsCompatible, deserializeCaps, gatherCapabilities, gatherCapabilities, gatherCapabilities, getCapabilities, getCapability, invalidateCaps, reviveCaps, serializeCaps

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.minecraftforge.common.capabilities.ICapabilityProvider

    getCapability, getCapability

    Methods inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity

    deserializeNBT, getModelData, hasCustomOutlineRendering, onLoad, requestModelDataUpdate, serializeNBT
  • Field Details

    • state

      public byte state
    • animStartTime

      public long animStartTime
  • Constructor Details

    • DoorBlockEntity

      public DoorBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, String doorDeclId)
    • DoorBlockEntity

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

    • clearAnimationDelayClient

      public void clearAnimationDelayClient()
      Called from DoorAnimationDelayHelper when delay expires. Client-only.
    • getModelSelection

      public DoorModelSelection getModelSelection()
      Получить текущий выбор модели
    • setModelSelection

      public void setModelSelection(DoorModelSelection selection)
      Установить выбор модели
    • setModelType

      public void setModelType(DoorModelType type)
      Установить тип модели
    • setSkin

      public void setSkin(DoorSkin skin)
      Установить скин (только для MODERN модели)
    • toggleModelType

      public void toggleModelType()
      Быстрое переключение типа модели
    • resetToDefault

      public void resetToDefault()
      Сбросить к выбору по умолчанию
    • setControllerPos

      public void setControllerPos(net.minecraft.core.BlockPos pos)
      Description copied from interface: IMultiblockPart
      Устанавливает позицию главного блока-контроллера. Этот метод вызывается из MultiblockStructureHelper при постройке структуры.
      Specified by:
      setControllerPos in interface IMultiblockPart
      Parameters:
      pos - Позиция контроллера.
    • getControllerPos

      @Nullable public net.minecraft.core.BlockPos getControllerPos()
      Specified by:
      getControllerPos in interface IMultiblockPart
      Returns:
      Позиция главного блока-контроллера, или null, если она не установлена.
    • setPartRole

      public void setPartRole(PartRole role)
      Description copied from interface: IMultiblockPart
      Устанавливает роль для этой части. Вызывается контроллером при постройке.
      Specified by:
      setPartRole in interface IMultiblockPart
      Parameters:
      role - Роль, назначенная этой части.
    • getPartRole

      public PartRole getPartRole()
      Description copied from interface: IMultiblockPart
      Возвращает текущую роль части (может быть DEFAULT если не назначено).
      Specified by:
      getPartRole in interface IMultiblockPart
    • isController

      public boolean isController()
    • getController

      @Nullable public DoorBlockEntity getController()
    • onStructureFormed

      public void onStructureFormed()
      Вызывается после формирования структуры
    • getDoorDecl

      public DoorDecl getDoorDecl()
    • getDoorDeclId

      public String getDoorDeclId()
    • getFacing

      public net.minecraft.core.Direction getFacing()
    • checkRedstonePower

      public void checkRedstonePower()
    • getOpenProgress

      public float getOpenProgress(float partialTick)
    • getOpenProgress

      public float getOpenProgress()
      Получает прогресс открытия БЕЗ партиальных тиков (для серверного использования).
      Returns:
      прогресс от 0.0 до 1.0
    • getState

      public byte getState()
    • getAnimStartTime

      public long getAnimStartTime()
    • getSkinIndex

      public int getSkinIndex()
    • open

      public void open()
    • close

      public void close()
    • toggle

      public void toggle()
    • isMoving

      public boolean isMoving()
      Проверяет, находится ли дверь в процессе движения. На клиенте: включает задержку + grace period после полного открытия/закрытия - анимированная часть остаётся видимой, пока baked model не пересоберётся.
    • isOpen

      public boolean isOpen()
    • isLocked

      public boolean isLocked()
    • setLocked

      public void setLocked(boolean locked)
    • serverTick

      public static void serverTick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, DoorBlockEntity be)
    • getServerDoorDecl

      public DoorDecl getServerDoorDecl()
    • setRemoved

      public void setRemoved()
      Overrides:
      setRemoved in class net.minecraft.world.level.block.entity.BlockEntity
    • saveAdditional

      protected void saveAdditional(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      saveAdditional in class net.minecraft.world.level.block.entity.BlockEntity
    • load

      public void load(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      load in class net.minecraft.world.level.block.entity.BlockEntity
    • initModelSelection

      public void initModelSelection(boolean applyConfigDefault)
      Инициализирует выбор модели на основе конфигурации. Вызывается только для старых сохранений (без modelType в NBT). Если hadModelSelectionInNbt=false - применить default из JSON (MODERN и т.д.). Если hadModelSelectionInNbt=true - не перезаписывать: значение уже загружено из NBT (в т.ч. явный выбор LEGACY, который равен DoorModelSelection.DEFAULT).
    • getUpdateTag

      public net.minecraft.nbt.CompoundTag getUpdateTag()
      Overrides:
      getUpdateTag in class net.minecraft.world.level.block.entity.BlockEntity
    • handleUpdateTag

      public void handleUpdateTag(net.minecraft.nbt.CompoundTag tag)
      Specified by:
      handleUpdateTag in interface net.minecraftforge.common.extensions.IForgeBlockEntity
    • getUpdatePacket

      @Nullable public net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener> getUpdatePacket()
      Overrides:
      getUpdatePacket in class net.minecraft.world.level.block.entity.BlockEntity
    • getOpenTicks

      public int getOpenTicks()
    • onDataPacket

      public void onDataPacket(net.minecraft.network.Connection net, net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket pkt)
      Specified by:
      onDataPacket in interface net.minecraftforge.common.extensions.IForgeBlockEntity
    • getRenderBoundingBox

      public net.minecraft.world.phys.AABB getRenderBoundingBox()
      Specified by:
      getRenderBoundingBox in interface net.minecraftforge.common.extensions.IForgeBlockEntity
    • setAllowedClimbSides

      public void setAllowedClimbSides(Set<net.minecraft.core.Direction> sides)
      Specified by:
      setAllowedClimbSides in interface IMultiblockPart
    • getAllowedClimbSides

      public Set<net.minecraft.core.Direction> getAllowedClimbSides()
      Specified by:
      getAllowedClimbSides in interface IMultiblockPart