Class VineBlock

All Implemented Interfaces:
ItemConvertible, ToggleableFeature

public class VineBlock extends Block
Mappings:
Namespace Name
official cvf
intermediary net/minecraft/class_2541
named net/minecraft/block/VineBlock
  • Field Details

    • UP

      public static final BooleanProperty UP
      Mappings:
      Namespace Name Mixin selector
      official a Lcvf;a:Lczk;
      intermediary field_11703 Lnet/minecraft/class_2541;field_11703:Lnet/minecraft/class_2746;
      named UP Lnet/minecraft/block/VineBlock;UP:Lnet/minecraft/state/property/BooleanProperty;
    • NORTH

      public static final BooleanProperty NORTH
      Mappings:
      Namespace Name Mixin selector
      official b Lcvf;b:Lczk;
      intermediary field_11706 Lnet/minecraft/class_2541;field_11706:Lnet/minecraft/class_2746;
      named NORTH Lnet/minecraft/block/VineBlock;NORTH:Lnet/minecraft/state/property/BooleanProperty;
    • EAST

      public static final BooleanProperty EAST
      Mappings:
      Namespace Name Mixin selector
      official c Lcvf;c:Lczk;
      intermediary field_11702 Lnet/minecraft/class_2541;field_11702:Lnet/minecraft/class_2746;
      named EAST Lnet/minecraft/block/VineBlock;EAST:Lnet/minecraft/state/property/BooleanProperty;
    • SOUTH

      public static final BooleanProperty SOUTH
      Mappings:
      Namespace Name Mixin selector
      official d Lcvf;d:Lczk;
      intermediary field_11699 Lnet/minecraft/class_2541;field_11699:Lnet/minecraft/class_2746;
      named SOUTH Lnet/minecraft/block/VineBlock;SOUTH:Lnet/minecraft/state/property/BooleanProperty;
    • WEST

      public static final BooleanProperty WEST
      Mappings:
      Namespace Name Mixin selector
      official e Lcvf;e:Lczk;
      intermediary field_11696 Lnet/minecraft/class_2541;field_11696:Lnet/minecraft/class_2746;
      named WEST Lnet/minecraft/block/VineBlock;WEST:Lnet/minecraft/state/property/BooleanProperty;
    • FACING_PROPERTIES

      public static final Map<Direction,BooleanProperty> FACING_PROPERTIES
      Mappings:
      Namespace Name Mixin selector
      official f Lcvf;f:Ljava/util/Map;
      intermediary field_11697 Lnet/minecraft/class_2541;field_11697:Ljava/util/Map;
      named FACING_PROPERTIES Lnet/minecraft/block/VineBlock;FACING_PROPERTIES:Ljava/util/Map;
    • field_31275

      protected static final float field_31275
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official g Lcvf;g:F
      intermediary field_31275 Lnet/minecraft/class_2541;field_31275:F
      named field_31275 Lnet/minecraft/block/VineBlock;field_31275:F
    • UP_SHAPE

      private static final VoxelShape UP_SHAPE
      Mappings:
      Namespace Name Mixin selector
      official h Lcvf;h:Leax;
      intermediary field_11698 Lnet/minecraft/class_2541;field_11698:Lnet/minecraft/class_265;
      named UP_SHAPE Lnet/minecraft/block/VineBlock;UP_SHAPE:Lnet/minecraft/util/shape/VoxelShape;
    • EAST_SHAPE

      private static final VoxelShape EAST_SHAPE
      Mappings:
      Namespace Name Mixin selector
      official i Lcvf;i:Leax;
      intermediary field_11704 Lnet/minecraft/class_2541;field_11704:Lnet/minecraft/class_265;
      named EAST_SHAPE Lnet/minecraft/block/VineBlock;EAST_SHAPE:Lnet/minecraft/util/shape/VoxelShape;
    • WEST_SHAPE

      private static final VoxelShape WEST_SHAPE
      Mappings:
      Namespace Name Mixin selector
      official j Lcvf;j:Leax;
      intermediary field_11705 Lnet/minecraft/class_2541;field_11705:Lnet/minecraft/class_265;
      named WEST_SHAPE Lnet/minecraft/block/VineBlock;WEST_SHAPE:Lnet/minecraft/util/shape/VoxelShape;
    • SOUTH_SHAPE

      private static final VoxelShape SOUTH_SHAPE
      Mappings:
      Namespace Name Mixin selector
      official k Lcvf;k:Leax;
      intermediary field_11701 Lnet/minecraft/class_2541;field_11701:Lnet/minecraft/class_265;
      named SOUTH_SHAPE Lnet/minecraft/block/VineBlock;SOUTH_SHAPE:Lnet/minecraft/util/shape/VoxelShape;
    • NORTH_SHAPE

      private static final VoxelShape NORTH_SHAPE
      Mappings:
      Namespace Name Mixin selector
      official l Lcvf;l:Leax;
      intermediary field_11700 Lnet/minecraft/class_2541;field_11700:Lnet/minecraft/class_265;
      named NORTH_SHAPE Lnet/minecraft/block/VineBlock;NORTH_SHAPE:Lnet/minecraft/util/shape/VoxelShape;
    • shapesByState

      private final Map<BlockState,VoxelShape> shapesByState
      Mappings:
      Namespace Name Mixin selector
      official m Lcvf;m:Ljava/util/Map;
      intermediary field_26659 Lnet/minecraft/class_2541;field_26659:Ljava/util/Map;
      named shapesByState Lnet/minecraft/block/VineBlock;shapesByState:Ljava/util/Map;
  • Constructor Details

    • VineBlock

      public VineBlock(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

    • getShapeForState

      private static VoxelShape getShapeForState(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official h Lcvf;h(Lcyt;)Leax;
      intermediary method_31018 Lnet/minecraft/class_2541;method_31018(Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
      named getShapeForState Lnet/minecraft/block/VineBlock;getShapeForState(Lnet/minecraft/block/BlockState;)Lnet/minecraft/util/shape/VoxelShape;
    • 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;
    • isTranslucent

      public boolean isTranslucent(BlockState state, BlockView world, BlockPos pos)
      Overrides:
      isTranslucent in class Block
      Mappings:
      Namespace Name Mixin selector
      official c Lcmt;c(Lcyt;Lcjc;Lgp;)Z
      intermediary method_9579 Lnet/minecraft/class_2248;method_9579(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z
      named isTranslucent Lnet/minecraft/block/Block;isTranslucent(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Z
    • 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 AbstractBlock
      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
    • hasAdjacentBlocks

      private boolean hasAdjacentBlocks(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official n Lcvf;n(Lcyt;)Z
      intermediary method_10823 Lnet/minecraft/class_2541;method_10823(Lnet/minecraft/class_2680;)Z
      named hasAdjacentBlocks Lnet/minecraft/block/VineBlock;hasAdjacentBlocks(Lnet/minecraft/block/BlockState;)Z
    • getAdjacentBlockCount

      private int getAdjacentBlockCount(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official o Lcvf;o(Lcyt;)I
      intermediary method_10822 Lnet/minecraft/class_2541;method_10822(Lnet/minecraft/class_2680;)I
      named getAdjacentBlockCount Lnet/minecraft/block/VineBlock;getAdjacentBlockCount(Lnet/minecraft/block/BlockState;)I
    • shouldHaveSide

      private boolean shouldHaveSide(BlockView world, BlockPos pos, Direction side)
      Mappings:
      Namespace Name Mixin selector
      official b Lcvf;b(Lcjc;Lgp;Lgv;)Z
      intermediary method_10829 Lnet/minecraft/class_2541;method_10829(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Z
      named shouldHaveSide Lnet/minecraft/block/VineBlock;shouldHaveSide(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;)Z
    • shouldConnectTo

      public static boolean shouldConnectTo(BlockView world, BlockPos pos, Direction direction)
      Mappings:
      Namespace Name Mixin selector
      official a Lcvf;a(Lcjc;Lgp;Lgv;)Z
      intermediary method_10821 Lnet/minecraft/class_2541;method_10821(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Z
      named shouldConnectTo Lnet/minecraft/block/VineBlock;shouldConnectTo(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;)Z
    • getPlacementShape

      private BlockState getPlacementShape(BlockState state, BlockView world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official i Lcvf;i(Lcyt;Lcjc;Lgp;)Lcyt;
      intermediary method_10827 Lnet/minecraft/class_2541;method_10827(Lnet/minecraft/class_2680;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2680;
      named getPlacementShape Lnet/minecraft/block/VineBlock;getPlacementShape(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;
    • getStateForNeighborUpdate

      public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos)
      Returns the state of the block after a neighboring block's state change.

      Returning Blocks.AIR breaks the block. This is useful to implement supporting block requirement for blocks (if used along with AbstractBlock.canPlaceAt(net.minecraft.block.BlockState, net.minecraft.world.WorldView, net.minecraft.util.math.BlockPos)).

      Side effects like activating a redstone component (but not scheduling a tick) should be performed in AbstractBlock.neighborUpdate(net.minecraft.block.BlockState, net.minecraft.world.World, net.minecraft.util.math.BlockPos, net.minecraft.block.Block, net.minecraft.util.math.BlockPos, boolean) instead. If the block supports waterlogging and currently has water, this method should be overridden to tick the fluid at the block's position.

      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. This is not called if Block.FORCE_STATE flag is set in the setBlockState call.

      This method can be used for multiple purposes. Here are some examples:

      • FenceBlock uses it to update the fence's connection when a horizontally neighboring block's state is changed.
      • PlantBlock uses it to break the plant if the state change causes it to lose its supporting block.
      • DoorBlock uses it to copy the state of the other half of the door.
      • SlabBlock uses it to schedule the fluid to tick if waterlogged.
      • SoulSandBlock uses it to schedule the water block above to tick so that it becomes a bubble column.
      • FallingBlock uses it to schedule the block to tick so that it can fall if needed.
      Overrides:
      getStateForNeighborUpdate in class AbstractBlock
      Parameters:
      state - the state of this block
      direction - the direction from this block to the neighbor
      neighborState - the state of the updated neighbor block
      world - the world
      pos - the position of this block
      neighborPos - the position of the neighbor block
      Returns:
      the state of the block after a neighboring block's state change
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lgv;Lcyt;Lcjx;Lgp;Lgp;)Lcyt;
      intermediary method_9559 Lnet/minecraft/class_4970;method_9559(Lnet/minecraft/class_2680;Lnet/minecraft/class_2350;Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2680;
      named getStateForNeighborUpdate Lnet/minecraft/block/AbstractBlock;getStateForNeighborUpdate(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/Direction;Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;
    • 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
    • getGrownState

      private BlockState getGrownState(BlockState above, BlockState state, Random random)
      Mappings:
      Namespace Name Mixin selector
      official a Lcvf;a(Lcyt;Lcyt;Laoh;)Lcyt;
      intermediary method_10820 Lnet/minecraft/class_2541;method_10820(Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_5819;)Lnet/minecraft/class_2680;
      named getGrownState Lnet/minecraft/block/VineBlock;getGrownState(Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/random/Random;)Lnet/minecraft/block/BlockState;
    • hasHorizontalSide

      private boolean hasHorizontalSide(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official p Lcvf;p(Lcyt;)Z
      intermediary method_10830 Lnet/minecraft/class_2541;method_10830(Lnet/minecraft/class_2680;)Z
      named hasHorizontalSide Lnet/minecraft/block/VineBlock;hasHorizontalSide(Lnet/minecraft/block/BlockState;)Z
    • canGrowAt

      private boolean canGrowAt(BlockView world, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      official a Lcvf;a(Lcjc;Lgp;)Z
      intermediary method_10824 Lnet/minecraft/class_2541;method_10824(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z
      named canGrowAt Lnet/minecraft/block/VineBlock;canGrowAt(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Z
    • canReplace

      public boolean canReplace(BlockState state, ItemPlacementContext context)
      Returns whether the item can replace the block.

      By default, this checks if the block's material allows replacing and whether the item differs from the block's item. Items composed of multiple blocks, such as candles, vines, or snow layers, should override this to implement additional checks.

      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:
      canReplace in class AbstractBlock
      Returns:
      whether the item can replace the block
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lcfu;)Z
      intermediary method_9616 Lnet/minecraft/class_4970;method_9616(Lnet/minecraft/class_2680;Lnet/minecraft/class_1750;)Z
      named canReplace Lnet/minecraft/block/AbstractBlock;canReplace(Lnet/minecraft/block/BlockState;Lnet/minecraft/item/ItemPlacementContext;)Z
    • getPlacementState

      @Nullable public @Nullable BlockState getPlacementState(ItemPlacementContext ctx)
      Overrides:
      getPlacementState in class Block
      Mappings:
      Namespace Name Mixin selector
      official a Lcmt;a(Lcfu;)Lcyt;
      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;
    • 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
    • rotate

      public 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
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lcsz;)Lcyt;
      intermediary method_9598 Lnet/minecraft/class_4970;method_9598(Lnet/minecraft/class_2680;Lnet/minecraft/class_2470;)Lnet/minecraft/class_2680;
      named rotate Lnet/minecraft/block/AbstractBlock;rotate(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/BlockRotation;)Lnet/minecraft/block/BlockState;
    • mirror

      public 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
      Mappings:
      Namespace Name Mixin selector
      official a Lcys;a(Lcyt;Lcrk;)Lcyt;
      intermediary method_9569 Lnet/minecraft/class_4970;method_9569(Lnet/minecraft/class_2680;Lnet/minecraft/class_2415;)Lnet/minecraft/class_2680;
      named mirror Lnet/minecraft/block/AbstractBlock;mirror(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/BlockMirror;)Lnet/minecraft/block/BlockState;
    • getFacingProperty

      public static BooleanProperty getFacingProperty(Direction direction)
      Mappings:
      Namespace Name Mixin selector
      official a Lcvf;a(Lgv;)Lczk;
      intermediary method_10828 Lnet/minecraft/class_2541;method_10828(Lnet/minecraft/class_2350;)Lnet/minecraft/class_2746;
      named getFacingProperty Lnet/minecraft/block/VineBlock;getFacingProperty(Lnet/minecraft/util/math/Direction;)Lnet/minecraft/state/property/BooleanProperty;