Class Block

All Implemented Interfaces:
ItemConvertible, ToggleableFeature
Direct Known Subclasses:
AbstractCandleBlock, AbstractCauldronBlock, AbstractFireBlock, AbstractPlantPartBlock, AbstractPressurePlateBlock, AbstractRailBlock, AirBlock, AmethystBlock, BambooBlock, BambooSaplingBlock, BarrierBlock, BlockWithEntity, BubbleColumnBlock, CactusBlock, CakeBlock, CarpetBlock, CartographyTableBlock, ChorusFlowerBlock, CobwebBlock, ComposterBlock, ConnectingBlock, CoralBlockBlock, CoralParentBlock, CraftingTableBlock, CryingObsidianBlock, DirtPathBlock, DoorBlock, EndPortalFrameBlock, ExperienceDroppingBlock, FacingBlock, FallingBlock, FarmlandBlock, FlowerPotBlock, FluidBlock, FrogspawnBlock, GourdBlock, HangingRootsBlock, HorizontalConnectingBlock, HorizontalFacingBlock, InfestedBlock, JigsawBlock, LadderBlock, LanternBlock, LeavesBlock, LightBlock, MagmaBlock, MangroveRootsBlock, MossBlock, MudBlock, MultifaceGrowthBlock, MushroomBlock, NetherPortalBlock, NetherrackBlock, NoteBlock, NyliumBlock, OxidizableBlock, PillarBlock, PlantBlock, PointedDripstoneBlock, PowderSnowBlock, RedstoneBlock, RedstoneLampBlock, RedstoneOreBlock, RedstoneWireBlock, RespawnAnchorBlock, RootedDirtBlock, ScaffoldingBlock, SlabBlock, SnowBlock, SnowyBlock, SoulSandBlock, SpongeBlock, SporeBlossomBlock, StairsBlock, StonecutterBlock, StructureVoidBlock, SugarCaneBlock, TargetBlock, TntBlock, TorchBlock, TransparentBlock, TripwireBlock, TripwireHookBlock, TurtleEggBlock, VineBlock, WallBlock, WetSpongeBlock

public class Block extends AbstractBlock implements ItemConvertible
A block is a voxel in a world. AbstractBlock, this class, and its subclasses define all logic for those voxels. See the documentation on AbstractBlock for instructions on overriding methods.

There is exactly one instance for every type of block. Every stone block for example in a world shares the same block instance. Each block instance is registered under Registries.BLOCK. See Blocks for examples of block instances.

An item corresponding to a block is not automatically created. You may create your own BlockItem and register it under Registries.ITEM.

The translation key for the block name is determined by getTranslationKey().

In the world, the actual voxels are not stored as blocks, but as block states. The possible states of the block are defined by appendProperties(net.minecraft.state.StateManager.Builder<net.minecraft.block.Block, net.minecraft.block.BlockState>).

