Class MultiblockFrameHelper

java.lang.Object
com.hbm_m.multiblock.MultiblockFrameHelper

public final class MultiblockFrameHelper extends Object
Общая логика рамки (frame) для мультиблоков с BooleanProperty frame на контроллере. Рамка видна, если над любой частью верхнего пояса структуры есть непустой блок.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    applyFrameToBlockState(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos controllerPos, boolean visible)
    Записывает видимость рамки в BlockState контроллера (свойство frame).
    static boolean
    computeFrameVisible(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.BooleanProperty
    findFrameProperty(net.minecraft.world.level.block.state.BlockState state)
     
    static int
     
    static List<net.minecraft.core.BlockPos>
    getTopRingWorldPositions(MultiblockStructureHelper structure, net.minecraft.core.BlockPos controllerPos, net.minecraft.core.Direction facing)
     
    static boolean
    isFrameVisible(net.minecraft.world.level.block.state.BlockState state)
     
    static boolean
    isTopRingPart(MultiblockStructureHelper structure, net.minecraft.core.BlockPos localOffset)
     
    static void
    onNeighborChangedForPart(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos partPos, net.minecraft.core.BlockPos changedPos)
    Вызывается из фантомной части при изменении соседа над верхним поясом.
    static void
    updateFrameForController(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos controllerPos)
    Обновляет рамку для контроллера: пересчёт по верхнему поясу + запись в BlockState.

    Methods inherited from class java.lang.Object

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

  • Method Details

    • findFrameProperty

      @Nullable public static net.minecraft.world.level.block.state.properties.BooleanProperty findFrameProperty(net.minecraft.world.level.block.state.BlockState state)
    • getMaxY

      public static int getMaxY(MultiblockStructureHelper structure)
    • 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)