Class Block
java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
- All Implemented Interfaces:
FeatureElement, ItemLike, IBlockExtension
- Direct Known Subclasses:
AbstractCandleBlock, AbstractCauldronBlock, AirBlock, AmethystBlock, BambooSaplingBlock, BambooStalkBlock, BarrierBlock, BaseCoralPlantTypeBlock, BaseEntityBlock, BaseFireBlock, BasePressurePlateBlock, BaseRailBlock, BaseTorchBlock, BonemealableFeaturePlacerBlock, BubbleColumnBlock, CactusBlock, CakeBlock, CarpetBlock, CartographyTableBlock, ChorusFlowerBlock, ComposterBlock, CopperBulbBlock, CoralBlock, CraftingTableBlock, CrossCollisionBlock, CryingObsidianBlock, DirectionalBlock, DoorBlock, DropExperienceBlock, EndPortalFrameBlock, FallingBlock, FarmlandBlock, FlowerPotBlock, FrogspawnBlock, GrowingPlantBlock, HalfTransparentBlock, HangingMossBlock, HangingRootsBlock, HeavyCoreBlock, HorizontalDirectionalBlock, HugeMushroomBlock, InfestedBlock, JigsawBlock, LadderBlock, LanternBlock, LeavesBlock, LightBlock, LiquidBlock, MagmaBlock, MangroveRootsBlock, MossyCarpetBlock, MudBlock, MultifaceBlock, NetherPortalBlock, NetherrackBlock, NoteBlock, NyliumBlock, PathBlock, PipeBlock, PowderSnowBlock, PoweredBlock, PumpkinBlock, RedstoneLampBlock, RedStoneOreBlock, RedstoneWireBlock, RespawnAnchorBlock, RootedDirtBlock, RotatedPillarBlock, ScaffoldingBlock, SlabBlock, SnifferEggBlock, SnowLayerBlock, SnowyBlock, SoulSandBlock, SpeleothemBlock, SpongeBlock, SporeBlossomBlock, StairBlock, StonecutterBlock, StructureVoidBlock, SugarCaneBlock, TargetBlock, TntBlock, TripWireBlock, TripWireHookBlock, TurtleEggBlock, VegetationBlock, VineBlock, WallBlock, WeatheringCopperFullBlock, WebBlock, WetSpongeBlock
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final recordstatic @interfaceNested classes/interfaces inherited from class BlockBehaviour
BlockBehaviour.BlockStateBase, BlockBehaviour.OffsetFunction, BlockBehaviour.OffsetType, BlockBehaviour.PostProcess, BlockBehaviour.Properties, BlockBehaviour.StateArgumentPredicate<A>, BlockBehaviour.StatePredicate -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final IdMapper<BlockState> private final Holder.Reference<Block> private static final intprivate static @Nullable List<ItemEntity> Neo: Short-lived holder of dropped item entities.private BlockStatestatic final floatstatic final floatprivate static final org.slf4j.Loggerprivate static final ThreadLocal<it.unimi.dsi.fastutil.objects.Object2ByteLinkedOpenHashMap<Block.ShapePairKey>> private static final LoadingCache<VoxelShape, Boolean> protected final StateDefinition<Block, BlockState> static final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from class BlockBehaviour
bounceRestitution, descriptionId, drops, dynamicShape, explosionResistance, fallDistanceReduction, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDERFields inherited from interface FeatureElement
FILTERED_REGISTRIES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidanimateTick(BlockState state, Level level, BlockPos pos, RandomSource random) protected BlockasBlock()asItem()private static voidInitializescapturedDrops, starting the drop capture process.voidbounceOn(Level level, BlockState state, BlockPos pos, Entity entity, double fallDistance) static VoxelShapebox(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) static VoxelShape[]boxes(int endInclusive, IntFunction<VoxelShape> voxelShapeFactory) static VoxelShapeboxZ(double sizeXY, double minZ, double maxZ) static VoxelShapeboxZ(double sizeX, double sizeY, double minZ, double maxZ) static VoxelShapeboxZ(double sizeX, double minY, double maxY, double minZ, double maxZ) Deprecated.static Blockstatic booleancanSupportCenter(LevelReader level, BlockPos belowPos, Direction direction) static booleancanSupportRigidBlock(BlockGetter level, BlockPos below) static VoxelShapecolumn(double sizeXZ, double minY, double maxY) static VoxelShapecolumn(double sizeX, double sizeZ, double minY, double maxY) protected voidstatic VoxelShapecube(double size) static VoxelShapecube(double sizeX, double sizeY, double sizeZ) final BlockStatevoiddestroy(LevelAccessor level, BlockPos pos, BlockState state) static booleandropFromBlockInteractLootTable(ServerLevel level, ResourceKey<LootTable> key, BlockPos interactedBlockPos, BlockState interactedBlockState, @Nullable BlockEntity interactedBlockEntity, @Nullable ItemInstance tool, @Nullable Entity interactingEntity, BiConsumer<ServerLevel, ItemStack> consumer) booleandropFromExplosion(Explosion explosion) Deprecated.protected static booleandropFromLootTable(ServerLevel level, ResourceKey<LootTable> key, Function<LootParams.Builder, LootParams> paramsBuilder, BiConsumer<ServerLevel, ItemStack> consumer) static voiddropResources(BlockState state, LevelAccessor level, BlockPos pos, @Nullable BlockEntity blockEntity) static voiddropResources(BlockState state, Level level, BlockPos pos) static voiddropResources(BlockState state, Level level, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity breaker, ItemStack tool) voidfallOn(Level level, BlockState state, BlockPos pos, Entity entity, double fallDistance) floatDeprecated.getDrops(BlockState state, ServerLevel level, BlockPos pos, @Nullable BlockEntity blockEntity) getDrops(BlockState state, ServerLevel level, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity breaker, ItemInstance tool) floatDeprecated.floatfloatstatic intgetId(@Nullable BlockState blockState) floatgetName()protected Function<BlockState, VoxelShape> getShapeForEachState(Function<BlockState, VoxelShape> shapeCalculator) protected Function<BlockState, VoxelShape> getShapeForEachState(Function<BlockState, VoxelShape> shapeCalculator, Property<?>... ignoredProperties) floatgetStateForPlacement(BlockPlaceContext context) voidhandlePrecipitation(BlockState state, Level level, BlockPos pos, Biome.Precipitation precipitation) booleanstatic booleanstatic booleanisFaceFull(VoxelShape shape, Direction direction) booleanstatic booleanisShapeFullBlock(VoxelShape shape) voidplayerDestroy(ServerLevel level, ServerPlayer player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack destroyedWith) playerWillDestroy(Level level, BlockPos pos, BlockState state, Player player) voidpopExperience(ServerLevel level, BlockPos pos, int amount) private static voidpopResource(Level level, Supplier<ItemEntity> entityFactory, ItemStack itemStack) static voidpopResource(Level level, BlockPos pos, ItemStack itemStack) static voidpopResourceFromFace(Level level, BlockPos pos, Direction face, ItemStack itemStack) static BlockStatepushEntitiesUp(BlockState state, BlockState newState, LevelAccessor level, BlockPos pos) protected final voidregisterDefaultState(BlockState state) voidsetPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity by, ItemStack itemStack) private static <S extends StateHolder<?,S>, T extends Comparable<T>>
SsetValueHelper(S state, Property<T> property, Object value) static booleanshouldRenderFace(BlockState state, BlockState neighborState, Direction direction) Deprecated.Neo: use overload with level context insteadstatic booleanshouldRenderFace(BlockGetter level, BlockPos pos, BlockState state, BlockState neighborState, Direction direction) voidspawnDestroyByEntityParticles(Level level, @Nullable Entity entity, BlockPos pos, BlockState state) voidspawnDestroyParticles(Level level, BlockPos pos, BlockState state) static BlockStatestateById(int idWithData) voidstepOn(Level level, BlockPos pos, BlockState onState, Entity entity) private static List<ItemEntity> Ends the drop capture process by settingcapturedDropsto null and returning the old list.toString()protected voidtryDropExperience(ServerLevel level, BlockPos pos, ItemStack tool, IntProvider xpRange) static BlockStateupdateFromNeighbourShapes(BlockState state, LevelAccessor level, BlockPos pos) static voidupdateOrDestroy(BlockState blockState, BlockState newState, LevelAccessor level, BlockPos blockPos, int updateFlags) static voidupdateOrDestroy(BlockState blockState, BlockState newState, LevelAccessor level, BlockPos blockPos, int updateFlags, int updateLimit) voidwasExploded(ServerLevel level, BlockPos pos, Explosion explosion) final BlockStatewithPropertiesOf(BlockState source) Methods inherited from class BlockBehaviour
affectNeighborsAfterRemoval, attack, canBeReplaced, canBeReplaced, canSurvive, defaultDestroyTime, defaultMapColor, entityInside, getAnalogOutputSignal, getBlockSupportShape, getCloneItemStack, getCollisionShape, getDescriptionId, getDestroyProgress, getDirectSignal, getDrops, getEntityInsideCollisionShape, getFluidState, getInteractionShape, getLightDampening, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getMenuProvider, getOcclusionShape, getRenderShape, getSeed, getShadeBrightness, getShape, getSignal, getSoundType, getVisualShape, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isPathfindable, isRandomlyTicking, isSignalSource, mirror, neighborChanged, onExplosionHit, onPlace, onProjectileHit, ownSignal, propagatesSkylightDown, properties, randomTick, requiredFeatures, rotate, shouldChangedStateKeepBlockEntity, shouldRedstoneWireConnectTo, showAsInteractableInSpectatorMode, skipRendering, spawnAfterBreak, tick, triggerEvent, updateIndirectNeighbourShapes, updateShape, useItemOn, useShapeForLightOcclusion, useWithoutItemMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface FeatureElement
isEnabledMethods inherited from interface IBlockExtension
addLandingEffects, addRunningEffects, canBeHydrated, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, canSustainPlant, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBlockPathType, getBounceRestitution, getBubbleColumnDirection, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getPistonPushReaction, getRelocability, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hasDynamicLightEmission, hidesNeighborFace, ignitedByLava, isBurning, isEmpty, isFertile, isFireSource, isFlammable, isLadder, isScaffolding, isSlimeBlock, isStickyBlock, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPlayer, onDestroyedByPushReaction, onNeighborChange, onTreeGrow, playFallSound, playStepSound, rotate, shouldCheckWeakPower, shouldDisplayFluidOverlay, shouldHideAdjacentFluidFace, supportsExternalFaceHiding
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
builtInRegistryHolder
-
BLOCK_STATE_REGISTRY
-
SHAPE_FULL_BLOCK_CACHE
-
UPDATE_NEIGHBORS
public static final int UPDATE_NEIGHBORS- See Also:
-
UPDATE_CLIENTS
public static final int UPDATE_CLIENTS- See Also:
-
UPDATE_INVISIBLE
public static final int UPDATE_INVISIBLE- See Also:
-
UPDATE_IMMEDIATE
public static final int UPDATE_IMMEDIATE- See Also:
-
UPDATE_KNOWN_SHAPE
public static final int UPDATE_KNOWN_SHAPE- See Also:
-
UPDATE_SUPPRESS_DROPS
public static final int UPDATE_SUPPRESS_DROPS- See Also:
-
UPDATE_MOVE_BY_PISTON
public static final int UPDATE_MOVE_BY_PISTON- See Also:
-
UPDATE_SKIP_SHAPE_UPDATE_ON_WIRE
public static final int UPDATE_SKIP_SHAPE_UPDATE_ON_WIRE- See Also:
-
UPDATE_SKIP_BLOCK_ENTITY_SIDEEFFECTS
public static final int UPDATE_SKIP_BLOCK_ENTITY_SIDEEFFECTS- See Also:
-
UPDATE_SKIP_ON_PLACE
public static final int UPDATE_SKIP_ON_PLACE- See Also:
-
UPDATE_NONE
public static final int UPDATE_NONE- See Also:
-
UPDATE_ALL
public static final int UPDATE_ALL- See Also:
-
UPDATE_ALL_IMMEDIATE
public static final int UPDATE_ALL_IMMEDIATE- See Also:
-
UPDATE_SKIP_ALL_SIDEEFFECTS
public static final int UPDATE_SKIP_ALL_SIDEEFFECTS- See Also:
-
INDESTRUCTIBLE
public static final float INDESTRUCTIBLE- See Also:
-
INSTANT
public static final float INSTANT- See Also:
-
UPDATE_LIMIT
public static final int UPDATE_LIMIT- See Also:
-
stateDefinition
-
defaultBlockState
-
item
-
CACHE_SIZE
private static final int CACHE_SIZE- See Also:
-
OCCLUSION_CACHE
private static final ThreadLocal<it.unimi.dsi.fastutil.objects.Object2ByteLinkedOpenHashMap<Block.ShapePairKey>> OCCLUSION_CACHE -
capturedDrops
Neo: Short-lived holder of dropped item entities. Used mainly for Neo hooks and event logic.When not null, records all item entities from
popResource(Level, Supplier, ItemStack)instead of adding them to the world.
-
-
Constructor Details
-
Block
-
-
Method Details
-
getId
-
stateById
-
byItem
-
pushEntitiesUp
public static BlockState pushEntitiesUp(BlockState state, BlockState newState, LevelAccessor level, BlockPos pos) -
box
public static VoxelShape box(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) -
boxes
-
cube
-
cube
-
column
-
column
-
boxZ
-
boxZ
-
boxZ
-
updateFromNeighbourShapes
public static BlockState updateFromNeighbourShapes(BlockState state, LevelAccessor level, BlockPos pos) -
updateOrDestroy
public static void updateOrDestroy(BlockState blockState, BlockState newState, LevelAccessor level, BlockPos blockPos, int updateFlags) -
updateOrDestroy
public static void updateOrDestroy(BlockState blockState, BlockState newState, LevelAccessor level, BlockPos blockPos, int updateFlags, int updateLimit) -
isExceptionForConnection
-
dropFromBlockInteractLootTable
public static boolean dropFromBlockInteractLootTable(ServerLevel level, ResourceKey<LootTable> key, BlockPos interactedBlockPos, BlockState interactedBlockState, @Nullable BlockEntity interactedBlockEntity, @Nullable ItemInstance tool, @Nullable Entity interactingEntity, BiConsumer<ServerLevel, ItemStack> consumer) -
dropFromLootTable
protected static boolean dropFromLootTable(ServerLevel level, ResourceKey<LootTable> key, Function<LootParams.Builder, LootParams> paramsBuilder, BiConsumer<ServerLevel, ItemStack> consumer) -
shouldRenderFace
@Deprecated public static boolean shouldRenderFace(BlockState state, BlockState neighborState, Direction direction) Deprecated.Neo: use overload with level context instead -
shouldRenderFace
public static boolean shouldRenderFace(BlockGetter level, BlockPos pos, BlockState state, BlockState neighborState, Direction direction) -
canSupportRigidBlock
-
canSupportCenter
-
isFaceFull
-
isShapeFullBlock
-
animateTick
-
destroy
-
getDrops
public static List<ItemStack> getDrops(BlockState state, ServerLevel level, BlockPos pos, @Nullable BlockEntity blockEntity) -
getDrops
public static List<ItemStack> getDrops(BlockState state, ServerLevel level, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity breaker, ItemInstance tool) -
dropResources
-
dropResources
public static void dropResources(BlockState state, LevelAccessor level, BlockPos pos, @Nullable BlockEntity blockEntity) -
dropResources
public static void dropResources(BlockState state, Level level, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity breaker, ItemStack tool) -
popResource
-
popResourceFromFace
-
popResource
private static void popResource(Level level, Supplier<ItemEntity> entityFactory, ItemStack itemStack) -
popExperience
-
getExplosionResistance
Deprecated. -
wasExploded
-
stepOn
-
getStateForPlacement
-
playerDestroy
public void playerDestroy(ServerLevel level, ServerPlayer player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack destroyedWith) -
setPlacedBy
public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity by, ItemStack itemStack) -
isPossibleToRespawnInThis
-
getName
-
fallOn
-
bounceOn
public void bounceOn(Level level, BlockState state, BlockPos pos, Entity entity, double fallDistance) -
getBounceRestitution
Deprecated. -
getFallDistanceReduction
public float getFallDistanceReduction() -
getFriction
public float getFriction() -
getSpeedFactor
public float getSpeedFactor() -
getJumpFactor
public float getJumpFactor() -
spawnDestroyByEntityParticles
public void spawnDestroyByEntityParticles(Level level, @Nullable Entity entity, BlockPos pos, BlockState state) -
spawnDestroyParticles
-
playerWillDestroy
-
handlePrecipitation
public void handlePrecipitation(BlockState state, Level level, BlockPos pos, Biome.Precipitation precipitation) -
dropFromExplosion
Deprecated. -
createBlockStateDefinition
-
getStateDefinition
-
registerDefaultState
-
defaultBlockState
-
withPropertiesOf
-
asItem
- Specified by:
asItemin interfaceItemLike- Specified by:
asItemin classBlockBehaviour
-
hasDynamicShape
public boolean hasDynamicShape() -
toString
-
asBlock
- Specified by:
asBlockin classBlockBehaviour
-
getShapeForEachState
protected Function<BlockState, VoxelShape> getShapeForEachState(Function<BlockState, VoxelShape> shapeCalculator) -
getShapeForEachState
protected Function<BlockState, VoxelShape> getShapeForEachState(Function<BlockState, VoxelShape> shapeCalculator, Property<?>... ignoredProperties) -
setValueHelper
private static <S extends StateHolder<?,S>, T extends Comparable<T>> S setValueHelper(S state, Property<T> property, Object value) -
beginCapturingDrops
private static void beginCapturingDrops()InitializescapturedDrops, starting the drop capture process.Must only be called on the server thread.
-
stopCapturingDrops
Ends the drop capture process by settingcapturedDropsto null and returning the old list.Must only be called on the server thread.
-
builtInRegistryHolder
Deprecated. -
tryDropExperience
protected void tryDropExperience(ServerLevel level, BlockPos pos, ItemStack tool, IntProvider xpRange)
-
IBlockStateExtension.getBounceRestitution(Level, BlockPos, Entity)