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 recordprotected class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intstatic final BooleanPropertystatic final IntegerPropertyprivate 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 booleanaffectsFlow(FluidState pState) protected abstract voidbeforeDestroyingBlock(LevelAccessor pLevel, BlockPos pPos, BlockState pState) protected abstract booleancanConvertToSource(ServerLevel pLevel) Deprecated.booleancanConvertToSource(FluidState state, ServerLevel level, BlockPos pos) Returns whether the fluid can create a source.private static booleancanHoldAnyFluid(BlockState pState) private static booleancanHoldFluid(BlockGetter pLevel, BlockPos pPos, BlockState pState, Fluid pFluid) private static booleancanHoldSpecificFluid(BlockGetter pLevel, BlockPos pPos, BlockState pState, Fluid pFluid) private booleancanMaybePassThrough(BlockGetter pLevel, BlockPos pPos, BlockState pState, Direction pDirection, BlockPos pSpreadPos, BlockState pSpreadState, FluidState pFluidState) private booleancanPassThrough(BlockGetter pLevel, Fluid pFluid, BlockPos pPos, BlockState pState, Direction pDirection, BlockPos pSpreadPos, BlockState pSpreadState, FluidState pFluidState) private static booleancanPassThroughWall(Direction pDirection, BlockGetter pLevel, BlockPos pPos, BlockState pState, BlockPos pSpreadPos, BlockState pSpreadState) protected voidabstract intgetAmount(FluidState pState) protected abstract intgetDropOff(LevelReader pLevel) getFlow(BlockGetter pBlockReader, BlockPos pPos, FluidState pFluidState) abstract FluidgetFlowing(int pLevel, boolean pFalling) floatgetHeight(FluidState pState, BlockGetter pLevel, BlockPos pPos) protected static intgetLegacyLevel(FluidState pState) protected FluidStategetNewLiquid(ServerLevel pLevel, BlockPos pPos, BlockState pState) floatgetOwnHeight(FluidState pState) getShape(FluidState pState, BlockGetter pLevel, BlockPos pPos) protected intgetSlopeDistance(LevelReader pLevel, BlockPos pPos, int pDepth, Direction pDirection, BlockState pState, FlowingFluid.SpreadContext pSpreadContext) protected abstract intgetSlopeFindDistance(LevelReader pLevel) abstract FluidgetSource(boolean pFalling) protected Map<Direction, FluidState> getSpread(ServerLevel pLevel, BlockPos pPos, BlockState pState) protected intgetSpreadDelay(Level pLevel, BlockPos pPos, FluidState pCurrentState, FluidState pNewState) private static booleanhasSameAbove(FluidState pFluidState, BlockGetter pLevel, BlockPos pPos) protected booleanisSolidFace(BlockGetter pLevel, BlockPos pNeighborPos, Direction pSide) private booleanisSourceBlockOfThisType(FluidState pState) (package private) booleanisWaterHole(BlockGetter pLevel, BlockPos pPos, BlockState pState, BlockPos pBelowPos, BlockState pBelowState) private intsourceNeighborCount(LevelReader pLevel, BlockPos pPos) Returns the number of immediately adjacent source blocks of the same fluid that lie on the horizontal plane.protected voidspread(ServerLevel pLevel, BlockPos pPos, BlockState pBlockState, FluidState pFluidState) protected voidspreadTo(LevelAccessor pLevel, BlockPos pPos, BlockState pBlockState, Direction pDirection, FluidState pFluidState) private voidspreadToSides(ServerLevel pLevel, BlockPos pPos, FluidState pFluidState, BlockState pBlockState) voidtick(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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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:
createFluidStateDefinitionin 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:IFluidExtensionReturns 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:
trueif the fluid can create a source,falseotherwise
-
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:
getOwnHeightin classFluid
-
getAmount
-
getShape
-
canConvertToSource(FluidState, ServerLevel, BlockPos)instead.