Package com.hbm_m.multiblock
Class MultiblockFrameHelper
java.lang.Object
com.hbm_m.multiblock.MultiblockFrameHelper
Общая логика рамки (frame) для мультиблоков с
BooleanProperty frame на контроллере.
Рамка видна, если над любой частью верхнего пояса структуры есть непустой блок.-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanapplyFrameToBlockState(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos controllerPos, boolean visible) Записывает видимость рамки в BlockState контроллера (свойствоframe).static booleancomputeFrameVisible(net.minecraft.world.level.Level level, MultiblockStructureHelper structure, net.minecraft.core.BlockPos controllerPos, net.minecraft.core.Direction facing) Рамка видна, если над любой клеткой верхнего слоя мультиблока стоит непустой блок.static net.minecraft.world.level.block.state.properties.BooleanPropertyfindFrameProperty(net.minecraft.world.level.block.state.BlockState state) static intgetMaxY(MultiblockStructureHelper structure) static List<net.minecraft.core.BlockPos>getTopRingWorldPositions(MultiblockStructureHelper structure, net.minecraft.core.BlockPos controllerPos, net.minecraft.core.Direction facing) static booleanisFrameVisible(net.minecraft.world.level.block.state.BlockState state) static booleanisTopRingPart(MultiblockStructureHelper structure, net.minecraft.core.BlockPos localOffset) static voidonNeighborChangedForPart(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos partPos, net.minecraft.core.BlockPos changedPos) Вызывается из фантомной части при изменении соседа над верхним поясом.static voidupdateFrameForController(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos controllerPos) Обновляет рамку для контроллера: пересчёт по верхнему поясу + запись в BlockState.
-
Field Details
-
FRAME_PROPERTY_NAME
- See Also:
-
-
Method Details
-
findFrameProperty
@Nullable public static net.minecraft.world.level.block.state.properties.BooleanProperty findFrameProperty(net.minecraft.world.level.block.state.BlockState state) -
getMaxY
-
isTopRingPart
public static boolean isTopRingPart(MultiblockStructureHelper structure, net.minecraft.core.BlockPos localOffset) -
getTopRingWorldPositions
public static List<net.minecraft.core.BlockPos> getTopRingWorldPositions(MultiblockStructureHelper structure, net.minecraft.core.BlockPos controllerPos, net.minecraft.core.Direction facing) -
computeFrameVisible
public static boolean computeFrameVisible(net.minecraft.world.level.Level level, MultiblockStructureHelper structure, net.minecraft.core.BlockPos controllerPos, net.minecraft.core.Direction facing) Рамка видна, если над любой клеткой верхнего слоя мультиблока стоит непустой блок. -
applyFrameToBlockState
public static boolean applyFrameToBlockState(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos controllerPos, boolean visible) Записывает видимость рамки в BlockState контроллера (свойствоframe).- Returns:
- true, если BlockState изменился
-
updateFrameForController
public static void updateFrameForController(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos controllerPos) Обновляет рамку для контроллера: пересчёт по верхнему поясу + запись в BlockState. -
onNeighborChangedForPart
public static void onNeighborChangedForPart(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos partPos, net.minecraft.core.BlockPos changedPos) Вызывается из фантомной части при изменении соседа над верхним поясом. -
isFrameVisible
public static boolean isFrameVisible(net.minecraft.world.level.block.state.BlockState state)
-