CLASS net/minecraft/class_2248 net/minecraft/block/Block COMMENT A block is a voxel in a {@linkplain World world}. {@link AbstractBlock}, COMMENT this class, and its subclasses define all logic for those voxels. COMMENT See the documentation on {@link AbstractBlock} for instructions on overriding COMMENT methods. COMMENT COMMENT

There is exactly one instance for every type of block. Every stone COMMENT block for example in a world shares the same block instance. Each block COMMENT instance is registered under {@link net.minecraft.registry.Registries#BLOCK}. COMMENT See {@link Blocks} for examples of block instances. COMMENT COMMENT

An item corresponding to a block is not automatically created. You COMMENT may create your own {@link net.minecraft.item.BlockItem} and register it COMMENT under {@link net.minecraft.registry.Registries#ITEM}. COMMENT COMMENT

The translation key for the block name is determined by {@link COMMENT #getTranslationKey}. COMMENT COMMENT

In the world, the actual voxels are not stored as blocks, but as COMMENT {@linkplain BlockState block states}. The possible states of the block COMMENT are defined by {@link #appendProperties}. COMMENT COMMENT @see AbstractBlock COMMENT @see BlockState FIELD field_10638 LOGGER Lorg/slf4j/Logger; FIELD field_10642 translationKey Ljava/lang/String; FIELD field_10646 defaultState Lnet/minecraft/class_2680; FIELD field_10647 stateManager Lnet/minecraft/class_2689; FIELD field_10649 FACE_CULL_MAP Ljava/lang/ThreadLocal; FIELD field_10651 STATE_IDS Lnet/minecraft/class_2361; FIELD field_17562 cachedItem Lnet/minecraft/class_1792; FIELD field_19312 FULL_CUBE_SHAPE_CACHE Lcom/google/common/cache/LoadingCache; FIELD field_31022 NOTIFY_ALL_AND_REDRAW I COMMENT Notifies neighbors and listeners, and forces a redraw on clients. Same as {@code NOTIFY_ALL | REDRAW_ON_MAIN_THREAD} FIELD field_31027 NOTIFY_NEIGHBORS I COMMENT Sends a neighbor update event to surrounding blocks. FIELD field_31028 NOTIFY_LISTENERS I COMMENT Notifies listeners and clients who need to react when the block changes. FIELD field_31029 NO_REDRAW I COMMENT Used in conjunction with {@link #NOTIFY_LISTENERS} to suppress the render pass on clients. FIELD field_31030 REDRAW_ON_MAIN_THREAD I COMMENT Forces a synchronous redraw on clients. FIELD field_31031 FORCE_STATE I COMMENT Bypass virtual block state changes and forces the passed state to be stored as-is. FIELD field_31032 SKIP_DROPS I COMMENT Prevents the previous block (container) from dropping items when destroyed. FIELD field_31033 MOVED I COMMENT Signals that the current block is being moved to a different location, usually because of a piston. FIELD field_31036 NOTIFY_ALL I COMMENT The default setBlockState behavior. Same as {@code NOTIFY_NEIGHBORS | NOTIFY_LISTENERS}. FIELD field_36404 registryEntry Lnet/minecraft/class_6880$class_6883; FIELD field_46280 CODEC Lcom/mojang/serialization/MapCodec; METHOD method_16361 hasTopRim (Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z ARG 0 world ARG 1 pos METHOD method_20044 sideCoversSmallSquare (Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Z ARG 0 world ARG 1 pos ARG 2 side METHOD method_23349 getVelocityMultiplier ()F METHOD method_23350 getJumpVelocityMultiplier ()F METHOD method_30094 replace (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;I)V COMMENT Replaces the {@code state} with the {@code newState} at the {@code pos}. COMMENT COMMENT

If the two state objects are identical, this method does nothing. COMMENT COMMENT

If the new state {@linkplain BlockState#isAir() is air}, COMMENT breaks the block at the position instead. ARG 0 state COMMENT the existing block state ARG 1 newState COMMENT the new block state ARG 2 world COMMENT the world ARG 3 pos COMMENT the position of the replaced block state ARG 4 flags COMMENT the bitwise flags for {@link net.minecraft.world.ModifiableWorld#setBlockState(BlockPos, BlockState, int, int)} METHOD method_33614 spawnBreakParticles (Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V ARG 1 world ARG 2 player ARG 3 pos ARG 4 state METHOD method_33615 getShapesForStates (Ljava/util/function/Function;)Lcom/google/common/collect/ImmutableMap; ARG 1 stateToShape METHOD method_34724 copyProperty (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_2769;)Lnet/minecraft/class_2680; ARG 0 source ARG 1 target ARG 2 property METHOD method_34725 getStateWithProperties (Lnet/minecraft/class_2680;)Lnet/minecraft/class_2680; COMMENT Gets a block state with all properties that both this block and the source block state have. ARG 1 state METHOD method_36992 dropStack (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;Lnet/minecraft/class_1799;)V ARG 0 world ARG 1 pos ARG 2 direction ARG 3 stack METHOD method_36993 dropStack (Lnet/minecraft/class_1937;Ljava/util/function/Supplier;Lnet/minecraft/class_1799;)V ARG 0 world ARG 1 itemEntitySupplier ARG 2 stack METHOD method_40142 getRegistryEntry ()Lnet/minecraft/class_6880$class_6883; METHOD method_41420 dropExperienceWhenMined (Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;Lnet/minecraft/class_6017;)V COMMENT Drops experience orbs. This should be called inside {@link AbstractBlock#onStacksDropped} COMMENT after {@code dropExperience} check. This does not drop experience orbs if {@code tool} COMMENT is enchanted with silk touch or if {@link net.minecraft.world.GameRules#DO_TILE_DROPS doTileDrops} COMMENT is turned off. COMMENT COMMENT @see AbstractBlock#onStacksDropped COMMENT @see #dropExperience ARG 1 world ARG 2 pos ARG 3 tool COMMENT the tool used to break the block, or {@link ItemStack#EMPTY} for explosions ARG 4 experience METHOD method_9496 randomDisplayTick (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_5819;)V COMMENT Called randomly on the client. Blocks may override this to spawn particles. COMMENT Unlike {@link AbstractBlock#randomTick} this is not affected by a game rule. ARG 1 state ARG 2 world ARG 3 pos ARG 4 random METHOD method_9497 dropStacks (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)V ARG 0 state ARG 1 world ARG 2 pos METHOD method_9499 getSlipperiness ()F METHOD method_9501 isFaceFullSquare (Lnet/minecraft/class_265;Lnet/minecraft/class_2350;)Z ARG 0 shape ARG 1 side METHOD method_9502 onEntityLand (Lnet/minecraft/class_1922;Lnet/minecraft/class_1297;)V COMMENT Called after the entity lands on the block. COMMENT COMMENT

Default implementation resets the entity's vertical velocity. Blocks that cause COMMENT entities to jump (such as {@link SlimeBlock}) should override this. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. ARG 1 world ARG 2 entity METHOD method_9503 getBlockFromItem (Lnet/minecraft/class_1792;)Lnet/minecraft/class_2248; ARG 0 item METHOD method_9504 precipitationTick (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1959$class_1963;)V COMMENT Called randomly server-side on blocks with unobstructed sky access when it is COMMENT raining or snowing. Like random ticks, only blocks within 128-block cylinder COMMENT (i.e. ignoring Y coordinates) around players receive precipitation ticks. However, COMMENT precipitation ticks are unaffected by the {@link COMMENT net.minecraft.world.GameRules#RANDOM_TICK_SPEED randomTickSpeed} game rule, and {@link COMMENT AbstractBlock.Settings#ticksRandomly} block setting is not required. COMMENT COMMENT

{@link LeveledCauldronBlock} uses this to fill the cauldron. ARG 1 state ARG 2 world ARG 3 pos ARG 4 precipitation COMMENT the precipitation (snow or rain), including snow COMMENT observable on high altitude METHOD method_9507 getRawIdFromState (Lnet/minecraft/class_2680;)I ARG 0 state METHOD method_9510 postProcessState (Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2680; ARG 0 state ARG 1 world ARG 2 pos METHOD method_9511 dropStacks (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2586;Lnet/minecraft/class_1297;Lnet/minecraft/class_1799;)V ARG 0 state ARG 1 world ARG 2 pos ARG 3 blockEntity ARG 4 entity ARG 5 tool METHOD method_9515 appendProperties (Lnet/minecraft/class_2689$class_2690;)V COMMENT Appends block state properties to this block. To use this, override and call {@link COMMENT StateManager.Builder#add} inside the method. See {@link COMMENT net.minecraft.state.property.Properties} for the list of pre-defined properties. ARG 1 builder METHOD method_9518 getName ()Lnet/minecraft/class_5250; METHOD method_9520 getBlastResistance ()F METHOD method_9531 getStateFromRawId (I)Lnet/minecraft/class_2680; ARG 0 stateId METHOD method_9533 shouldDropItemsOnExplosion (Lnet/minecraft/class_1927;)Z COMMENT {@return whether an explosion can drop the block as an item} COMMENT COMMENT

This should be overridden if an explosion affects the block in other ways, COMMENT like {@link TntBlock} that triggers the chain reaction. This should not consider COMMENT the randomness, since it is defined in the loot table. COMMENT COMMENT @see net.minecraft.loot.condition.SurvivesExplosionLootCondition ARG 1 explosion METHOD method_9538 canMobSpawnInside (Lnet/minecraft/class_2680;)Z ARG 1 state METHOD method_9539 getTranslationKey ()Ljava/lang/String; COMMENT {@return the translation key for the name of this block} COMMENT COMMENT

By default, it returns {@code block.namespace.path} where {@code COMMENT namespace} and {@code path} are of the identifier used for registering COMMENT this block, but {@code /} in {@code path} is replaced with {@code .}. COMMENT If the block is not registered, it returns {@code block.unregistered_sadface}. METHOD method_9541 createCuboidShape (DDDDDD)Lnet/minecraft/class_265; ARG 0 minX ARG 2 minY ARG 4 minZ ARG 6 maxX ARG 8 maxY ARG 10 maxZ METHOD method_9542 hasRandomTicks (Lnet/minecraft/class_2680;)Z ARG 1 state METHOD method_9543 hasDynamicBounds ()Z METHOD method_9544 (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;)V ARG 2 stack METHOD method_9554 onLandedUpon (Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_1297;F)V COMMENT Called when the entity lands on the block. COMMENT COMMENT

Default implementation deals fall damage to the entity. Blocks that increase or COMMENT reduce fall damage (like {@link HayBlock}) should override this. {@link FarmlandBlock} COMMENT overrides this method to convert the block to dirt. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. ARG 1 world ARG 2 state ARG 3 pos ARG 4 entity ARG 5 fallDistance METHOD method_9556 afterBreak (Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_2586;Lnet/minecraft/class_1799;)V COMMENT Called server-side when the block is broken by the player using correct tool. COMMENT This is called after {@link #onBroken} but has the tool requirement. COMMENT By default, this increments {@link net.minecraft.stat.Stats#MINED}, adds exhaustion COMMENT to the player, and drops the block's item stacks. COMMENT COMMENT

Subclasses should override this if breaking the block causes another block to COMMENT be placed (like {@link IceBlock}) or if the block can break multiple times COMMENT (like {@link TurtleEggBlock}). {@link BeehiveBlock} uses this to anger the bees if COMMENT the hive is mined without silk touch. COMMENT COMMENT @see #onBreak COMMENT @see #onBroken COMMENT @see AbstractBlock#onStacksDropped COMMENT @see AbstractBlock#onStateReplaced ARG 1 world ARG 2 player ARG 3 pos ARG 4 state ARG 5 blockEntity ARG 6 tool METHOD method_9562 getDroppedStacks (Lnet/minecraft/class_2680;Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;Lnet/minecraft/class_2586;)Ljava/util/List; ARG 0 state ARG 1 world ARG 2 pos ARG 3 blockEntity METHOD method_9564 getDefaultState ()Lnet/minecraft/class_2680; METHOD method_9567 onPlaced (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;)V COMMENT Called when the player placed the block. COMMENT COMMENT

Tall or wide blocks (such as doors or beds) should override this to place COMMENT the other half of the block. Blocks with block entities can use this to copy the COMMENT data from the item stack, such as the custom name. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. COMMENT COMMENT @see AbstractBlock#onBlockAdded ARG 1 world ARG 2 pos ARG 3 state ARG 4 placer ARG 5 itemStack METHOD method_9568 appendTooltip (Lnet/minecraft/class_1799;Lnet/minecraft/class_1922;Ljava/util/List;Lnet/minecraft/class_1836;)V COMMENT Appends tooltips to a stack of this block's corresponding {@linkplain COMMENT net.minecraft.item.BlockItem block item}. Used by shulker boxes. COMMENT COMMENT @see Item#appendTooltip ARG 1 stack ARG 2 world ARG 3 tooltip ARG 4 options METHOD method_9573 getSoundGroup (Lnet/minecraft/class_2680;)Lnet/minecraft/class_2498; ARG 1 state METHOD method_9574 getPickStack (Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)Lnet/minecraft/class_1799; COMMENT {@return the new item stack when using pick block functionality} COMMENT COMMENT

Pick block is available via middle-clicking by default. Blocks without the COMMENT corresponding {@link net.minecraft.item.BlockItem}, such as crops, should COMMENT override this method to return the correct item stack. ARG 1 world ARG 2 pos ARG 3 state METHOD method_9576 onBreak (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1657;)Lnet/minecraft/class_2680; COMMENT Called when a player breaks a block before the block is removed from the world. COMMENT Explosions do not trigger this. COMMENT COMMENT

Default implementation spawns block breaking particles, angers piglins, and COMMENT emits game events. Tall or wide blocks such as doors or beds should override this COMMENT to break the other part (along with {@link AbstractBlock#getStateForNeighborUpdate}.) COMMENT COMMENT

In most cases, {@link AbstractBlock#onStateReplaced} or {@link COMMENT AbstractBlock#onStacksDropped} should be used instead. Note that they are called COMMENT when blocks are broken by explosions as well as players breaking them. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. COMMENT COMMENT @see AbstractBlock#onStateReplaced COMMENT @see AbstractBlock#onStacksDropped COMMENT @see #onBroken ARG 1 world ARG 2 pos ARG 3 state ARG 4 player METHOD method_9577 dropStack (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;)V ARG 0 world ARG 1 pos ARG 2 stack METHOD method_9579 isTransparent (Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z ARG 1 state ARG 2 world ARG 3 pos METHOD method_9581 cannotConnect (Lnet/minecraft/class_2680;)Z ARG 0 state METHOD method_9582 pushEntitiesUpBeforeBlockChange (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2680; COMMENT Pushes entities standing on a block up before changing the block to taller ones. COMMENT Without calling this, entities can fall through the block. This only needs to be called COMMENT if the original block's height is smaller than 1 block. COMMENT COMMENT @return the passed new block state ARG 0 from ARG 1 to ARG 2 world ARG 3 pos METHOD method_9583 dropExperience (Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;I)V COMMENT Drops experience orbs. This should be called inside {@link AbstractBlock#onStacksDropped} COMMENT after {@code dropExperience} check. This does not drop experience orbs if {@link COMMENT net.minecraft.world.GameRules#DO_TILE_DROPS doTileDrops} is turned off. For blocks that do COMMENT not drop experience when mined with Silk Touch, consider calling {@link COMMENT #dropExperienceWhenMined} instead. COMMENT COMMENT @see AbstractBlock#onStacksDropped COMMENT @see #dropExperienceWhenMined ARG 1 world ARG 2 pos ARG 3 size METHOD method_9585 onBroken (Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V COMMENT Called after a player breaks a block and the block is removed from the world. COMMENT Explosions do not trigger this. COMMENT COMMENT

In most cases, {@link AbstractBlock#onStateReplaced} or {@link COMMENT AbstractBlock#onStacksDropped} should be used instead. Note that they are called COMMENT when blocks are broken by explosions as well as players breaking them. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. COMMENT COMMENT @see AbstractBlock#onStateReplaced COMMENT @see AbstractBlock#onStacksDropped COMMENT @see #onBreak ARG 1 world ARG 2 pos ARG 3 state METHOD method_9586 onDestroyedByExplosion (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1927;)V COMMENT Called when this block is destroyed by an explosion. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. ARG 1 world ARG 2 pos ARG 3 explosion METHOD method_9587 (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;)V ARG 2 stack METHOD method_9590 setDefaultState (Lnet/minecraft/class_2680;)V COMMENT Sets the default state of the block. This should be called inside COMMENT the block's constructor to override the default state chosen by the COMMENT state manager. ARG 1 state METHOD method_9591 onSteppedOn (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1297;)V COMMENT Called when an entity steps on this block. COMMENT COMMENT

This method is called on both the logical client and logical server, so take caution COMMENT when overriding this method. The logical side can be checked using {@link COMMENT World#isClient}. ARG 1 world ARG 2 pos ARG 3 state ARG 4 entity METHOD method_9595 getStateManager ()Lnet/minecraft/class_2689; METHOD method_9596 (Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;)V ARG 2 stack METHOD method_9605 getPlacementState (Lnet/minecraft/class_1750;)Lnet/minecraft/class_2680; ARG 1 ctx METHOD method_9607 shouldDrawSide (Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;Lnet/minecraft/class_2338;)Z ARG 0 state ARG 1 world ARG 2 pos ARG 3 side ARG 4 otherPos METHOD method_9609 getDroppedStacks (Lnet/minecraft/class_2680;Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;Lnet/minecraft/class_2586;Lnet/minecraft/class_1297;Lnet/minecraft/class_1799;)Ljava/util/List; ARG 0 state ARG 1 world ARG 2 pos ARG 3 blockEntity ARG 4 entity ARG 5 stack METHOD method_9610 dropStacks (Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2586;)V ARG 0 state ARG 1 world ARG 2 pos ARG 3 blockEntity METHOD method_9611 replace (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;II)V COMMENT Replaces the {@code state} with the {@code newState} at the {@code pos}. COMMENT COMMENT

If the two state objects are identical, this method does nothing. COMMENT COMMENT

If the new state {@linkplain BlockState#isAir() is air}, COMMENT breaks the block at the position instead. ARG 0 state COMMENT the existing block state ARG 1 newState COMMENT the new block state ARG 2 world COMMENT the world ARG 3 pos COMMENT the position of the replaced block state ARG 4 flags COMMENT the bitwise flags for {@link net.minecraft.world.ModifiableWorld#setBlockState(BlockPos, BlockState, int, int)} ARG 5 maxUpdateDepth COMMENT the limit for the cascading block updates METHOD method_9614 isShapeFullCube (Lnet/minecraft/class_265;)Z ARG 0 shape CLASS 1 METHOD load (Ljava/lang/Object;)Ljava/lang/Object; ARG 1 shape CLASS 2 METHOD rehash (I)V ARG 1 newN CLASS class_2249 NeighborGroup FIELD field_10652 self Lnet/minecraft/class_2680; FIELD field_10653 facing Lnet/minecraft/class_2350; FIELD field_10654 other Lnet/minecraft/class_2680; METHOD (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_2350;)V ARG 1 self ARG 2 other ARG 3 facing METHOD equals (Ljava/lang/Object;)Z ARG 1 o