See Also:
Mappings:
Namespace Name
official cpi
intermediary net/minecraft/class_2248
named net/minecraft/block/Block
  • Field Details

    • LOGGER

      private static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a:Lorg/slf4j/Logger;
      intermediary field_10638 Lnet/minecraft/class_2248;field_10638:Lorg/slf4j/Logger;
      named LOGGER Lnet/minecraft/block/Block;LOGGER:Lorg/slf4j/Logger;
    • STATE_IDS

      public static final IdList<BlockState> STATE_IDS
      Mappings:
      Namespace Name Mixin selector
      official o Lcpi;o:Lhj;
      intermediary field_10651 Lnet/minecraft/class_2248;field_10651:Lnet/minecraft/class_2361;
      named STATE_IDS Lnet/minecraft/block/Block;STATE_IDS:Lnet/minecraft/util/collection/IdList;
    • FULL_CUBE_SHAPE_CACHE

      private static final LoadingCache<VoxelShape,Boolean> FULL_CUBE_SHAPE_CACHE
      Mappings:
      Namespace Name Mixin selector
      official c Lcpi;c:Lcom/google/common/cache/LoadingCache;
      intermediary field_19312 Lnet/minecraft/class_2248;field_19312:Lcom/google/common/cache/LoadingCache;
      named FULL_CUBE_SHAPE_CACHE Lnet/minecraft/block/Block;FULL_CUBE_SHAPE_CACHE:Lcom/google/common/cache/LoadingCache;
    • NOTIFY_NEIGHBORS

      public static final int NOTIFY_NEIGHBORS
      Sends a neighbor update event to surrounding blocks.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official p Lcpi;p:I
      intermediary field_31027 Lnet/minecraft/class_2248;field_31027:I
      named NOTIFY_NEIGHBORS Lnet/minecraft/block/Block;NOTIFY_NEIGHBORS:I
    • NOTIFY_LISTENERS

      public static final int NOTIFY_LISTENERS
      Notifies listeners and clients who need to react when the block changes.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official q Lcpi;q:I
      intermediary field_31028 Lnet/minecraft/class_2248;field_31028:I
      named NOTIFY_LISTENERS Lnet/minecraft/block/Block;NOTIFY_LISTENERS:I
    • NO_REDRAW

      public static final int NO_REDRAW
      Used in conjunction with NOTIFY_LISTENERS to suppress the render pass on clients.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official r Lcpi;r:I
      intermediary field_31029 Lnet/minecraft/class_2248;field_31029:I
      named NO_REDRAW Lnet/minecraft/block/Block;NO_REDRAW:I
    • REDRAW_ON_MAIN_THREAD

      public static final int REDRAW_ON_MAIN_THREAD
      Forces a synchronous redraw on clients.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official s Lcpi;s:I
      intermediary field_31030 Lnet/minecraft/class_2248;field_31030:I
      named REDRAW_ON_MAIN_THREAD Lnet/minecraft/block/Block;REDRAW_ON_MAIN_THREAD:I
    • FORCE_STATE

      public static final int FORCE_STATE
      Bypass virtual block state changes and forces the passed state to be stored as-is.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official t Lcpi;t:I
      intermediary field_31031 Lnet/minecraft/class_2248;field_31031:I
      named FORCE_STATE Lnet/minecraft/block/Block;FORCE_STATE:I
    • SKIP_DROPS

      public static final int SKIP_DROPS
      Prevents the previous block (container) from dropping items when destroyed.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official u Lcpi;u:I
      intermediary field_31032 Lnet/minecraft/class_2248;field_31032:I
      named SKIP_DROPS Lnet/minecraft/block/Block;SKIP_DROPS:I
    • MOVED

      public static final int MOVED
      Signals that the current block is being moved to a different location, usually because of a piston.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official v Lcpi;v:I
      intermediary field_31033 Lnet/minecraft/class_2248;field_31033:I
      named MOVED Lnet/minecraft/block/Block;MOVED:I
    • SKIP_LIGHTING_UPDATES

      public static final int SKIP_LIGHTING_UPDATES
      Signals that lighting updates should be skipped.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official w Lcpi;w:I
      intermediary field_31034 Lnet/minecraft/class_2248;field_31034:I
      named SKIP_LIGHTING_UPDATES Lnet/minecraft/block/Block;SKIP_LIGHTING_UPDATES:I
    • field_31035

      public static final int field_31035
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official x Lcpi;x:I
      intermediary field_31035 Lnet/minecraft/class_2248;field_31035:I
      named field_31035 Lnet/minecraft/block/Block;field_31035:I
    • NOTIFY_ALL

      public static final int NOTIFY_ALL
      The default setBlockState behavior. Same as NOTIFY_NEIGHBORS | NOTIFY_LISTENERS.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official y Lcpi;y:I
      intermediary field_31036 Lnet/minecraft/class_2248;field_31036:I
      named NOTIFY_ALL Lnet/minecraft/block/Block;NOTIFY_ALL:I
    • field_31022

      public static final int field_31022
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official z Lcpi;z:I
      intermediary field_31022 Lnet/minecraft/class_2248;field_31022:I
      named field_31022 Lnet/minecraft/block/Block;field_31022:I
    • field_31023

      public static final float field_31023
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official A Lcpi;A:F
      intermediary field_31023 Lnet/minecraft/class_2248;field_31023:F
      named field_31023 Lnet/minecraft/block/Block;field_31023:F
    • field_31024

      public static final float field_31024
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official B Lcpi;B:F
      intermediary field_31024 Lnet/minecraft/class_2248;field_31024:F
      named field_31024 Lnet/minecraft/block/Block;field_31024:F
    • field_31025

      public static final int field_31025
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official C Lcpi;C:I
      intermediary field_31025 Lnet/minecraft/class_2248;field_31025:I
      named field_31025 Lnet/minecraft/block/Block;field_31025:I
    • field_31026

      private static final int field_31026
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official g Lcpi;g:I
      intermediary field_31026 Lnet/minecraft/class_2248;field_31026:I
      named field_31026 Lnet/minecraft/block/Block;field_31026:I
    • FACE_CULL_MAP

      private static final ThreadLocal<Object2ByteLinkedOpenHashMap<Block.NeighborGroup>> FACE_CULL_MAP
      Mappings:
      Namespace Name Mixin selector
      official h Lcpi;h:Ljava/lang/ThreadLocal;
      intermediary field_10649 Lnet/minecraft/class_2248;field_10649:Ljava/lang/ThreadLocal;
      named FACE_CULL_MAP Lnet/minecraft/block/Block;FACE_CULL_MAP:Ljava/lang/ThreadLocal;
    • registryEntry

      private final RegistryEntry.Reference<Block> registryEntry
      Mappings:
      Namespace Name Mixin selector
      official b Lcpi;b:Lhd$c;
      intermediary field_36404 Lnet/minecraft/class_2248;field_36404:Lnet/minecraft/class_6880$class_6883;
      named registryEntry Lnet/minecraft/block/Block;registryEntry:Lnet/minecraft/registry/entry/RegistryEntry$Reference;
    • stateManager

      protected final StateManager<Block,BlockState> stateManager
      Mappings:
      Namespace Name Mixin selector
      official D Lcpi;D:Ldbr;
      intermediary field_10647 Lnet/minecraft/class_2248;field_10647:Lnet/minecraft/class_2689;
      named stateManager Lnet/minecraft/block/Block;stateManager:Lnet/minecraft/state/StateManager;
    • defaultState

      private BlockState defaultState
      Mappings:
      Namespace Name Mixin selector
      official d Lcpi;d:Ldbq;
      intermediary field_10646 Lnet/minecraft/class_2248;field_10646:Lnet/minecraft/class_2680;
      named defaultState Lnet/minecraft/block/Block;defaultState:Lnet/minecraft/block/BlockState;
    • translationKey

      @Nullable private @Nullable String translationKey
      Mappings:
      Namespace Name Mixin selector
      official e Lcpi;e:Ljava/lang/String;
      intermediary field_10642 Lnet/minecraft/class_2248;field_10642:Ljava/lang/String;
      named translationKey Lnet/minecraft/block/Block;translationKey:Ljava/lang/String;
    • cachedItem

      @Nullable private @Nullable Item cachedItem
      Mappings:
      Namespace Name Mixin selector
      official f Lcpi;f:Lcfq;
      intermediary field_17562 Lnet/minecraft/class_2248;field_17562:Lnet/minecraft/class_1792;
      named cachedItem Lnet/minecraft/block/Block;cachedItem:Lnet/minecraft/item/Item;
  • Constructor Details

    • Block

      public Block(AbstractBlock.Settings settings)
      Mappings:
      Namespace Name Mixin selector
      official <init> Ldbp;<init>(Ldbp$d;)V
      intermediary <init> Lnet/minecraft/class_4970;<init>(Lnet/minecraft/class_4970$class_2251;)V
      named <init> Lnet/minecraft/block/AbstractBlock;<init>(Lnet/minecraft/block/AbstractBlock$Settings;)V
  • Method Details

    • getRawIdFromState

      public static int getRawIdFromState(@Nullable @Nullable BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official i Lcpi;i(Ldbq;)I
      intermediary method_9507 Lnet/minecraft/class_2248;method_9507(Lnet/minecraft/class_2680;)I
      named getRawIdFromState Lnet/minecraft/block/Block;getRawIdFromState(Lnet/minecraft/block/BlockState;)I
    • getStateFromRawId

      public static BlockState getStateFromRawId(int stateId)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(I)Ldbq;
      intermediary method_9531 Lnet/minecraft/class_2248;method_9531(I)Lnet/minecraft/class_2680;
      named getStateFromRawId Lnet/minecraft/block/Block;getStateFromRawId(I)Lnet/minecraft/block/BlockState;
    • getBlockFromItem

      public static Block getBlockFromItem(@Nullable @Nullable Item item)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcfq;)Lcpi;
      intermediary method_9503 Lnet/minecraft/class_2248;method_9503(Lnet/minecraft/class_1792;)Lnet/minecraft/class_2248;
      named getBlockFromItem Lnet/minecraft/block/Block;getBlockFromItem(Lnet/minecraft/item/Item;)Lnet/minecraft/block/Block;
    • pushEntitiesUpBeforeBlockChange

      public static BlockState pushEntitiesUpBeforeBlockChange(BlockState from, BlockState to, WorldAccess world, BlockPos pos)
      Pushes entities standing on a block up before changing the block to taller ones. Without calling this, entities can fall through the block. This only needs to be called if the original block's height is smaller than 1 block.
      Returns:
      the passed new block state
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Ldbq;Lcmj;Lgt;)Ldbq;
      intermediary method_9582 Lnet/minecraft/class_2248;method_9582(Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2680;
      named pushEntitiesUpBeforeBlockChange Lnet/minecraft/block/Block;pushEntitiesUpBeforeBlockChange(Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;
    • createCuboidShape

      public static VoxelShape createCuboidShape(double minX, double minY, double minZ, double maxX, double maxY, double maxZ)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(DDDDDD)Ledx;
      intermediary method_9541 Lnet/minecraft/class_2248;method_9541(DDDDDD)Lnet/minecraft/class_265;
      named createCuboidShape Lnet/minecraft/block/Block;createCuboidShape(DDDDDD)Lnet/minecraft/util/shape/VoxelShape;
    • postProcessState

      public static BlockState postProcessState(BlockState state, WorldAccess world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official b Lcpi;b(Ldbq;Lcmj;Lgt;)Ldbq;
      intermediary method_9510 Lnet/minecraft/class_2248;method_9510(Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2680;
      named postProcessState Lnet/minecraft/block/Block;postProcessState(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;
    • replace

      public static void replace(BlockState state, BlockState newState, WorldAccess world, BlockPos pos, int flags)
      Replaces the state with the newState at the pos.

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

      If the new state is air, breaks the block at the position instead.

      Parameters:
      state - the existing block state
      newState - the new block state
      world - the world
      pos - the position of the replaced block state
      flags - the bitwise flags for ModifiableWorld.setBlockState(BlockPos, BlockState, int, int)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Ldbq;Lcmj;Lgt;I)V
      intermediary method_30094 Lnet/minecraft/class_2248;method_30094(Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;I)V
      named replace Lnet/minecraft/block/Block;replace(Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;I)V
    • replace

      public static void replace(BlockState state, BlockState newState, WorldAccess world, BlockPos pos, int flags, int maxUpdateDepth)
      Replaces the state with the newState at the pos.

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

      If the new state is air, breaks the block at the position instead.

      Parameters:
      state - the existing block state
      newState - the new block state
      world - the world
      pos - the position of the replaced block state
      flags - the bitwise flags for ModifiableWorld.setBlockState(BlockPos, BlockState, int, int)
      maxUpdateDepth - the limit for the cascading block updates
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Ldbq;Lcmj;Lgt;II)V
      intermediary method_9611 Lnet/minecraft/class_2248;method_9611(Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;II)V
      named replace Lnet/minecraft/block/Block;replace(Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;II)V
    • cannotConnect

      public static boolean cannotConnect(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official j Lcpi;j(Ldbq;)Z
      intermediary method_9581 Lnet/minecraft/class_2248;method_9581(Lnet/minecraft/class_2680;)Z
      named cannotConnect Lnet/minecraft/block/Block;cannotConnect(Lnet/minecraft/block/BlockState;)Z
    • hasRandomTicks

      public boolean hasRandomTicks(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official e_ Lcpi;e_(Ldbq;)Z
      intermediary method_9542 Lnet/minecraft/class_2248;method_9542(Lnet/minecraft/class_2680;)Z
      named hasRandomTicks Lnet/minecraft/block/Block;hasRandomTicks(Lnet/minecraft/block/BlockState;)Z
    • shouldDrawSide

      public static boolean shouldDrawSide(BlockState state, BlockView world, BlockPos pos, Direction side, BlockPos otherPos)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Lclo;Lgt;Lgz;Lgt;)Z
      intermediary method_9607 Lnet/minecraft/class_2248;method_9607(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;Lnet/minecraft/class_2338;)Z
      named shouldDrawSide Lnet/minecraft/block/Block;shouldDrawSide(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/util/math/BlockPos;)Z
    • hasTopRim

      public static boolean hasTopRim(BlockView world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official c Lcpi;c(Lclo;Lgt;)Z
      intermediary method_16361 Lnet/minecraft/class_2248;method_16361(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z
      named hasTopRim Lnet/minecraft/block/Block;hasTopRim(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Z
    • sideCoversSmallSquare

      public static boolean sideCoversSmallSquare(WorldView world, BlockPos pos, Direction side)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcml;Lgt;Lgz;)Z
      intermediary method_20044 Lnet/minecraft/class_2248;method_20044(Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Z
      named sideCoversSmallSquare Lnet/minecraft/block/Block;sideCoversSmallSquare(Lnet/minecraft/world/WorldView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;)Z
    • isFaceFullSquare

      public static boolean isFaceFullSquare(VoxelShape shape, Direction side)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ledx;Lgz;)Z
      intermediary method_9501 Lnet/minecraft/class_2248;method_9501(Lnet/minecraft/class_265;Lnet/minecraft/class_2350;)Z
      named isFaceFullSquare Lnet/minecraft/block/Block;isFaceFullSquare(Lnet/minecraft/util/shape/VoxelShape;Lnet/minecraft/util/math/Direction;)Z
    • isShapeFullCube

      public static boolean isShapeFullCube(VoxelShape shape)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ledx;)Z
      intermediary method_9614 Lnet/minecraft/class_2248;method_9614(Lnet/minecraft/class_265;)Z
      named isShapeFullCube Lnet/minecraft/block/Block;isShapeFullCube(Lnet/minecraft/util/shape/VoxelShape;)Z
    • isTransparent

      public boolean isTransparent(BlockState state, BlockView world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official c Lcpi;c(Ldbq;Lclo;Lgt;)Z
      intermediary method_9579 Lnet/minecraft/class_2248;method_9579(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z
      named isTransparent Lnet/minecraft/block/Block;isTransparent(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Z
    • randomDisplayTick

      public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random)
      Called randomly on the client. Blocks may override this to spawn particles. Unlike AbstractBlock.randomTick(net.minecraft.block.BlockState, net.minecraft.server.world.ServerWorld, net.minecraft.util.math.BlockPos, net.minecraft.util.math.random.Random) this is not affected by a game rule.
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Lcmi;Lgt;Lapo;)V
      intermediary method_9496 Lnet/minecraft/class_2248;method_9496(Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_5819;)V
      named randomDisplayTick Lnet/minecraft/block/Block;randomDisplayTick(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/random/Random;)V
    • onBroken

      public void onBroken(WorldAccess world, BlockPos pos, BlockState state)
      Called after a player breaks a block and the block is removed from the world. Explosions do not trigger this.

      In most cases, AbstractBlock.onStateReplaced(net.minecraft.block.BlockState, net.minecraft.world.World, net.minecraft.util.math.BlockPos, net.minecraft.block.BlockState, boolean) or AbstractBlock.onStacksDropped(net.minecraft.block.BlockState, net.minecraft.server.world.ServerWorld, net.minecraft.util.math.BlockPos, net.minecraft.item.ItemStack, boolean) should be used instead. Note that they are called when blocks are broken by explosions as well as players breaking them.

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmj;Lgt;Ldbq;)V
      intermediary method_9585 Lnet/minecraft/class_2248;method_9585(Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
      named onBroken Lnet/minecraft/block/Block;onBroken(Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V
    • getDroppedStacks

      public static List<ItemStack> getDroppedStacks(BlockState state, ServerWorld world, BlockPos pos, @Nullable @Nullable BlockEntity blockEntity)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Laip;Lgt;Lcze;)Ljava/util/List;
      intermediary method_9562 Lnet/minecraft/class_2248;method_9562(Lnet/minecraft/class_2680;Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;Lnet/minecraft/class_2586;)Ljava/util/List;
      named getDroppedStacks Lnet/minecraft/block/Block;getDroppedStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;)Ljava/util/List;
    • getDroppedStacks

      public static List<ItemStack> getDroppedStacks(BlockState state, ServerWorld world, BlockPos pos, @Nullable @Nullable BlockEntity blockEntity, @Nullable @Nullable Entity entity, ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Laip;Lgt;Lcze;Lbfh;Lcfv;)Ljava/util/List;
      intermediary method_9609 Lnet/minecraft/class_2248;method_9609(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;
      named getDroppedStacks Lnet/minecraft/block/Block;getDroppedStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)Ljava/util/List;
    • dropStacks

      public static void dropStacks(BlockState state, LootContext.Builder lootContext)
      Mappings:
      Namespace Name Mixin selector
      official b Lcpi;b(Ldbq;Ldyr$a;)V
      intermediary method_35258 Lnet/minecraft/class_2248;method_35258(Lnet/minecraft/class_2680;Lnet/minecraft/class_47$class_48;)V
      named dropStacks Lnet/minecraft/block/Block;dropStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/loot/context/LootContext$Builder;)V
    • dropStacks

      public static void dropStacks(BlockState state, World world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official c Lcpi;c(Ldbq;Lcmi;Lgt;)V
      intermediary method_9497 Lnet/minecraft/class_2248;method_9497(Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)V
      named dropStacks Lnet/minecraft/block/Block;dropStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)V
    • dropStacks

      public static void dropStacks(BlockState state, WorldAccess world, BlockPos pos, @Nullable @Nullable BlockEntity blockEntity)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Lcmj;Lgt;Lcze;)V
      intermediary method_9610 Lnet/minecraft/class_2248;method_9610(Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2586;)V
      named dropStacks Lnet/minecraft/block/Block;dropStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;)V
    • dropStacks

      public static void dropStacks(BlockState state, World world, BlockPos pos, @Nullable @Nullable BlockEntity blockEntity, Entity entity, ItemStack tool)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Lcmi;Lgt;Lcze;Lbfh;Lcfv;)V
      intermediary method_9511 Lnet/minecraft/class_2248;method_9511(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
      named dropStacks Lnet/minecraft/block/Block;dropStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)V
    • dropStack

      public static void dropStack(World world, BlockPos pos, ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lgt;Lcfv;)V
      intermediary method_9577 Lnet/minecraft/class_2248;method_9577(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;)V
      named dropStack Lnet/minecraft/block/Block;dropStack(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;)V
    • dropStack

      public static void dropStack(World world, BlockPos pos, Direction direction, ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lgt;Lgz;Lcfv;)V
      intermediary method_36992 Lnet/minecraft/class_2248;method_36992(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;Lnet/minecraft/class_1799;)V
      named dropStack Lnet/minecraft/block/Block;dropStack(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/item/ItemStack;)V
    • dropStack

      private static void dropStack(World world, Supplier<ItemEntity> itemEntitySupplier, ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Ljava/util/function/Supplier;Lcfv;)V
      intermediary method_36993 Lnet/minecraft/class_2248;method_36993(Lnet/minecraft/class_1937;Ljava/util/function/Supplier;Lnet/minecraft/class_1799;)V
      named dropStack Lnet/minecraft/block/Block;dropStack(Lnet/minecraft/world/World;Ljava/util/function/Supplier;Lnet/minecraft/item/ItemStack;)V
    • dropExperience

      protected void dropExperience(ServerWorld world, BlockPos pos, int size)
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Laip;Lgt;I)V
      intermediary method_9583 Lnet/minecraft/class_2248;method_9583(Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;I)V
      named dropExperience Lnet/minecraft/block/Block;dropExperience(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;I)V
    • getBlastResistance

      public float getBlastResistance()
      Mappings:
      Namespace Name Mixin selector
      official e Lcpi;e()F
      intermediary method_9520 Lnet/minecraft/class_2248;method_9520()F
      named getBlastResistance Lnet/minecraft/block/Block;getBlastResistance()F
    • onDestroyedByExplosion

      public void onDestroyedByExplosion(World world, BlockPos pos, Explosion explosion)
      Called when this block is destroyed by an explosion.

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lgt;Lcma;)V
      intermediary method_9586 Lnet/minecraft/class_2248;method_9586(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1927;)V
      named onDestroyedByExplosion Lnet/minecraft/block/Block;onDestroyedByExplosion(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/explosion/Explosion;)V
    • onSteppedOn

      public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity)
      Called when an entity steps on this block.

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lgt;Ldbq;Lbfh;)V
      intermediary method_9591 Lnet/minecraft/class_2248;method_9591(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1297;)V
      named onSteppedOn Lnet/minecraft/block/Block;onSteppedOn(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/Entity;)V
    • getPlacementState

      @Nullable public @Nullable BlockState getPlacementState(ItemPlacementContext ctx)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcic;)Ldbq;
      intermediary method_9605 Lnet/minecraft/class_2248;method_9605(Lnet/minecraft/class_1750;)Lnet/minecraft/class_2680;
      named getPlacementState Lnet/minecraft/block/Block;getPlacementState(Lnet/minecraft/item/ItemPlacementContext;)Lnet/minecraft/block/BlockState;
    • afterBreak

      public void afterBreak(World world, PlayerEntity player, BlockPos pos, BlockState state, @Nullable @Nullable BlockEntity blockEntity, ItemStack tool)
      Called server-side when the block is broken by the player using correct tool. This is called after onBroken(net.minecraft.world.WorldAccess, net.minecraft.util.math.BlockPos, net.minecraft.block.BlockState) but has the tool requirement. By default, this increments Stats.MINED, adds exhaustion to the player, and drops the block's item stacks.

      Subclasses should override this if breaking the block causes another block to be placed (like IceBlock) or if the block can break multiple times (like TurtleEggBlock). BeehiveBlock uses this to anger the bees if the hive is mined without silk touch.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lbym;Lgt;Ldbq;Lcze;Lcfv;)V
      intermediary method_9556 Lnet/minecraft/class_2248;method_9556(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
      named afterBreak Lnet/minecraft/block/Block;afterBreak(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/item/ItemStack;)V
    • onPlaced

      public void onPlaced(World world, BlockPos pos, BlockState state, @Nullable @Nullable LivingEntity placer, ItemStack itemStack)
      Called when the player placed the block.

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

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lgt;Ldbq;Lbfx;Lcfv;)V
      intermediary method_9567 Lnet/minecraft/class_2248;method_9567(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;)V
      named onPlaced Lnet/minecraft/block/Block;onPlaced(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;)V
    • canMobSpawnInside

      public boolean canMobSpawnInside()
      Mappings:
      Namespace Name Mixin selector
      official ao_ Lcpi;ao_()Z
      intermediary method_9538 Lnet/minecraft/class_2248;method_9538()Z
      named canMobSpawnInside Lnet/minecraft/block/Block;canMobSpawnInside()Z
    • getName

      public MutableText getName()
      Mappings:
      Namespace Name Mixin selector
      official f Lcpi;f()Ltw;
      intermediary method_9518 Lnet/minecraft/class_2248;method_9518()Lnet/minecraft/class_5250;
      named getName Lnet/minecraft/block/Block;getName()Lnet/minecraft/text/MutableText;
    • getTranslationKey

      public String getTranslationKey()
      Returns the translation key for the name of this block.

      By default, it returns block.namespace.path where namespace and path are of the identifier used for registering this block, but / in path is replaced with .. If the block is not registered, it returns block.unregistered_sadface.

      Returns:
      the translation key for the name of this block
      Mappings:
      Namespace Name Mixin selector
      official h Lcpi;h()Ljava/lang/String;
      intermediary method_9539 Lnet/minecraft/class_2248;method_9539()Ljava/lang/String;
      named getTranslationKey Lnet/minecraft/block/Block;getTranslationKey()Ljava/lang/String;
    • onLandedUpon

      public void onLandedUpon(World world, BlockState state, BlockPos pos, Entity entity, float fallDistance)
      Called when the entity lands on the block.

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

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Ldbq;Lgt;Lbfh;F)V
      intermediary method_9554 Lnet/minecraft/class_2248;method_9554(Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_1297;F)V
      named onLandedUpon Lnet/minecraft/block/Block;onLandedUpon(Lnet/minecraft/world/World;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/Entity;F)V
    • onEntityLand

      public void onEntityLand(BlockView world, Entity entity)
      Called after the entity lands on the block.

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

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lclo;Lbfh;)V
      intermediary method_9502 Lnet/minecraft/class_2248;method_9502(Lnet/minecraft/class_1922;Lnet/minecraft/class_1297;)V
      named onEntityLand Lnet/minecraft/block/Block;onEntityLand(Lnet/minecraft/world/BlockView;Lnet/minecraft/entity/Entity;)V
    • getPickStack

      public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state)
      Returns the new item stack when using pick block functionality.

      Pick block is available via middle-clicking by default. Blocks without the corresponding BlockItem, such as crops, should override this method to return the correct item stack.

      Returns:
      the new item stack when using pick block functionality
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lclo;Lgt;Ldbq;)Lcfv;
      intermediary method_9574 Lnet/minecraft/class_2248;method_9574(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)Lnet/minecraft/class_1799;
      named getPickStack Lnet/minecraft/block/Block;getPickStack(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)Lnet/minecraft/item/ItemStack;
    • getSlipperiness

      public float getSlipperiness()
      Mappings:
      Namespace Name Mixin selector
      official i Lcpi;i()F
      intermediary method_9499 Lnet/minecraft/class_2248;method_9499()F
      named getSlipperiness Lnet/minecraft/block/Block;getSlipperiness()F
    • getVelocityMultiplier

      public float getVelocityMultiplier()
      Mappings:
      Namespace Name Mixin selector
      official j Lcpi;j()F
      intermediary method_23349 Lnet/minecraft/class_2248;method_23349()F
      named getVelocityMultiplier Lnet/minecraft/block/Block;getVelocityMultiplier()F
    • getJumpVelocityMultiplier

      public float getJumpVelocityMultiplier()
      Mappings:
      Namespace Name Mixin selector
      official l Lcpi;l()F
      intermediary method_23350 Lnet/minecraft/class_2248;method_23350()F
      named getJumpVelocityMultiplier Lnet/minecraft/block/Block;getJumpVelocityMultiplier()F
    • spawnBreakParticles

      protected void spawnBreakParticles(World world, PlayerEntity player, BlockPos pos, BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lbym;Lgt;Ldbq;)V
      intermediary method_33614 Lnet/minecraft/class_2248;method_33614(Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
      named spawnBreakParticles Lnet/minecraft/block/Block;spawnBreakParticles(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V
    • onBreak

      public void onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player)
      Called when a player breaks a block before the block is removed from the world. Explosions do not trigger this.

      Default implementation spawns block breaking particles, angers piglins, and emits game events. Tall or wide blocks such as doors or beds should override this to break the other part (along with AbstractBlock.getStateForNeighborUpdate(net.minecraft.block.BlockState, net.minecraft.util.math.Direction, net.minecraft.block.BlockState, net.minecraft.world.WorldAccess, net.minecraft.util.math.BlockPos, net.minecraft.util.math.BlockPos).)

      In most cases, AbstractBlock.onStateReplaced(net.minecraft.block.BlockState, net.minecraft.world.World, net.minecraft.util.math.BlockPos, net.minecraft.block.BlockState, boolean) or AbstractBlock.onStacksDropped(net.minecraft.block.BlockState, net.minecraft.server.world.ServerWorld, net.minecraft.util.math.BlockPos, net.minecraft.item.ItemStack, boolean) should be used instead. Note that they are called when blocks are broken by explosions as well as players breaking them.

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcmi;Lgt;Ldbq;Lbym;)V
      intermediary method_9576 Lnet/minecraft/class_2248;method_9576(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1657;)V
      named onBreak Lnet/minecraft/block/Block;onBreak(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)V
    • precipitationTick

      public void precipitationTick(BlockState state, World world, BlockPos pos, Biome.Precipitation precipitation)
      Called randomly server-side on blocks with unobstructed sky access when it is raining or snowing. Like random ticks, only blocks within 128-block cylinder (i.e. ignoring Y coordinates) around players receive precipitation ticks. However, precipitation ticks are unaffected by the randomTickSpeed game rule, and AbstractBlock.Settings.ticksRandomly() block setting is not required.

      LeveledCauldronBlock uses this to fill the cauldron.

      Parameters:
      precipitation - the precipitation (snow or rain), including snow observable on high altitude
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Lcmi;Lgt;Lcnf$c;)V
      intermediary method_9504 Lnet/minecraft/class_2248;method_9504(Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1959$class_1963;)V
      named precipitationTick Lnet/minecraft/block/Block;precipitationTick(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/biome/Biome$Precipitation;)V
    • shouldDropItemsOnExplosion

      public boolean shouldDropItemsOnExplosion(Explosion explosion)
      Returns whether an explosion can drop the block as an item.

      This should be overridden if an explosion affects the block in other ways, like TntBlock that triggers the chain reaction. This should not consider the randomness, since it is defined in the loot table.

      Returns:
      whether an explosion can drop the block as an item
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcma;)Z
      intermediary method_9533 Lnet/minecraft/class_2248;method_9533(Lnet/minecraft/class_1927;)Z
      named shouldDropItemsOnExplosion Lnet/minecraft/block/Block;shouldDropItemsOnExplosion(Lnet/minecraft/world/explosion/Explosion;)Z
    • appendProperties

      protected void appendProperties(StateManager.Builder<Block,BlockState> builder)
      Appends block state properties to this block. To use this, override and call StateManager.Builder.add(net.minecraft.state.property.Property<?>[]) inside the method. See Properties for the list of pre-defined properties.
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbr$a;)V
      intermediary method_9515 Lnet/minecraft/class_2248;method_9515(Lnet/minecraft/class_2689$class_2690;)V
      named appendProperties Lnet/minecraft/block/Block;appendProperties(Lnet/minecraft/state/StateManager$Builder;)V
    • getStateManager

      public StateManager<Block,BlockState> getStateManager()
      Mappings:
      Namespace Name Mixin selector
      official n Lcpi;n()Ldbr;
      intermediary method_9595 Lnet/minecraft/class_2248;method_9595()Lnet/minecraft/class_2689;
      named getStateManager Lnet/minecraft/block/Block;getStateManager()Lnet/minecraft/state/StateManager;
    • setDefaultState

      protected final void setDefaultState(BlockState state)
      Sets the default state of the block. This should be called inside the block's constructor to override the default state chosen by the state manager.
      Mappings:
      Namespace Name Mixin selector
      official k Lcpi;k(Ldbq;)V
      intermediary method_9590 Lnet/minecraft/class_2248;method_9590(Lnet/minecraft/class_2680;)V
      named setDefaultState Lnet/minecraft/block/Block;setDefaultState(Lnet/minecraft/block/BlockState;)V
    • getDefaultState

      public final BlockState getDefaultState()
      Mappings:
      Namespace Name Mixin selector
      official o Lcpi;o()Ldbq;
      intermediary method_9564 Lnet/minecraft/class_2248;method_9564()Lnet/minecraft/class_2680;
      named getDefaultState Lnet/minecraft/block/Block;getDefaultState()Lnet/minecraft/block/BlockState;
    • getStateWithProperties

      public final BlockState getStateWithProperties(BlockState state)
      Gets a block state with all properties that both this block and the source block state have.
      Mappings:
      Namespace Name Mixin selector
      official l Lcpi;l(Ldbq;)Ldbq;
      intermediary method_34725 Lnet/minecraft/class_2248;method_34725(Lnet/minecraft/class_2680;)Lnet/minecraft/class_2680;
      named getStateWithProperties Lnet/minecraft/block/Block;getStateWithProperties(Lnet/minecraft/block/BlockState;)Lnet/minecraft/block/BlockState;
    • copyProperty

      private static <T extends Comparable<T>> BlockState copyProperty(BlockState source, BlockState target, Property<T> property)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ldbq;Ldbq;Ldcu;)Ldbq;
      intermediary method_34724 Lnet/minecraft/class_2248;method_34724(Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_2769;)Lnet/minecraft/class_2680;
      named copyProperty Lnet/minecraft/block/Block;copyProperty(Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;Lnet/minecraft/state/property/Property;)Lnet/minecraft/block/BlockState;
    • getSoundGroup

      public BlockSoundGroup getSoundGroup(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official m Lcpi;m(Ldbq;)Lcwq;
      intermediary method_9573 Lnet/minecraft/class_2248;method_9573(Lnet/minecraft/class_2680;)Lnet/minecraft/class_2498;
      named getSoundGroup Lnet/minecraft/block/Block;getSoundGroup(Lnet/minecraft/block/BlockState;)Lnet/minecraft/sound/BlockSoundGroup;
    • asItem

      public Item asItem()
      Returns the block's corresponding item.

      This is not affected by loot tables. Blocks without corresponding items, such as piston head, will return Items.AIR.

      Specified by:
      asItem in interface ItemConvertible
      Specified by:
      asItem in class AbstractBlock
      Returns:
      the block's corresponding item
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official k Ldbp;k()Lcfq;
      intermediary method_8389 Lnet/minecraft/class_4970;method_8389()Lnet/minecraft/class_1792;
      named asItem Lnet/minecraft/block/AbstractBlock;asItem()Lnet/minecraft/item/Item;
    • hasDynamicBounds

      public boolean hasDynamicBounds()
      Mappings:
      Namespace Name Mixin selector
      official p Lcpi;p()Z
      intermediary method_9543 Lnet/minecraft/class_2248;method_9543()Z
      named hasDynamicBounds Lnet/minecraft/block/Block;hasDynamicBounds()Z
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • appendTooltip

      public void appendTooltip(ItemStack stack, @Nullable @Nullable BlockView world, List<Text> tooltip, TooltipContext options)
      Appends tooltips to a stack of this block's corresponding block item. Used by shulker boxes.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Lcfv;Lclo;Ljava/util/List;Lchl;)V
      intermediary method_9568 Lnet/minecraft/class_2248;method_9568(Lnet/minecraft/class_1799;Lnet/minecraft/class_1922;Ljava/util/List;Lnet/minecraft/class_1836;)V
      named appendTooltip Lnet/minecraft/block/Block;appendTooltip(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/BlockView;Ljava/util/List;Lnet/minecraft/client/item/TooltipContext;)V
    • asBlock

      protected Block asBlock()
      Returns the block as Block.

      This is used for casting purposes.

      Specified by:
      asBlock in class AbstractBlock
      Returns:
      the block as Block
      Mappings:
      Namespace Name Mixin selector
      official q Ldbp;q()Lcpi;
      intermediary method_26160 Lnet/minecraft/class_4970;method_26160()Lnet/minecraft/class_2248;
      named asBlock Lnet/minecraft/block/AbstractBlock;asBlock()Lnet/minecraft/block/Block;
    • getShapesForStates

      protected ImmutableMap<BlockState,VoxelShape> getShapesForStates(Function<BlockState,VoxelShape> stateToShape)
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Ljava/util/function/Function;)Lcom/google/common/collect/ImmutableMap;
      intermediary method_33615 Lnet/minecraft/class_2248;method_33615(Ljava/util/function/Function;)Lcom/google/common/collect/ImmutableMap;
      named getShapesForStates Lnet/minecraft/block/Block;getShapesForStates(Ljava/util/function/Function;)Lcom/google/common/collect/ImmutableMap;
    • getRegistryEntry

      @Deprecated public RegistryEntry.Reference<Block> getRegistryEntry()
      Deprecated.
      Mappings:
      Namespace Name Mixin selector
      official r Lcpi;r()Lhd$c;
      intermediary method_40142 Lnet/minecraft/class_2248;method_40142()Lnet/minecraft/class_6880$class_6883;
      named getRegistryEntry Lnet/minecraft/block/Block;getRegistryEntry()Lnet/minecraft/registry/entry/RegistryEntry$Reference;
    • dropExperienceWhenMined

      protected void dropExperienceWhenMined(ServerWorld world, BlockPos pos, ItemStack tool, IntProvider experience)
      Drops experience orbs. This should be called inside AbstractBlock.onStacksDropped(net.minecraft.block.BlockState, net.minecraft.server.world.ServerWorld, net.minecraft.util.math.BlockPos, net.minecraft.item.ItemStack, boolean) after dropExperience check. This does not drop experience orbs if tool is enchanted with silk touch or if doTileDrops is turned off.
      Parameters:
      tool - the tool used to break the block, or ItemStack.EMPTY for explosions
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcpi;a(Laip;Lgt;Lcfv;Lbdd;)V
      intermediary method_41420 Lnet/minecraft/class_2248;method_41420(Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;Lnet/minecraft/class_1799;Lnet/minecraft/class_6017;)V
      named dropExperienceWhenMined Lnet/minecraft/block/Block;dropExperienceWhenMined(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/math/intprovider/IntProvider;)V