Class PistonExtensionBlock

All Implemented Interfaces:
BlockEntityProvider, ItemConvertible, ToggleableFeature

public class PistonExtensionBlock extends BlockWithEntity
Mappings:
Namespace Name
named net/minecraft/block/PistonExtensionBlock
intermediary net/minecraft/class_2667
official dxi
  • Field Details

    • CODEC

      public static final com.mojang.serialization.MapCodec<PistonExtensionBlock> CODEC
      Mappings:
      Namespace Name Mixin selector
      named CODEC Lnet/minecraft/block/PistonExtensionBlock;CODEC:Lcom/mojang/serialization/MapCodec;
      intermediary field_46529 Lnet/minecraft/class_2667;field_46529:Lcom/mojang/serialization/MapCodec;
      official a Ldxi;a:Lcom/mojang/serialization/MapCodec;
    • FACING

      public static final EnumProperty<Direction> FACING
      Mappings:
      Namespace Name Mixin selector
      named FACING Lnet/minecraft/block/PistonExtensionBlock;FACING:Lnet/minecraft/state/property/EnumProperty;
      intermediary field_12196 Lnet/minecraft/class_2667;field_12196:Lnet/minecraft/class_2754;
      official b Ldxi;b:Ldyo;
    • TYPE

      public static final EnumProperty<PistonType> TYPE
      Mappings:
      Namespace Name Mixin selector
      named TYPE Lnet/minecraft/block/PistonExtensionBlock;TYPE:Lnet/minecraft/state/property/EnumProperty;
      intermediary field_12197 Lnet/minecraft/class_2667;field_12197:Lnet/minecraft/class_2754;
      official c Ldxi;c:Ldyo;
  • Constructor Details

    • PistonExtensionBlock

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

    • getCodec

      public com.mojang.serialization.MapCodec<PistonExtensionBlock> getCodec()
      Specified by:
      getCodec in class BlockWithEntity
      Mappings:
      Namespace Name Mixin selector
      named getCodec Lnet/minecraft/block/AbstractBlock;getCodec()Lcom/mojang/serialization/MapCodec;
      intermediary method_53969 Lnet/minecraft/class_4970;method_53969()Lcom/mojang/serialization/MapCodec;
      official a Ldxp;a()Lcom/mojang/serialization/MapCodec;
    • createBlockEntity

      @Nullable public @Nullable BlockEntity createBlockEntity(BlockPos pos, BlockState state)
      Returns a new block entity instance.

      For example:

      
       @Override
       public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
         return new MyBlockEntity(pos, state);
       }
       
      Returns:
      a new block entity instance
      Implementation Note:
      While this is marked as nullable, in practice this should never return null. PistonExtensionBlock is the only block in vanilla that returns null inside the implementation.
      Mappings:
      Namespace Name Mixin selector
      named createBlockEntity Lnet/minecraft/block/BlockEntityProvider;createBlockEntity(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)Lnet/minecraft/block/entity/BlockEntity;
      intermediary method_10123 Lnet/minecraft/class_2343;method_10123(Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)Lnet/minecraft/class_2586;
      official a Ldmx;a(Lji;Ldxq;)Ldus;
    • createBlockEntityPiston

      public static BlockEntity createBlockEntityPiston(BlockPos pos, BlockState state, BlockState pushedBlock, Direction facing, boolean extending, boolean source)
      Mappings:
      Namespace Name Mixin selector
      named createBlockEntityPiston Lnet/minecraft/block/PistonExtensionBlock;createBlockEntityPiston(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/Direction;ZZ)Lnet/minecraft/block/entity/BlockEntity;
      intermediary method_11489 Lnet/minecraft/class_2667;method_11489(Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_2350;ZZ)Lnet/minecraft/class_2586;
      official a Ldxi;a(Lji;Ldxq;Ldxq;Ljn;ZZ)Ldus;
    • getTicker

      @Nullable public <T extends BlockEntity> @Nullable BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type)
      Returns the "ticker" for the block's block entity, or null if the block entity does not need to be ticked.

      Ticker is a functional interface called every tick to tick the block entity on both the client and the server.

      Tickers should validate that the passed type is the one this block expects, and return null if it isn't. This is to prevent crashes in rare cases where a mismatch occurs between the position's block and block entity. BlockWithEntity.validateTicker(net.minecraft.block.entity.BlockEntityType<A>, net.minecraft.block.entity.BlockEntityType<E>, net.minecraft.block.entity.BlockEntityTicker<? super E>) can be used to implement the check.

      Example:

      
       public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type) {
         if (type != YourMod.MY_BLOCK_ENTITY_TYPE) return null;
         // This should be a static method usable as a BlockEntityTicker.
         return YourBlockEntity::tick;
       }
       
      Returns:
      the "ticker" for the block's block entity, or null if the block entity does not need to be ticked
      Mappings:
      Namespace Name Mixin selector
      named getTicker Lnet/minecraft/block/BlockEntityProvider;getTicker(Lnet/minecraft/world/World;Lnet/minecraft/block/BlockState;Lnet/minecraft/block/entity/BlockEntityType;)Lnet/minecraft/block/entity/BlockEntityTicker;
      intermediary method_31645 Lnet/minecraft/class_2343;method_31645(Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2591;)Lnet/minecraft/class_5558;
      official a Ldmx;a(Ldgz;Ldxq;Lduu;)Ldut;
    • 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,

      invalid reference
      AbstractBlock#onStateReplaced
      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.

      Overrides:
      onBroken in class Block
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named onBroken Lnet/minecraft/block/Block;onBroken(Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V
      intermediary method_9585 Lnet/minecraft/class_2248;method_9585(Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
      official a Ldke;a(Ldha;Lji;Ldxq;)V
    • onUse

      protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit)
      Overrides:
      onUse in class AbstractBlock
      Mappings:
      Namespace Name Mixin selector
      named onUse Lnet/minecraft/block/AbstractBlock;onUse(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/hit/BlockHitResult;)Lnet/minecraft/util/ActionResult;
      intermediary method_55766 Lnet/minecraft/class_4970;method_55766(Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1657;Lnet/minecraft/class_3965;)Lnet/minecraft/class_1269;
      official a Ldxp;a(Ldxq;Ldgz;Lji;Lcpr;Lfbt;)Lbsy;
    • getDroppedStacks

      protected List<ItemStack> getDroppedStacks(BlockState state, LootWorldContext.Builder builder)
      Returns the block's dropped item stacks.

      The default implementation uses loot tables. Blocks with custom drops should not hardcode the drops; instead, make a new loot table. If the loot table needs an additional context, override this method and modify builder before calling super.getDroppedStacks. An example of this is ShulkerBoxBlock. Note that to prevent item duplication, when appending item stacks to the builder, ItemStack.split(int) should be called.

      This method should not be used for dropping inventory contents (

      invalid reference
      #onStateReplaced
      should be used instead) or to drop experience orbs (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).
      Overrides:
      getDroppedStacks in class AbstractBlock
      Returns:
      the block's dropped item stacks
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named getDroppedStacks Lnet/minecraft/block/AbstractBlock;getDroppedStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/loot/context/LootWorldContext$Builder;)Ljava/util/List;
      intermediary method_9560 Lnet/minecraft/class_4970;method_9560(Lnet/minecraft/class_2680;Lnet/minecraft/class_8567$class_8568;)Ljava/util/List;
      official a Ldxp;a(Ldxq;Lewr$a;)Ljava/util/List;
    • getOutlineShape

      protected VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context)
      Overrides:
      getOutlineShape in class AbstractBlock
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named getOutlineShape Lnet/minecraft/block/AbstractBlock;getOutlineShape(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/ShapeContext;)Lnet/minecraft/util/shape/VoxelShape;
      intermediary method_9530 Lnet/minecraft/class_4970;method_9530(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_3726;)Lnet/minecraft/class_265;
      official a Ldxp;a(Ldxq;Ldgf;Lji;Lfcc;)Lfcr;
    • getCollisionShape

      protected VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context)
      Overrides:
      getCollisionShape in class AbstractBlock
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named getCollisionShape Lnet/minecraft/block/AbstractBlock;getCollisionShape(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/ShapeContext;)Lnet/minecraft/util/shape/VoxelShape;
      intermediary method_9549 Lnet/minecraft/class_4970;method_9549(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_3726;)Lnet/minecraft/class_265;
      official b Ldxp;b(Ldxq;Ldgf;Lji;Lfcc;)Lfcr;
    • getPistonBlockEntity

      @Nullable private @Nullable PistonBlockEntity getPistonBlockEntity(BlockView world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      named getPistonBlockEntity Lnet/minecraft/block/PistonExtensionBlock;getPistonBlockEntity(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/entity/PistonBlockEntity;
      intermediary method_11488 Lnet/minecraft/class_2667;method_11488(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2669;
      official a Ldxi;a(Ldgf;Lji;)Ldxm;
    • getRenderType

      protected BlockRenderType getRenderType(BlockState state)
      Returns the block's render type (invisible, animated, model).
      Overrides:
      getRenderType in class AbstractBlock
      Returns:
      the block's render type (invisible, animated, model)
      See Also:
      API Note:
      BlockWithEntity overrides this to return BlockRenderType.INVISIBLE; therefore, custom blocks extending that class must override it again to render the block.
      Mappings:
      Namespace Name Mixin selector
      named getRenderType Lnet/minecraft/block/AbstractBlock;getRenderType(Lnet/minecraft/block/BlockState;)Lnet/minecraft/block/BlockRenderType;
      intermediary method_9604 Lnet/minecraft/class_4970;method_9604(Lnet/minecraft/class_2680;)Lnet/minecraft/class_2464;
      official a_ Ldxp;a_(Ldxq;)Ldqp;
    • getPickStack

      protected ItemStack getPickStack(WorldView world, BlockPos pos, BlockState state, boolean includeData)
      Overrides:
      getPickStack in class AbstractBlock
      Mappings:
      Namespace Name Mixin selector
      named getPickStack Lnet/minecraft/block/AbstractBlock;getPickStack(Lnet/minecraft/world/WorldView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Z)Lnet/minecraft/item/ItemStack;
      intermediary method_9574 Lnet/minecraft/class_4970;method_9574(Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Z)Lnet/minecraft/class_1799;
      official a Ldxp;a(Ldhc;Lji;Ldxq;Z)Lcxh;
    • rotate

      protected BlockState rotate(BlockState state, BlockRotation rotation)
      Returns state rotated by rotation.

      By default, this returns the provided block state.

      Overrides:
      rotate in class AbstractBlock
      Returns:
      state rotated by rotation
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named rotate Lnet/minecraft/block/AbstractBlock;rotate(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/BlockRotation;)Lnet/minecraft/block/BlockState;
      intermediary method_9598 Lnet/minecraft/class_4970;method_9598(Lnet/minecraft/class_2680;Lnet/minecraft/class_2470;)Lnet/minecraft/class_2680;
      official a Ldxp;a(Ldxq;Ldqw;)Ldxq;
    • mirror

      protected BlockState mirror(BlockState state, BlockMirror mirror)
      Returns state mirrored by mirror.

      By default, this returns the provided block state.

      Overrides:
      mirror in class AbstractBlock
      Returns:
      state mirrored by mirror
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named mirror Lnet/minecraft/block/AbstractBlock;mirror(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/BlockMirror;)Lnet/minecraft/block/BlockState;
      intermediary method_9569 Lnet/minecraft/class_4970;method_9569(Lnet/minecraft/class_2680;Lnet/minecraft/class_2415;)Lnet/minecraft/class_2680;
      official a Ldxp;a(Ldxq;Ldpf;)Ldxq;
    • 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.
      Overrides:
      appendProperties in class Block
      Mappings:
      Namespace Name Mixin selector
      named appendProperties Lnet/minecraft/block/Block;appendProperties(Lnet/minecraft/state/StateManager$Builder;)V
      intermediary method_9515 Lnet/minecraft/class_2248;method_9515(Lnet/minecraft/class_2689$class_2690;)V
      official a Ldke;a(Ldxr$a;)V
    • canPathfindThrough

      protected boolean canPathfindThrough(BlockState state, NavigationType type)
      Returns if an entity using navigation type type can navigate through this block.
      Overrides:
      canPathfindThrough in class AbstractBlock
      Returns:
      if an entity using navigation type type can navigate through this block
      See Also:
      API Note:
      Subclasses may override this to prevent or restrict pathfinding through the block. For example, DoorBlock restricts it to open doors only.
      Mappings:
      Namespace Name Mixin selector
      named canPathfindThrough Lnet/minecraft/block/AbstractBlock;canPathfindThrough(Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/ai/pathing/NavigationType;)Z
      intermediary method_9516 Lnet/minecraft/class_4970;method_9516(Lnet/minecraft/class_2680;Lnet/minecraft/class_10;)Z
      official a Ldxp;a(Ldxq;Leul;)Z