Package com.hbm_m.block.entity.doors
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
FieldsFields inherited from class net.minecraft.world.level.block.entity.BlockEntity
level, remove, worldPositionFields inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity
INFINITE_EXTENT_AABB -
Constructor Summary
ConstructorsConstructorDescriptionDoorBlockEntity(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 TypeMethodDescriptionvoidvoidCalled from DoorAnimationDelayHelper when delay expires.voidclose()Set<net.minecraft.core.Direction>longnet.minecraft.core.BlockPosnet.minecraft.core.DirectionПолучить текущий выбор моделиfloatПолучает прогресс открытия БЕЗ партиальных тиков (для серверного использования).floatgetOpenProgress(float partialTick) intВозвращает текущую роль части (может быть DEFAULT если не назначено).net.minecraft.world.phys.AABBintbytegetState()net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener>net.minecraft.nbt.CompoundTagvoidhandleUpdateTag(net.minecraft.nbt.CompoundTag tag) voidinitModelSelection(boolean applyConfigDefault) Инициализирует выбор модели на основе конфигурации.booleanbooleanisLocked()booleanisMoving()Проверяет, находится ли дверь в процессе движения.booleanisOpen()voidload(net.minecraft.nbt.CompoundTag tag) voidonDataPacket(net.minecraft.network.Connection net, net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket pkt) voidВызывается после формирования структурыvoidopen()voidСбросить к выбору по умолчаниюprotected voidsaveAdditional(net.minecraft.nbt.CompoundTag tag) static voidserverTick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, DoorBlockEntity be) voidsetAllowedClimbSides(Set<net.minecraft.core.Direction> sides) voidsetControllerPos(net.minecraft.core.BlockPos pos) Устанавливает позицию главного блока-контроллера.voidsetLocked(boolean locked) voidsetModelSelection(DoorModelSelection selection) Установить выбор моделиvoidsetModelType(DoorModelType type) Установить тип моделиvoidsetPartRole(PartRole role) Устанавливает роль для этой части.voidvoidУстановить скин (только для MODERN модели)voidtoggle()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, triggerEventMethods inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
areCapsCompatible, areCapsCompatible, deserializeCaps, gatherCapabilities, gatherCapabilities, gatherCapabilities, getCapabilities, getCapability, invalidateCaps, reviveCaps, serializeCapsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraftforge.common.capabilities.ICapabilityProvider
getCapability, getCapabilityMethods inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity
deserializeNBT, getModelData, hasCustomOutlineRendering, onLoad, requestModelDataUpdate, serializeNBTMethods inherited from interface com.hbm_m.interfaces.IMultiblockPart
getAllowedEnergySides, getAllowedFluidSides, setAllowedEnergySides, setAllowedFluidSides
-
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
Получить текущий выбор модели -
setModelSelection
Установить выбор модели -
setModelType
Установить тип модели -
setSkin
Установить скин (только для 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:
setControllerPosin interfaceIMultiblockPart- Parameters:
pos- Позиция контроллера.
-
getControllerPos
@Nullable public net.minecraft.core.BlockPos getControllerPos()- Specified by:
getControllerPosin interfaceIMultiblockPart- Returns:
- Позиция главного блока-контроллера, или null, если она не установлена.
-
setPartRole
Description copied from interface:IMultiblockPartУстанавливает роль для этой части. Вызывается контроллером при постройке.- Specified by:
setPartRolein interfaceIMultiblockPart- Parameters:
role- Роль, назначенная этой части.
-
getPartRole
Description copied from interface:IMultiblockPartВозвращает текущую роль части (может быть DEFAULT если не назначено).- Specified by:
getPartRolein interfaceIMultiblockPart
-
isController
public boolean isController() -
getController
-
onStructureFormed
public void onStructureFormed()Вызывается после формирования структуры -
getDoorDecl
-
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
-
setRemoved
public void setRemoved()- Overrides:
setRemovedin classnet.minecraft.world.level.block.entity.BlockEntity
-
saveAdditional
protected void saveAdditional(net.minecraft.nbt.CompoundTag tag) - Overrides:
saveAdditionalin classnet.minecraft.world.level.block.entity.BlockEntity
-
load
public void load(net.minecraft.nbt.CompoundTag tag) - Overrides:
loadin classnet.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:
getUpdateTagin classnet.minecraft.world.level.block.entity.BlockEntity
-
handleUpdateTag
public void handleUpdateTag(net.minecraft.nbt.CompoundTag tag) - Specified by:
handleUpdateTagin interfacenet.minecraftforge.common.extensions.IForgeBlockEntity
-
getUpdatePacket
@Nullable public net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener> getUpdatePacket()- Overrides:
getUpdatePacketin classnet.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:
onDataPacketin interfacenet.minecraftforge.common.extensions.IForgeBlockEntity
-
getRenderBoundingBox
public net.minecraft.world.phys.AABB getRenderBoundingBox()- Specified by:
getRenderBoundingBoxin interfacenet.minecraftforge.common.extensions.IForgeBlockEntity
-
setAllowedClimbSides
- Specified by:
setAllowedClimbSidesin interfaceIMultiblockPart
-
getAllowedClimbSides
- Specified by:
getAllowedClimbSidesin interfaceIMultiblockPart
-