Class CropBlock

All Implemented Interfaces:
Fertilizable, ItemConvertible, ToggleableFeature
Direct Known Subclasses:
BeetrootsBlock, CarrotsBlock, PotatoesBlock

public class CropBlock extends PlantBlock implements Fertilizable
Mappings:
Namespace Name
official coh
intermediary net/minecraft/class_2302
named net/minecraft/block/CropBlock
  • Field Details

    • MAX_AGE

      public static final int MAX_AGE
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official c Lcoh;c:I
      intermediary field_31079 Lnet/minecraft/class_2302;field_31079:I
      named MAX_AGE Lnet/minecraft/block/CropBlock;MAX_AGE:I
    • AGE

      public static final IntProperty AGE
      Mappings:
      Namespace Name Mixin selector
      official d Lcoh;d:Lczt;
      intermediary field_10835 Lnet/minecraft/class_2302;field_10835:Lnet/minecraft/class_2758;
      named AGE Lnet/minecraft/block/CropBlock;AGE:Lnet/minecraft/state/property/IntProperty;
    • AGE_TO_SHAPE

      private static final VoxelShape[] AGE_TO_SHAPE
      Mappings:
      Namespace Name Mixin selector
      official a Lcoh;a:[Leax;
      intermediary field_10836 Lnet/minecraft/class_2302;field_10836:[Lnet/minecraft/class_265;
      named AGE_TO_SHAPE Lnet/minecraft/block/CropBlock;AGE_TO_SHAPE:[Lnet/minecraft/util/shape/VoxelShape;
  • Constructor Details

    • CropBlock

      protected CropBlock(AbstractBlock.Settings settings)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcys;<init>(Lcys$c;)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

    • getOutlineShape

      public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context)
      Overrides:
      getOutlineShape in class AbstractBlock
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lcjc;Lgp;Leaj;)Leax;
      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;
      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;
    • canPlantOnTop

      protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos)
      Overrides:
      canPlantOnTop in class PlantBlock
      Mappings:
      Namespace Name Mixin selector
      official d Lcna;d(Lcyt;Lcjc;Lgp;)Z
      intermediary method_9695 Lnet/minecraft/class_2261;method_9695(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z
      named canPlantOnTop Lnet/minecraft/block/PlantBlock;canPlantOnTop(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Z
    • getAgeProperty

      public IntProperty getAgeProperty()
      Mappings:
      Namespace Name Mixin selector
      official b Lcoh;b()Lczt;
      intermediary method_9824 Lnet/minecraft/class_2302;method_9824()Lnet/minecraft/class_2758;
      named getAgeProperty Lnet/minecraft/block/CropBlock;getAgeProperty()Lnet/minecraft/state/property/IntProperty;
    • getMaxAge

      public int getMaxAge()
      Mappings:
      Namespace Name Mixin selector
      official c Lcoh;c()I
      intermediary method_9827 Lnet/minecraft/class_2302;method_9827()I
      named getMaxAge Lnet/minecraft/block/CropBlock;getMaxAge()I
    • getAge

      protected int getAge(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official g Lcoh;g(Lcyt;)I
      intermediary method_9829 Lnet/minecraft/class_2302;method_9829(Lnet/minecraft/class_2680;)I
      named getAge Lnet/minecraft/block/CropBlock;getAge(Lnet/minecraft/block/BlockState;)I
    • withAge

      public BlockState withAge(int age)
      Mappings:
      Namespace Name Mixin selector
      official b Lcoh;b(I)Lcyt;
      intermediary method_9828 Lnet/minecraft/class_2302;method_9828(I)Lnet/minecraft/class_2680;
      named withAge Lnet/minecraft/block/CropBlock;withAge(I)Lnet/minecraft/block/BlockState;
    • isMature

      public boolean isMature(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official h Lcoh;h(Lcyt;)Z
      intermediary method_9825 Lnet/minecraft/class_2302;method_9825(Lnet/minecraft/class_2680;)Z
      named isMature Lnet/minecraft/block/CropBlock;isMature(Lnet/minecraft/block/BlockState;)Z
    • hasRandomTicks

      public boolean hasRandomTicks(BlockState state)
      Overrides:
      hasRandomTicks in class Block
      Mappings:
      Namespace Name Mixin selector
      official e_ Lcmt;e_(Lcyt;)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
    • randomTick

      public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random)
      Called server-side when a block gets ticked randomly. This can be overridden to implement various logics, most commonly plant growth. Default implementation calls AbstractBlock.scheduledTick(net.minecraft.block.BlockState, net.minecraft.server.world.ServerWorld, net.minecraft.util.math.BlockPos, net.minecraft.util.math.random.Random). To control the rate of the action, use random.

      Random tick speed is controlled by the game rule randomTickSpeed and can be disabled. Only blocks within 128-block cylinder (i.e. ignoring Y coordinates) around players receive random ticks.

      Blocks overriding this must use AbstractBlock.Settings.ticksRandomly() block settings.

      Here are some examples:

      Overrides:
      randomTick in class AbstractBlock
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcys;b(Lcyt;Lahm;Lgp;Laoh;)V
      intermediary method_9514 Lnet/minecraft/class_4970;method_9514(Lnet/minecraft/class_2680;Lnet/minecraft/class_3218;Lnet/minecraft/class_2338;Lnet/minecraft/class_5819;)V
      named randomTick Lnet/minecraft/block/AbstractBlock;randomTick(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/random/Random;)V
    • applyGrowth

      public void applyGrowth(World world, BlockPos pos, BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official a Lcoh;a(Lcjw;Lgp;Lcyt;)V
      intermediary method_9826 Lnet/minecraft/class_2302;method_9826(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
      named applyGrowth Lnet/minecraft/block/CropBlock;applyGrowth(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V
    • getGrowthAmount

      protected int getGrowthAmount(World world)
      Mappings:
      Namespace Name Mixin selector
      official a Lcoh;a(Lcjw;)I
      intermediary method_9831 Lnet/minecraft/class_2302;method_9831(Lnet/minecraft/class_1937;)I
      named getGrowthAmount Lnet/minecraft/block/CropBlock;getGrowthAmount(Lnet/minecraft/world/World;)I
    • getAvailableMoisture

      protected static float getAvailableMoisture(Block block, BlockView world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official a Lcoh;a(Lcmt;Lcjc;Lgp;)F
      intermediary method_9830 Lnet/minecraft/class_2302;method_9830(Lnet/minecraft/class_2248;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)F
      named getAvailableMoisture Lnet/minecraft/block/CropBlock;getAvailableMoisture(Lnet/minecraft/block/Block;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)F
    • canPlaceAt

      public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos)
      Returns whether the block can be placed at pos.

      Blocks with supporting block requirements should override this method. Note that this should also be checked manually during 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 order to break the block that lost its supporting block.

      This is only checked during the use of block items or by endermen, falling blocks, etc that can place blocks. This does not affect block state changes performed through World.setBlockState(BlockPos, BlockState) call.

      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:
      canPlaceAt in class PlantBlock
      Returns:
      whether the block can be placed at pos
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lcjz;Lgp;)Z
      intermediary method_9558 Lnet/minecraft/class_4970;method_9558(Lnet/minecraft/class_2680;Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;)Z
      named canPlaceAt Lnet/minecraft/block/AbstractBlock;canPlaceAt(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldView;Lnet/minecraft/util/math/BlockPos;)Z
    • onEntityCollision

      public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity)
      Called when the entity's collision box intersects the block. Therefore, this method is not called for blocks with a collision; use Block.onSteppedOn(net.minecraft.world.World, net.minecraft.util.math.BlockPos, net.minecraft.block.BlockState, net.minecraft.entity.Entity) for those blocks.

      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.

      Here are some examples:

      Overrides:
      onEntityCollision in class AbstractBlock
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lcjw;Lgp;Lbdr;)V
      intermediary method_9548 Lnet/minecraft/class_4970;method_9548(Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1297;)V
      named onEntityCollision Lnet/minecraft/block/AbstractBlock;onEntityCollision(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/Entity;)V
    • getSeedsItem

      protected ItemConvertible getSeedsItem()
      Mappings:
      Namespace Name Mixin selector
      official d Lcoh;d()Lcjv;
      intermediary method_9832 Lnet/minecraft/class_2302;method_9832()Lnet/minecraft/class_1935;
      named getSeedsItem Lnet/minecraft/block/CropBlock;getSeedsItem()Lnet/minecraft/item/ItemConvertible;
    • 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.

      Overrides:
      getPickStack in class Block
      Returns:
      the new item stack when using pick block functionality
      Mappings:
      Namespace Name Mixin selector
      official a Lcmt;a(Lcjc;Lgp;Lcyt;)Lcdt;
      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;
    • isFertilizable

      public boolean isFertilizable(WorldView world, BlockPos pos, BlockState state, boolean isClient)
      Specified by:
      isFertilizable in interface Fertilizable
      Mappings:
      Namespace Name Mixin selector
      official a Lcmv;a(Lcjz;Lgp;Lcyt;Z)Z
      intermediary method_9651 Lnet/minecraft/class_2256;method_9651(Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Z)Z
      named isFertilizable Lnet/minecraft/block/Fertilizable;isFertilizable(Lnet/minecraft/world/WorldView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Z)Z
    • canGrow

      public boolean canGrow(World world, Random random, BlockPos pos, BlockState state)
      Specified by:
      canGrow in interface Fertilizable
      Mappings:
      Namespace Name Mixin selector
      official a Lcmv;a(Lcjw;Laoh;Lgp;Lcyt;)Z
      intermediary method_9650 Lnet/minecraft/class_2256;method_9650(Lnet/minecraft/class_1937;Lnet/minecraft/class_5819;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)Z
      named canGrow Lnet/minecraft/block/Fertilizable;canGrow(Lnet/minecraft/world/World;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)Z
    • grow

      public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state)
      Specified by:
      grow in interface Fertilizable
      Mappings:
      Namespace Name Mixin selector
      official a Lcmv;a(Lahm;Laoh;Lgp;Lcyt;)V
      intermediary method_9652 Lnet/minecraft/class_2256;method_9652(Lnet/minecraft/class_3218;Lnet/minecraft/class_5819;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
      named grow Lnet/minecraft/block/Fertilizable;grow(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V
    • 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
      official a Lcmt;a(Lcyu$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