Package net.minecraft.world.level.block
Class PointedDripstoneBlock
java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
net.minecraft.world.level.block.PointedDripstoneBlock
- All Implemented Interfaces:
FeatureElement,BucketPickup,Fallable,LiquidBlockContainer,SimpleWaterloggedBlock,ItemLike,IBlockExtension,IBucketPickupExtension
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final recordNested classes/interfaces inherited from class net.minecraft.world.level.block.Block
Block.BlockStatePairKeyNested classes/interfaces inherited from class net.minecraft.world.level.block.state.BlockBehaviour
BlockBehaviour.BlockStateBase, BlockBehaviour.OffsetFunction, BlockBehaviour.OffsetType, BlockBehaviour.Properties, BlockBehaviour.StateArgumentPredicate<A>, BlockBehaviour.StatePredicate -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final floatprivate static final VoxelShapestatic final com.mojang.serialization.MapCodec<PointedDripstoneBlock> private static final intprivate static final floatprivate static final floatprivate static final VoxelShapeprivate static final floatstatic final floatprivate static final intprivate static final floatprivate static final intprivate static final intprivate static final intprivate static final intprivate static final VoxelShapeprivate static final doubleprivate static final VoxelShapeprivate static final floatprivate static final floatprivate static final intprivate static final intprivate static final floatstatic final EnumProperty<DripstoneThickness> static final DirectionPropertyprivate static final VoxelShapeprivate static final VoxelShapeprivate static final VoxelShapestatic final floatstatic final BooleanPropertyFields inherited from class net.minecraft.world.level.block.Block
BLOCK_STATE_REGISTRY, INDESTRUCTIBLE, INSTANT, stateDefinition, UPDATE_ALL, UPDATE_ALL_IMMEDIATE, UPDATE_CLIENTS, UPDATE_IMMEDIATE, UPDATE_INVISIBLE, UPDATE_KNOWN_SHAPE, UPDATE_LIMIT, UPDATE_MOVE_BY_PISTON, UPDATE_NEIGHBORS, UPDATE_NONE, UPDATE_SUPPRESS_DROPSFields inherited from class net.minecraft.world.level.block.state.BlockBehaviour
drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, properties, requiredFeatures, soundType, speedFactor, UPDATE_SHAPE_ORDERFields inherited from interface net.minecraft.world.flag.FeatureElement
FILTERED_REGISTRIES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidanimateTick(BlockState state, Level level, BlockPos pos, RandomSource random) Called periodically clientside on blocks near the player to show effects (like furnace fire particles).private static DripstoneThicknesscalculateDripstoneThickness(LevelReader level, BlockPos pos, Direction dir, boolean isTipMerge) private static DirectioncalculateTipDirection(LevelReader level, BlockPos pos, Direction dir) static booleancanDrip(BlockState state) private static booleancanDripThrough(BlockGetter level, BlockPos pos, BlockState state) private static booleancanFillCauldron(Fluid fluid) private static booleancanGrow(BlockState dripstoneState, BlockState state) protected booleancanSurvive(BlockState state, LevelReader level, BlockPos pos) private static booleancanTipGrow(BlockState state, ServerLevel level, BlockPos pos) com.mojang.serialization.MapCodec<PointedDripstoneBlock> codec()protected voidprivate static voidcreateDripstone(LevelAccessor level, BlockPos pos, Direction direction, DripstoneThickness thickness) private static voidcreateMergedTips(BlockState state, LevelAccessor level, BlockPos pos) voidfallOn(Level level, BlockState state, BlockPos pos, Entity entity, float fallDistance) findBlockVertical(LevelAccessor level, BlockPos pos, Direction.AxisDirection axis, BiPredicate<BlockPos, BlockState> positionalStatePredicate, Predicate<BlockState> statePredicate, int maxIterations) private static BlockPosfindFillableCauldronBelowStalactiteTip(Level level, BlockPos pos, Fluid fluid) findRootBlock(Level level, BlockPos pos, BlockState state, int maxIterations) static BlockPosfindStalactiteTipAboveCauldron(Level level, BlockPos pos) private static BlockPosfindTip(BlockState state, LevelAccessor level, BlockPos pos, int maxIterations, boolean isTipMerge) static FluidgetCauldronFillFluidType(ServerLevel level, BlockPos pos) private static FluidgetDripFluid(Level level, Fluid fluid) getFallDamageSource(Entity entity) private static Optional<PointedDripstoneBlock.FluidInfo> getFluidAboveStalactite(Level level, BlockPos pos, BlockState state) protected FluidStategetFluidState(BlockState state) protected floatprotected VoxelShapegetOcclusionShape(BlockState state, BlockGetter level, BlockPos pos) protected VoxelShapegetShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) getStateForPlacement(BlockPlaceContext context) private static voidgrow(ServerLevel server, BlockPos pos, Direction direction) static voidgrowStalactiteOrStalagmiteIfPossible(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) private static voidgrowStalagmiteBelow(ServerLevel level, BlockPos pos) protected booleanisCollisionShapeFullBlock(BlockState state, BlockGetter level, BlockPos pos) protected booleanisPathfindable(BlockState state, PathComputationType pathComputationType) private static booleanisPointedDripstoneWithDirection(BlockState state, Direction dir) private static booleanisStalactite(BlockState state) private static booleanisStalactiteStartPos(BlockState state, LevelReader level, BlockPos pos) private static booleanisStalagmite(BlockState state) private static booleanisTip(BlockState state, boolean isTipMerge) private static booleanisUnmergedTipWithDirection(BlockState state, Direction dir) private static booleanisValidPointedDripstonePlacement(LevelReader level, BlockPos pos, Direction dir) static voidmaybeTransferFluid(BlockState state, ServerLevel level, BlockPos pos, float randChance) voidonBrokenAfterFall(Level level, BlockPos pos, FallingBlockEntity fallingBlock) protected voidonProjectileHit(Level level, BlockState state, BlockHitResult hit, Projectile projectile) protected voidrandomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) Performs a random tick on a block.static voidspawnDripParticle(Level level, BlockPos pos, BlockState state) private static voidspawnDripParticle(Level level, BlockPos pos, BlockState state, Fluid p_fluid) private static voidspawnFallingStalactite(BlockState state, ServerLevel level, BlockPos pos) protected voidtick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) protected BlockStateupdateShape(BlockState state, Direction p_direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) Update the provided state given the provided neighbor direction and neighbor state, returning a new state.Methods inherited from class net.minecraft.world.level.block.Block
appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, defaultBlockState, destroy, dropFromExplosion, dropResources, dropResources, dropResources, getCloneItemStack, getDescriptionId, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getShapeForEachState, getSpeedFactor, getStateDefinition, handlePrecipitation, hasDynamicShape, initializeClient, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, pushEntitiesUp, registerDefaultState, setPlacedBy, shouldRenderFace, spawnDestroyParticles, stateById, stepOn, toString, tryDropExperience, updateEntityAfterFallOn, updateFromNeighbourShapes, updateOrDestroy, updateOrDestroy, wasExploded, withPropertiesOfMethods inherited from class net.minecraft.world.level.block.state.BlockBehaviour
attack, canBeReplaced, canBeReplaced, defaultDestroyTime, defaultMapColor, entityInside, getAnalogOutputSignal, getBlockSupportShape, getCollisionShape, getDestroyProgress, getDirectSignal, getDrops, getInteractionShape, getLightBlock, getLootTable, getMaxVerticalOffset, getMenuProvider, getRenderShape, getSeed, getShadeBrightness, getSignal, getSoundType, getVisualShape, hasAnalogOutputSignal, isAir, isOcclusionShapeFullBlock, isRandomlyTicking, isSignalSource, mirror, neighborChanged, onExplosionHit, onPlace, onRemove, propagatesSkylightDown, properties, propertiesCodec, requiredFeatures, rotate, simpleCodec, skipRendering, spawnAfterBreak, triggerEvent, updateIndirectNeighbourShapes, useItemOn, useShapeForLightOcclusion, useWithoutItemMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.world.flag.FeatureElement
isEnabledMethods inherited from interface net.neoforged.neoforge.common.extensions.IBlockExtension
addLandingEffects, addRunningEffects, canBeHydrated, canConnectRedstone, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, canSustainPlant, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBedDirection, getBlockPathType, getBubbleColumnDirection, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getPistonPushReaction, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hasDynamicLightEmission, hidesNeighborFace, isBed, isBurning, isConduitFrame, isEmpty, isFertile, isFireSource, isFlammable, isLadder, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPlayer, onDestroyedByPushReaction, onNeighborChange, onTreeGrow, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, shouldHideAdjacentFluidFace, supportsExternalFaceHidingMethods inherited from interface net.neoforged.neoforge.common.extensions.IBucketPickupExtension
getPickupSoundMethods inherited from interface net.minecraft.world.level.block.SimpleWaterloggedBlock
canPlaceLiquid, getPickupSound, pickupBlock, placeLiquid
-
Field Details
-
CODEC
-
TIP_DIRECTION
-
THICKNESS
-
WATERLOGGED
-
MAX_SEARCH_LENGTH_WHEN_CHECKING_DRIP_TYPE
private static final int MAX_SEARCH_LENGTH_WHEN_CHECKING_DRIP_TYPE- See Also:
-
DELAY_BEFORE_FALLING
private static final int DELAY_BEFORE_FALLING- See Also:
-
DRIP_PROBABILITY_PER_ANIMATE_TICK
private static final float DRIP_PROBABILITY_PER_ANIMATE_TICK- See Also:
-
DRIP_PROBABILITY_PER_ANIMATE_TICK_IF_UNDER_LIQUID_SOURCE
private static final float DRIP_PROBABILITY_PER_ANIMATE_TICK_IF_UNDER_LIQUID_SOURCE- See Also:
-
MAX_SEARCH_LENGTH_BETWEEN_STALACTITE_TIP_AND_CAULDRON
private static final int MAX_SEARCH_LENGTH_BETWEEN_STALACTITE_TIP_AND_CAULDRON- See Also:
-
WATER_TRANSFER_PROBABILITY_PER_RANDOM_TICK
public static final float WATER_TRANSFER_PROBABILITY_PER_RANDOM_TICK- See Also:
-
LAVA_TRANSFER_PROBABILITY_PER_RANDOM_TICK
public static final float LAVA_TRANSFER_PROBABILITY_PER_RANDOM_TICK- See Also:
-
MIN_TRIDENT_VELOCITY_TO_BREAK_DRIPSTONE
private static final double MIN_TRIDENT_VELOCITY_TO_BREAK_DRIPSTONE- See Also:
-
STALACTITE_DAMAGE_PER_FALL_DISTANCE_AND_SIZE
private static final float STALACTITE_DAMAGE_PER_FALL_DISTANCE_AND_SIZE- See Also:
-
STALACTITE_MAX_DAMAGE
private static final int STALACTITE_MAX_DAMAGE- See Also:
-
MAX_STALACTITE_HEIGHT_FOR_DAMAGE_CALCULATION
private static final int MAX_STALACTITE_HEIGHT_FOR_DAMAGE_CALCULATION- See Also:
-
STALAGMITE_FALL_DISTANCE_OFFSET
private static final float STALAGMITE_FALL_DISTANCE_OFFSET- See Also:
-
STALAGMITE_FALL_DAMAGE_MODIFIER
private static final int STALAGMITE_FALL_DAMAGE_MODIFIER- See Also:
-
AVERAGE_DAYS_PER_GROWTH
private static final float AVERAGE_DAYS_PER_GROWTH- See Also:
-
GROWTH_PROBABILITY_PER_RANDOM_TICK
private static final float GROWTH_PROBABILITY_PER_RANDOM_TICK- See Also:
-
MAX_GROWTH_LENGTH
private static final int MAX_GROWTH_LENGTH- See Also:
-
MAX_STALAGMITE_SEARCH_RANGE_WHEN_GROWING
private static final int MAX_STALAGMITE_SEARCH_RANGE_WHEN_GROWING- See Also:
-
STALACTITE_DRIP_START_PIXEL
private static final float STALACTITE_DRIP_START_PIXEL- See Also:
-
TIP_MERGE_SHAPE
-
TIP_SHAPE_UP
-
TIP_SHAPE_DOWN
-
FRUSTUM_SHAPE
-
MIDDLE_SHAPE
-
BASE_SHAPE
-
MAX_HORIZONTAL_OFFSET
private static final float MAX_HORIZONTAL_OFFSET- See Also:
-
REQUIRED_SPACE_TO_DRIP_THROUGH_NON_SOLID_BLOCK
-
-
Constructor Details
-
PointedDripstoneBlock
-
-
Method Details
-
codec
-
createBlockStateDefinition
- Overrides:
createBlockStateDefinitionin classBlock
-
canSurvive
- Overrides:
canSurvivein classBlockBehaviour
-
updateShape
protected BlockState updateShape(BlockState state, Direction p_direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) Update the provided state given the provided neighbor direction and neighbor state, returning a new state. For example, fences make their connections to the passed in state if possible, and wet concrete powder immediately returns its solidified counterpart. Note that this method should ideally consider only the specific direction passed in.- Overrides:
updateShapein classBlockBehaviour
-
onProjectileHit
protected void onProjectileHit(Level level, BlockState state, BlockHitResult hit, Projectile projectile) - Overrides:
onProjectileHitin classBlockBehaviour
-
fallOn
-
animateTick
Called periodically clientside on blocks near the player to show effects (like furnace fire particles).- Overrides:
animateTickin classBlock
-
tick
- Overrides:
tickin classBlockBehaviour
-
randomTick
Performs a random tick on a block.- Overrides:
randomTickin classBlockBehaviour
-
maybeTransferFluid
public static void maybeTransferFluid(BlockState state, ServerLevel level, BlockPos pos, float randChance) -
getStateForPlacement
- Overrides:
getStateForPlacementin classBlock
-
getFluidState
- Overrides:
getFluidStatein classBlockBehaviour
-
getOcclusionShape
- Overrides:
getOcclusionShapein classBlockBehaviour
-
getShape
protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) - Overrides:
getShapein classBlockBehaviour
-
isCollisionShapeFullBlock
- Overrides:
isCollisionShapeFullBlockin classBlockBehaviour
-
getMaxHorizontalOffset
protected float getMaxHorizontalOffset()- Overrides:
getMaxHorizontalOffsetin classBlockBehaviour
-
onBrokenAfterFall
- Specified by:
onBrokenAfterFallin interfaceFallable
-
getFallDamageSource
- Specified by:
getFallDamageSourcein interfaceFallable
-
spawnFallingStalactite
-
growStalactiteOrStalagmiteIfPossible
public static void growStalactiteOrStalagmiteIfPossible(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) -
growStalagmiteBelow
-
grow
-
createDripstone
private static void createDripstone(LevelAccessor level, BlockPos pos, Direction direction, DripstoneThickness thickness) -
createMergedTips
-
spawnDripParticle
-
spawnDripParticle
-
findTip
@Nullable private static BlockPos findTip(BlockState state, LevelAccessor level, BlockPos pos, int maxIterations, boolean isTipMerge) -
calculateTipDirection
@Nullable private static Direction calculateTipDirection(LevelReader level, BlockPos pos, Direction dir) -
calculateDripstoneThickness
private static DripstoneThickness calculateDripstoneThickness(LevelReader level, BlockPos pos, Direction dir, boolean isTipMerge) -
canDrip
-
canTipGrow
-
findRootBlock
private static Optional<BlockPos> findRootBlock(Level level, BlockPos pos, BlockState state, int maxIterations) -
isValidPointedDripstonePlacement
private static boolean isValidPointedDripstonePlacement(LevelReader level, BlockPos pos, Direction dir) -
isTip
-
isUnmergedTipWithDirection
-
isStalactite
-
isStalagmite
-
isStalactiteStartPos
-
isPathfindable
- Overrides:
isPathfindablein classBlockBehaviour
-
isPointedDripstoneWithDirection
-
findFillableCauldronBelowStalactiteTip
-
findStalactiteTipAboveCauldron
-
getCauldronFillFluidType
-
getFluidAboveStalactite
private static Optional<PointedDripstoneBlock.FluidInfo> getFluidAboveStalactite(Level level, BlockPos pos, BlockState state) -
canFillCauldron
-
canGrow
-
getDripFluid
-
findBlockVertical
private static Optional<BlockPos> findBlockVertical(LevelAccessor level, BlockPos pos, Direction.AxisDirection axis, BiPredicate<BlockPos, BlockState> positionalStatePredicate, Predicate<BlockState> statePredicate, int maxIterations) -
canDripThrough
-