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, DirtPathBlock, 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, PipeBlock, PointedDripstoneBlock, PowderSnowBlock, PoweredBlock, PumpkinBlock, RedstoneLampBlock, RedStoneOreBlock, RedStoneWireBlock, RespawnAnchorBlock, RootedDirtBlock, RotatedPillarBlock, ScaffoldingBlock, SlabBlock, SnifferEggBlock, SnowLayerBlock, SnowyBlock, SoulSandBlock, 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 @Nullable Itemprivate static final org.slf4j.Loggerprivate static final ThreadLocal<it.unimi.dsi.fastutil.objects.Object2ByteLinkedOpenHashMap<Block.ShapePairKey>> private static final com.google.common.cache.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
descriptionId, drops, dynamicShape, explosionResistance, 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.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) codec()static VoxelShapecolumn(double sizeXZ, double minY, double maxY) static VoxelShapecolumn(double sizeX, double sizeZ, double minY, double maxY) private static <T extends Comparable<T>>
BlockStatecopyProperty(BlockState from, BlockState to, Property<T> property) protected voidstatic VoxelShapecube(double size) static VoxelShapecube(double sizeX, double sizeY, double sizeZ) final BlockStatevoiddestroy(LevelAccessor level, BlockPos pos, BlockState state) protected static booleandropFromBlockInteractLootTable(ServerLevel level, ResourceKey<LootTable> key, 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) 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.floatstatic 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) float@Nullable BlockStategetStateForPlacement(BlockPlaceContext context) voidhandlePrecipitation(BlockState state, Level level, BlockPos pos, Biome.Precipitation precipitation) booleanstatic booleanstatic booleanisFaceFull(VoxelShape shape, Direction direction) booleanstatic booleanisShapeFullBlock(VoxelShape shape) voidplayerDestroy(Level level, Player 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) protected voidspawnDestroyParticles(Level level, Player player, 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) voidupdateEntityMovementAfterFallOn(BlockGetter level, Entity entity) 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, propagatesSkylightDown, properties, propertiesCodec, randomTick, requiredFeatures, rotate, shouldChangedStateKeepBlockEntity, simpleCodec, 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, canConnectRedstone, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, canSustainPlant, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBedDirection, getBlockPathType, getBubbleColumnDirection, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hasDynamicLightEmission, hidesNeighborFace, ignitedByLava, isBed, isBurning, isConduitFrame, isEmpty, isFertile, isFireSource, isFlammable, isLadder, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPlayer, onDestroyedByPushReaction, onNeighborChange, onTreeGrow, playFallSound, playStepSound, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, shouldHideAdjacentFluidFace, supportsExternalFaceHiding
-
Field Details
-
CODEC
-
LOGGER
private static final org.slf4j.Logger LOGGER -
builtInRegistryHolder
-
BLOCK_STATE_REGISTRY
-
SHAPE_FULL_BLOCK_CACHE
private static final com.google.common.cache.LoadingCache<VoxelShape, Boolean> 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
-
codec
- Specified by:
codecin classBlockBehaviour
-
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
protected static boolean dropFromBlockInteractLootTable(ServerLevel level, ResourceKey<LootTable> key, 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(Level level, Player 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
-
updateEntityMovementAfterFallOn
-
getFriction
public float getFriction() -
getSpeedFactor
public float getSpeedFactor() -
getJumpFactor
public float getJumpFactor() -
spawnDestroyParticles
-
playerWillDestroy
-
handlePrecipitation
public void handlePrecipitation(BlockState state, Level level, BlockPos pos, Biome.Precipitation precipitation) -
dropFromExplosion
Deprecated. -
createBlockStateDefinition
-
getStateDefinition
-
registerDefaultState
-
defaultBlockState
-
withPropertiesOf
-
copyProperty
private static <T extends Comparable<T>> BlockState copyProperty(BlockState from, BlockState to, Property<T> property) -
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)
-