Class UniversalMachinePartBlock

java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
net.minecraft.world.level.block.BaseEntityBlock
com.hbm_m.block.machines.UniversalMachinePartBlock
All Implemented Interfaces:
IDetonatable, net.minecraft.world.flag.FeatureElement, net.minecraft.world.level.block.EntityBlock, net.minecraft.world.level.ItemLike, net.minecraftforge.common.extensions.IForgeBlock

public class UniversalMachinePartBlock extends net.minecraft.world.level.block.BaseEntityBlock implements IDetonatable
  • Nested Class Summary

    Nested classes/interfaces inherited from class net.minecraft.world.level.block.Block

    net.minecraft.world.level.block.Block.BlockStatePairKey

    Nested classes/interfaces inherited from class net.minecraft.world.level.block.state.BlockBehaviour

    net.minecraft.world.level.block.state.BlockBehaviour.BlockStateBase, net.minecraft.world.level.block.state.BlockBehaviour.OffsetFunction, net.minecraft.world.level.block.state.BlockBehaviour.OffsetType, net.minecraft.world.level.block.state.BlockBehaviour.Properties, net.minecraft.world.level.block.state.BlockBehaviour.StateArgumentPredicate<A extends Object>, net.minecraft.world.level.block.state.BlockBehaviour.StatePredicate
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final net.minecraft.world.level.block.state.properties.DirectionProperty
     
    static final net.minecraft.world.level.block.state.properties.BooleanProperty
    Флаг проходимости для AI-pathfinding (как OPEN у ванильной двери).

    Fields inherited from class net.minecraft.world.level.block.Block

    BLOCK_STATE_REGISTRY, INDESTRUCTIBLE, INSTANT, stateDefinition, UPDATE_ALL, UPDATE_ALL_IMMEDIATE, UPDATE_CLIENTS, UPDATE_IMMEDIATE, UPDATE_INVISIBLE, UPDATE_KNOWN_SHAPE, UPDATE_LIMIT, UPDATE_MOVE_BY_PISTON, UPDATE_NEIGHBORS, UPDATE_NONE, UPDATE_SUPPRESS_DROPS

    Fields inherited from class net.minecraft.world.level.block.state.BlockBehaviour

    drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDER

    Fields inherited from interface net.minecraft.world.flag.FeatureElement

    FILTERED_REGISTRIES
  • Constructor Summary

    Constructors
    Constructor
    Description
    UniversalMachinePartBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties pProperties)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    addLandingEffects(net.minecraft.world.level.block.state.BlockState state1, net.minecraft.server.level.ServerLevel level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state2, net.minecraft.world.entity.LivingEntity entity, int numberOfParticles)
    Исправляет частицы при приземлении на фантомный блок.
    boolean
    addRunningEffects(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.Entity entity)
    Исправляет частицы при беге по фантомному блоку.
    protected void
    createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block,net.minecraft.world.level.block.state.BlockState> pBuilder)
     
    net.minecraft.world.item.ItemStack
    getCloneItemStack(net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
     
    net.minecraft.world.phys.shapes.VoxelShape
    getCollisionShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.phys.shapes.CollisionContext pContext)
     
    float
    getDestroyProgress(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.entity.player.Player pPlayer, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos)
    Возвращает скорость разрушения блока.
    int
    getDirectSignal(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side)
     
    int
    getLightBlock(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
     
    net.minecraft.world.phys.shapes.VoxelShape
    getOcclusionShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos)
     
    net.minecraft.world.level.block.RenderShape
    getRenderShape(net.minecraft.world.level.block.state.BlockState pState)
     
    float
    getShadeBrightness(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
     
    net.minecraft.world.phys.shapes.VoxelShape
    getShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.phys.shapes.CollisionContext pContext)
     
    int
    getSignal(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side)
     
    <T extends net.minecraft.world.level.block.entity.BlockEntity>
    net.minecraft.world.level.block.entity.BlockEntityTicker<T>
    getTicker(net.minecraft.world.level.Level level, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.entity.BlockEntityType<T> type)
     
    boolean
    isLadder(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.LevelReader pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.entity.LivingEntity pEntity)
    Позволяет блокам с ролью LADDER быть использованными как лестница.
    boolean
    isPathfindable(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.pathfinder.PathComputationType type)
    Как у ванильной двери: проходимость определяется blockstate-свойством PASSABLE, которое обновляется контроллером-дверью при открытии/закрытии.
    boolean
    isSignalSource(net.minecraft.world.level.block.state.BlockState state)
     
    void
    neighborChanged(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.Level pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.Block pBlock, net.minecraft.core.BlockPos pFromPos, boolean pIsMoving)
     
    net.minecraft.world.level.block.entity.BlockEntity
    newBlockEntity(net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pState)
     
    boolean
    onDetonate(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos partPos, net.minecraft.world.level.block.state.BlockState partState, net.minecraft.world.entity.player.Player player)
    Вызывается когда детонатор отправляет сигнал на этот блок
    void
    onRemove(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.Level pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pNewState, boolean pIsMoving)
     
    void
    playerWillDestroy(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.entity.player.Player player)
     
    boolean
    propagatesSkylightDown(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter reader, net.minecraft.core.BlockPos pos)
     
    net.minecraft.world.InteractionResult
    use(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.Level pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.entity.player.Player pPlayer, net.minecraft.world.InteractionHand pHand, net.minecraft.world.phys.BlockHitResult pHit)
     

    Methods inherited from class net.minecraft.world.level.block.BaseEntityBlock

    createTickerHelper, getMenuProvider, triggerEvent

    Methods inherited from class net.minecraft.world.level.block.Block

    animateTick, appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, canSustainPlant, defaultBlockState, destroy, dropFromExplosion, dropResources, dropResources, dropResources, dropResources, fallOn, getDescriptionId, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getRenderPropertiesInternal, getShapeForEachState, getSoundType, getSpeedFactor, getStateDefinition, getStateForPlacement, handlePrecipitation, hasDynamicShape, initializeClient, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isRandomlyTicking, isShapeFullBlock, playerDestroy, popExperience, popResource, popResourceFromFace, pushEntitiesUp, registerDefaultState, setPlacedBy, shouldRenderFace, spawnDestroyParticles, stateById, stepOn, toString, tryDropExperience, updateEntityAfterFallOn, updateFromNeighbourShapes, updateOrDestroy, updateOrDestroy, wasExploded, withPropertiesOf

    Methods inherited from class net.minecraft.world.level.block.state.BlockBehaviour

    attack, canBeReplaced, canBeReplaced, canSurvive, defaultDestroyTime, defaultMapColor, entityInside, getAnalogOutputSignal, getBlockSupportShape, getDrops, getFluidState, getInteractionShape, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getSeed, getVisualShape, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, mirror, onPlace, onProjectileHit, randomTick, requiredFeatures, rotate, skipRendering, spawnAfterBreak, tick, updateIndirectNeighbourShapes, updateShape, useShapeForLightOcclusion

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface net.minecraft.world.level.block.EntityBlock

    getListener

    Methods inherited from interface net.minecraft.world.flag.FeatureElement

    isEnabled

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

    canBeHydrated, canConnectRedstone, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBedDirection, getBlockPathType, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hidesNeighborFace, isBed, isBurning, isConduitFrame, isFertile, isFireSource, isFlammable, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, isValidSpawn, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPlayer, onNeighborChange, onTreeGrow, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, supportsExternalFaceHiding
  • Field Details

    • FACING

      public static final net.minecraft.world.level.block.state.properties.DirectionProperty FACING
    • PASSABLE

      public static final net.minecraft.world.level.block.state.properties.BooleanProperty PASSABLE
      Флаг проходимости для AI-pathfinding (как OPEN у ванильной двери). Хранится в blockstate для надёжного доступа из WalkNodeEvaluator без необходимости обращаться к BlockEntity (которое может быть недоступно в PathNavigationRegion). Устанавливается контроллером-дверью при открытии/закрытии.
  • Constructor Details

    • UniversalMachinePartBlock

      public UniversalMachinePartBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties pProperties)
  • Method Details

    • onDetonate

      public boolean onDetonate(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos partPos, net.minecraft.world.level.block.state.BlockState partState, net.minecraft.world.entity.player.Player player)
      Description copied from interface: IDetonatable
      Вызывается когда детонатор отправляет сигнал на этот блок
      Specified by:
      onDetonate in interface IDetonatable
      Parameters:
      level - Мир
      partPos - Позиция блока
      partState - Состояние блока
      player - Игрок, использовавший детонатор (может быть null)
      Returns:
      true если блок успешно отреагировал на сигнал, false если нет
    • createBlockStateDefinition

      protected void createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block,net.minecraft.world.level.block.state.BlockState> pBuilder)
      Overrides:
      createBlockStateDefinition in class net.minecraft.world.level.block.Block
    • newBlockEntity

      @Nullable public net.minecraft.world.level.block.entity.BlockEntity newBlockEntity(net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pState)
      Specified by:
      newBlockEntity in interface net.minecraft.world.level.block.EntityBlock
    • getTicker

      @Nullable public <T extends net.minecraft.world.level.block.entity.BlockEntity> net.minecraft.world.level.block.entity.BlockEntityTicker<T> getTicker(net.minecraft.world.level.Level level, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.entity.BlockEntityType<T> type)
      Specified by:
      getTicker in interface net.minecraft.world.level.block.EntityBlock
    • getRenderShape

      public net.minecraft.world.level.block.RenderShape getRenderShape(net.minecraft.world.level.block.state.BlockState pState)
      Overrides:
      getRenderShape in class net.minecraft.world.level.block.BaseEntityBlock
    • getShape

      public net.minecraft.world.phys.shapes.VoxelShape getShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.phys.shapes.CollisionContext pContext)
      Overrides:
      getShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • getCollisionShape

      public net.minecraft.world.phys.shapes.VoxelShape getCollisionShape(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.phys.shapes.CollisionContext pContext)
      Overrides:
      getCollisionShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • isPathfindable

      public boolean isPathfindable(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.pathfinder.PathComputationType type)
      Как у ванильной двери: проходимость определяется blockstate-свойством PASSABLE, которое обновляется контроллером-дверью при открытии/закрытии. Это гарантирует корректную работу AI-pathfinding без обращения к BlockEntity.
      Overrides:
      isPathfindable in class net.minecraft.world.level.block.state.BlockBehaviour
    • neighborChanged

      public void neighborChanged(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.Level pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.Block pBlock, net.minecraft.core.BlockPos pFromPos, boolean pIsMoving)
      Overrides:
      neighborChanged in class net.minecraft.world.level.block.state.BlockBehaviour
    • isLadder

      public boolean isLadder(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.LevelReader pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.entity.LivingEntity pEntity)
      Позволяет блокам с ролью LADDER быть использованными как лестница. Работает с любых боковых сторон.
      Specified by:
      isLadder in interface net.minecraftforge.common.extensions.IForgeBlock
    • getOcclusionShape

      public net.minecraft.world.phys.shapes.VoxelShape getOcclusionShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos)
      Overrides:
      getOcclusionShape in class net.minecraft.world.level.block.state.BlockBehaviour
    • use

      public net.minecraft.world.InteractionResult use(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.Level pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.entity.player.Player pPlayer, net.minecraft.world.InteractionHand pHand, net.minecraft.world.phys.BlockHitResult pHit)
      Overrides:
      use in class net.minecraft.world.level.block.state.BlockBehaviour
    • onRemove

      public void onRemove(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.level.Level pLevel, net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pNewState, boolean pIsMoving)
      Overrides:
      onRemove in class net.minecraft.world.level.block.state.BlockBehaviour
    • playerWillDestroy

      public void playerWillDestroy(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.entity.player.Player player)
      Overrides:
      playerWillDestroy in class net.minecraft.world.level.block.Block
    • getCloneItemStack

      public net.minecraft.world.item.ItemStack getCloneItemStack(net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
      Overrides:
      getCloneItemStack in class net.minecraft.world.level.block.Block
    • getDestroyProgress

      public float getDestroyProgress(net.minecraft.world.level.block.state.BlockState pState, net.minecraft.world.entity.player.Player pPlayer, net.minecraft.world.level.BlockGetter pLevel, net.minecraft.core.BlockPos pPos)
      Возвращает скорость разрушения блока. Для осиротевших блоков возвращает очень большое значение, чтобы они ломались мгновенно даже рукой.
      Overrides:
      getDestroyProgress in class net.minecraft.world.level.block.state.BlockBehaviour
    • propagatesSkylightDown

      public boolean propagatesSkylightDown(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter reader, net.minecraft.core.BlockPos pos)
      Overrides:
      propagatesSkylightDown in class net.minecraft.world.level.block.Block
    • getShadeBrightness

      public float getShadeBrightness(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
      Overrides:
      getShadeBrightness in class net.minecraft.world.level.block.state.BlockBehaviour
    • getLightBlock

      public int getLightBlock(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
      Overrides:
      getLightBlock in class net.minecraft.world.level.block.state.BlockBehaviour
    • addLandingEffects

      public boolean addLandingEffects(net.minecraft.world.level.block.state.BlockState state1, net.minecraft.server.level.ServerLevel level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state2, net.minecraft.world.entity.LivingEntity entity, int numberOfParticles)
      Исправляет частицы при приземлении на фантомный блок. Вместо текстуры фантома (которой нет), берет текстуру контроллера.
      Specified by:
      addLandingEffects in interface net.minecraftforge.common.extensions.IForgeBlock
    • addRunningEffects

      public boolean addRunningEffects(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.Entity entity)
      Исправляет частицы при беге по фантомному блоку.
      Specified by:
      addRunningEffects in interface net.minecraftforge.common.extensions.IForgeBlock
    • isSignalSource

      public boolean isSignalSource(net.minecraft.world.level.block.state.BlockState state)
      Overrides:
      isSignalSource in class net.minecraft.world.level.block.state.BlockBehaviour
    • getSignal

      public int getSignal(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side)
      Overrides:
      getSignal in class net.minecraft.world.level.block.state.BlockBehaviour
    • getDirectSignal

      public int getDirectSignal(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side)
      Overrides:
      getDirectSignal in class net.minecraft.world.level.block.state.BlockBehaviour