Package com.hbm_m.block.machines
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.BlockStatePairKeyNested 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
FieldsModifier and TypeFieldDescriptionstatic final net.minecraft.world.level.block.state.properties.DirectionPropertystatic 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_DROPSFields inherited from class net.minecraft.world.level.block.state.BlockBehaviour
drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDERFields inherited from interface net.minecraft.world.flag.FeatureElement
FILTERED_REGISTRIES -
Constructor Summary
ConstructorsConstructorDescriptionUniversalMachinePartBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties pProperties) -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddLandingEffects(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) Исправляет частицы при приземлении на фантомный блок.booleanaddRunningEffects(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 voidcreateBlockStateDefinition(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.ItemStackgetCloneItemStack(net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) net.minecraft.world.phys.shapes.VoxelShapegetCollisionShape(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) floatgetDestroyProgress(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) Возвращает скорость разрушения блока.intgetDirectSignal(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) intgetLightBlock(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) net.minecraft.world.phys.shapes.VoxelShapegetOcclusionShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter level, net.minecraft.core.BlockPos pos) net.minecraft.world.level.block.RenderShapegetRenderShape(net.minecraft.world.level.block.state.BlockState pState) floatgetShadeBrightness(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) net.minecraft.world.phys.shapes.VoxelShapegetShape(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) intgetSignal(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) booleanisLadder(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 быть использованными как лестница.booleanisPathfindable(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, которое обновляется контроллером-дверью при открытии/закрытии.booleanisSignalSource(net.minecraft.world.level.block.state.BlockState state) voidneighborChanged(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.BlockEntitynewBlockEntity(net.minecraft.core.BlockPos pPos, net.minecraft.world.level.block.state.BlockState pState) booleanonDetonate(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) Вызывается когда детонатор отправляет сигнал на этот блокvoidonRemove(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) voidplayerWillDestroy(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) booleanpropagatesSkylightDown(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter reader, net.minecraft.core.BlockPos pos) net.minecraft.world.InteractionResultuse(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, triggerEventMethods 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, withPropertiesOfMethods 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, useShapeForLightOcclusionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.world.level.block.EntityBlock
getListenerMethods inherited from interface net.minecraft.world.flag.FeatureElement
isEnabledMethods 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:
onDetonatein interfaceIDetonatable- 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:
createBlockStateDefinitionin classnet.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:
newBlockEntityin interfacenet.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:
getTickerin interfacenet.minecraft.world.level.block.EntityBlock
-
getRenderShape
public net.minecraft.world.level.block.RenderShape getRenderShape(net.minecraft.world.level.block.state.BlockState pState) - Overrides:
getRenderShapein classnet.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:
getShapein classnet.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:
getCollisionShapein classnet.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:
isPathfindablein classnet.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:
neighborChangedin classnet.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:
isLadderin interfacenet.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:
getOcclusionShapein classnet.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:
usein classnet.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:
onRemovein classnet.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:
playerWillDestroyin classnet.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:
getCloneItemStackin classnet.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:
getDestroyProgressin classnet.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:
propagatesSkylightDownin classnet.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:
getShadeBrightnessin classnet.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:
getLightBlockin classnet.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:
addLandingEffectsin interfacenet.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:
addRunningEffectsin interfacenet.minecraftforge.common.extensions.IForgeBlock
-
isSignalSource
public boolean isSignalSource(net.minecraft.world.level.block.state.BlockState state) - Overrides:
isSignalSourcein classnet.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:
getSignalin classnet.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:
getDirectSignalin classnet.minecraft.world.level.block.state.BlockBehaviour
-