Class FlowingFluid
java.lang.Object
net.minecraft.world.level.material.Fluid
net.minecraft.world.level.material.FlowingFluid
- All Implemented Interfaces:
IFluidExtension
- Direct Known Subclasses:
BaseFlowingFluid
,LavaFluid
,WaterFluid
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final record
protected class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
static final BooleanProperty
static final IntegerProperty
private static final ThreadLocal
<it.unimi.dsi.fastutil.objects.Object2ByteLinkedOpenHashMap<FlowingFluid.BlockStatePairKey>> private final Map
<FluidState, VoxelShape> Fields inherited from class net.minecraft.world.level.material.Fluid
FLUID_STATE_REGISTRY, stateDefinition
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
affectsFlow
(FluidState pState) protected abstract void
beforeDestroyingBlock
(LevelAccessor pLevel, BlockPos pPos, BlockState pState) protected abstract boolean
canConvertToSource
(ServerLevel pLevel) Deprecated.boolean
canConvertToSource
(FluidState state, ServerLevel level, BlockPos pos) Returns whether the fluid can create a source.private static boolean
canHoldAnyFluid
(BlockState pState) private static boolean
canHoldFluid
(BlockGetter pLevel, BlockPos pPos, BlockState pState, Fluid pFluid) private static boolean
canHoldSpecificFluid
(BlockGetter pLevel, BlockPos pPos, BlockState pState, Fluid pFluid) private boolean
canMaybePassThrough
(BlockGetter pLevel, BlockPos pPos, BlockState pState, Direction pDirection, BlockPos pSpreadPos, BlockState pSpreadState, FluidState pFluidState) private boolean
canPassThrough
(BlockGetter pLevel, Fluid pFluid, BlockPos pPos, BlockState pState, Direction pDirection, BlockPos pSpreadPos, BlockState pSpreadState, FluidState pFluidState) private static boolean
canPassThroughWall
(Direction pDirection, BlockGetter pLevel, BlockPos pPos, BlockState pState, BlockPos pSpreadPos, BlockState pSpreadState) protected void
abstract int
getAmount
(FluidState pState) protected abstract int
getDropOff
(LevelReader pLevel) getFlow
(BlockGetter pBlockReader, BlockPos pPos, FluidState pFluidState) abstract Fluid
getFlowing
(int pLevel, boolean pFalling) float
getHeight
(FluidState pState, BlockGetter pLevel, BlockPos pPos) protected static int
getLegacyLevel
(FluidState pState) protected FluidState
getNewLiquid
(ServerLevel pLevel, BlockPos pPos, BlockState pState) float
getOwnHeight
(FluidState pState) getShape
(FluidState pState, BlockGetter pLevel, BlockPos pPos) protected int
getSlopeDistance
(LevelReader pLevel, BlockPos pPos, int pDepth, Direction pDirection, BlockState pState, FlowingFluid.SpreadContext pSpreadContext) protected abstract int
getSlopeFindDistance
(LevelReader pLevel) abstract Fluid
getSource
(boolean pFalling) protected Map
<Direction, FluidState> getSpread
(ServerLevel pLevel, BlockPos pPos, BlockState pState) protected int
getSpreadDelay
(Level pLevel, BlockPos pPos, FluidState pCurrentState, FluidState pNewState) private static boolean
hasSameAbove
(FluidState pFluidState, BlockGetter pLevel, BlockPos pPos) protected boolean
isSolidFace
(BlockGetter pLevel, BlockPos pNeighborPos, Direction pSide) private boolean
isSourceBlockOfThisType
(FluidState pState) (package private) boolean
isWaterHole
(BlockGetter pLevel, BlockPos pPos, BlockState pState, BlockPos pBelowPos, BlockState pBelowState) private int
sourceNeighborCount
(LevelReader pLevel, BlockPos pPos) Returns the number of immediately adjacent source blocks of the same fluid that lie on the horizontal plane.protected void
spread
(ServerLevel pLevel, BlockPos pPos, BlockState pBlockState, FluidState pFluidState) protected void
spreadTo
(LevelAccessor pLevel, BlockPos pPos, BlockState pBlockState, Direction pDirection, FluidState pFluidState) private void
spreadToSides
(ServerLevel pLevel, BlockPos pPos, FluidState pFluidState, BlockState pBlockState) void
tick
(ServerLevel pLevel, BlockPos pPos, BlockState pBlockState, FluidState pFluidState) Methods inherited from class net.minecraft.world.level.material.Fluid
animateTick, builtInRegistryHolder, canBeReplacedWith, createLegacyBlock, defaultFluidState, entityInside, getAABB, getBucket, getDripParticle, getExplosionResistance, getFluidType, getPickupSound, getStateDefinition, getTickDelay, is, isEmpty, isRandomlyTicking, isSame, isSource, randomTick, registerDefaultState, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.neoforged.neoforge.common.extensions.IFluidExtension
canExtinguish, canHydrate, getAdjacentBlockPathType, getBlockPathType, getExplosionResistance, move, supportsBoating
-
Field Details
-
FALLING
-
LEVEL
-
CACHE_SIZE
private static final int CACHE_SIZE- See Also:
-
OCCLUSION_CACHE
private static final ThreadLocal<it.unimi.dsi.fastutil.objects.Object2ByteLinkedOpenHashMap<FlowingFluid.BlockStatePairKey>> OCCLUSION_CACHE -
shapes
-
-
Constructor Details
-
FlowingFluid
public FlowingFluid()
-
-
Method Details
-
createFluidStateDefinition
- Overrides:
createFluidStateDefinition
in classFluid
-
getFlow
-
affectsFlow
-
isSolidFace
-
spread
protected void spread(ServerLevel pLevel, BlockPos pPos, BlockState pBlockState, FluidState pFluidState) -
spreadToSides
private void spreadToSides(ServerLevel pLevel, BlockPos pPos, FluidState pFluidState, BlockState pBlockState) -
getNewLiquid
-
canPassThroughWall
private static boolean canPassThroughWall(Direction pDirection, BlockGetter pLevel, BlockPos pPos, BlockState pState, BlockPos pSpreadPos, BlockState pSpreadState) -
getFlowing
-
getFlowing
-
getSource
-
getSource
-
canConvertToSource
Description copied from interface:IFluidExtension
Returns whether the fluid can create a source.- Parameters:
state
- the state of the fluidlevel
- the level that can get the fluidpos
- the location of the fluid- Returns:
true
if the fluid can create a source,false
otherwise
-
canConvertToSource
Deprecated.Forge: UsecanConvertToSource(FluidState, ServerLevel, BlockPos)
instead. -
spreadTo
protected void spreadTo(LevelAccessor pLevel, BlockPos pPos, BlockState pBlockState, Direction pDirection, FluidState pFluidState) -
beforeDestroyingBlock
protected abstract void beforeDestroyingBlock(LevelAccessor pLevel, BlockPos pPos, BlockState pState) -
getSlopeDistance
protected int getSlopeDistance(LevelReader pLevel, BlockPos pPos, int pDepth, Direction pDirection, BlockState pState, FlowingFluid.SpreadContext pSpreadContext) -
isWaterHole
boolean isWaterHole(BlockGetter pLevel, BlockPos pPos, BlockState pState, BlockPos pBelowPos, BlockState pBelowState) -
canPassThrough
private boolean canPassThrough(BlockGetter pLevel, Fluid pFluid, BlockPos pPos, BlockState pState, Direction pDirection, BlockPos pSpreadPos, BlockState pSpreadState, FluidState pFluidState) -
canMaybePassThrough
private boolean canMaybePassThrough(BlockGetter pLevel, BlockPos pPos, BlockState pState, Direction pDirection, BlockPos pSpreadPos, BlockState pSpreadState, FluidState pFluidState) -
isSourceBlockOfThisType
-
getSlopeFindDistance
-
sourceNeighborCount
Returns the number of immediately adjacent source blocks of the same fluid that lie on the horizontal plane. -
getSpread
-
canHoldAnyFluid
-
canHoldFluid
private static boolean canHoldFluid(BlockGetter pLevel, BlockPos pPos, BlockState pState, Fluid pFluid) -
canHoldSpecificFluid
private static boolean canHoldSpecificFluid(BlockGetter pLevel, BlockPos pPos, BlockState pState, Fluid pFluid) -
getDropOff
-
getSpreadDelay
protected int getSpreadDelay(Level pLevel, BlockPos pPos, FluidState pCurrentState, FluidState pNewState) -
tick
-
getLegacyLevel
-
hasSameAbove
-
getHeight
-
getOwnHeight
- Specified by:
getOwnHeight
in classFluid
-
getAmount
-
getShape
-
canConvertToSource(FluidState, ServerLevel, BlockPos)
instead.