Interface IForgeFluid
- All Known Implementing Classes:
EmptyFluid
,FlowingFluid
,Fluid
,ForgeFlowingFluid
,ForgeFlowingFluid.Flowing
,ForgeFlowingFluid.Source
,LavaFluid
,LavaFluid.Flowing
,LavaFluid.Source
,WaterFluid
,WaterFluid.Flowing
,WaterFluid.Source
public interface IForgeFluid
-
Method Summary
Modifier and TypeMethodDescriptiondefault boolean
canConvertToSource
(FluidState state, Level level, BlockPos pos) Returns whether the fluid can create a source.default boolean
canExtinguish
(FluidState state, BlockGetter getter, BlockPos pos) Returns whether the block can be extinguished by this fluid.default boolean
canHydrate
(FluidState state, BlockGetter getter, BlockPos pos, BlockState source, BlockPos sourcePos) Returns whether the block can be hydrated by a fluid.default @Nullable BlockPathTypes
getAdjacentBlockPathType
(FluidState state, BlockGetter level, BlockPos pos, @Nullable Mob mob, BlockPathTypes originalType) Gets the path type of the adjacent fluid to a pathfinding entity.default @Nullable BlockPathTypes
getBlockPathType
(FluidState state, BlockGetter level, BlockPos pos, @Nullable Mob mob, boolean canFluidLog) Gets the path type of this fluid when an entity is pathfinding.default float
getExplosionResistance
(FluidState state, BlockGetter level, BlockPos pos, Explosion explosion) Returns the explosion resistance of the fluid.Returns the type of this fluid.default boolean
move
(FluidState state, LivingEntity entity, Vec3 movementVector, double gravity) Performs how an entity moves when within the fluid.private Fluid
self()
default boolean
shouldUpdateWhileBoating
(FluidState state, Boat boat, Entity rider) Whenfalse
, the fluid will no longer update its height value while within a boat while it is not within a fluid (Boat.isUnderWater()
.default boolean
supportsBoating
(FluidState state, Boat boat) Returns whether the boat can be used on the fluid.
-
Method Details
-
self
-
getExplosionResistance
default float getExplosionResistance(FluidState state, BlockGetter level, BlockPos pos, Explosion explosion) Returns the explosion resistance of the fluid.- Parameters:
state
- the state of the fluidlevel
- the level the fluid is inpos
- the position of the fluidexplosion
- the explosion the fluid is absorbing- Returns:
- the amount of the explosion the fluid can absorb
-
getFluidType
FluidType getFluidType()Returns the type of this fluid.Important: This MUST be overridden on your fluid, otherwise an error will be thrown.
- Returns:
- the type of this fluid
-
move
Performs how an entity moves when within the fluid. If using custom movement logic, the method should returntrue
. Otherwise, the movement logic will default to water.- Parameters:
state
- the state of the fluidentity
- the entity moving within the fluidmovementVector
- the velocity of how the entity wants to movegravity
- the gravity to apply to the entity- Returns:
true
if custom movement logic is performed,false
otherwise
-
canConvertToSource
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
-
supportsBoating
Returns whether the boat can be used on the fluid.- Parameters:
state
- the state of the fluidboat
- the boat trying to be used on the fluid- Returns:
true
if the boat can be used,false
otherwise
-
shouldUpdateWhileBoating
Whenfalse
, the fluid will no longer update its height value while within a boat while it is not within a fluid (Boat.isUnderWater()
.- Parameters:
state
- the state of the fluid the rider is withinboat
- the boat the rider is within that is not inside a fluidrider
- the rider of the boat- Returns:
true
if the fluid height should be updated,false
otherwise
-
getBlockPathType
@Nullable default @Nullable BlockPathTypes getBlockPathType(FluidState state, BlockGetter level, BlockPos pos, @Nullable @Nullable Mob mob, boolean canFluidLog) Gets the path type of this fluid when an entity is pathfinding. Whennull
, uses vanilla behavior.- Parameters:
state
- the state of the fluidlevel
- the level which contains this fluidpos
- the position of the fluidmob
- the mob currently pathfinding, may benull
canFluidLog
-true
if the path is being applied for fluids that can log blocks, should be checked against if the fluid can log a block- Returns:
- the path type of this fluid
-
getAdjacentBlockPathType
@Nullable default @Nullable BlockPathTypes getAdjacentBlockPathType(FluidState state, BlockGetter level, BlockPos pos, @Nullable @Nullable Mob mob, BlockPathTypes originalType) Gets the path type of the adjacent fluid to a pathfinding entity. Path types with a negative malus are not traversable for the entity. Pathfinding entities will favor paths consisting of a lower malus. Whennull
, uses vanilla behavior.- Parameters:
state
- the state of the fluidlevel
- the level which contains this fluidpos
- the position of the fluidmob
- the mob currently pathfinding, may benull
originalType
- the path type of the source the entity is on- Returns:
- the path type of this fluid
-
canHydrate
default boolean canHydrate(FluidState state, BlockGetter getter, BlockPos pos, BlockState source, BlockPos sourcePos) Returns whether the block can be hydrated by a fluid.Hydration is an arbitrary word which depends on the block.
- A farmland has moisture
- A sponge can soak up the liquid
- A coral can live
- Parameters:
state
- the state of the fluidgetter
- the getter which can get the fluidpos
- the position of the fluidsource
- the state of the block being hydratedsourcePos
- the position of the block being hydrated- Returns:
true
if the block can be hydrated,false
otherwise
-
canExtinguish
Returns whether the block can be extinguished by this fluid.- Parameters:
state
- the state of the fluidgetter
- the getter which can get the fluidpos
- the position of the fluid- Returns:
true
if the block can be extinguished,false
otherwise
-