Skip to main content

Module fluid

Module fluid 

Source
Expand description

Fluid behavior system.

This module handles fluid mechanics: spreading, flowing, waterlogging. Based on vanilla Minecraft’s FlowingFluid system.

§TODOs

  • TODO: Remaining entity fluid side effects: drowning, splash particles/sounds.
  • TODO: Block item drops when water destroys blocks (cactus infrastructure merged, needs implementation).
  • TODO: Lava random tick fire spread.

Re-exports§

pub use flowing_fluid::FlowingFluid;
pub use fluid_behavior::FluidBehavior;
pub use fluids::EmptyFluid;
pub use fluids::LavaFluid;
pub use fluids::WaterFluid;
pub use collision::can_hold_any_fluid_state;
pub use collision::can_hold_fluid;
pub use collision::can_hold_specific_fluid;
pub use collision::can_pass_through_wall;
pub use conversion::get_new_liquid;
pub use conversion::get_spread;
pub use conversion::is_hole;
pub use state::fluid_state_to_block;
pub use state::fluid_state_to_block_with_existing;
pub use state::get_flow;
pub use state::get_fluid_state;
pub use state::get_fluid_state_from_block;
pub use state::get_height;
pub use state::get_own_height;
pub use state::lava_id;
pub use state::water_id;

Modules§

collision
Fluid collision and passability logic.
conversion
Fluid state computation and source conversion logic.
flowing_fluid
Shared logic for flowing fluids (Water, Lava).
fluid_behavior
Fluid behavior trait and related types. Fluids like WaterFluid and LavaFluid implement this trait to inherit behavior.
fluids
Concrete fluid implementations: EmptyFluid, WaterFluid, and LavaFluid.
spread_context 🔒
Spread calculation context for fluid flow optimization.
state
Fluid state <-> block state conversions.

Structs§

Fluid
A fluid type definition (e.g., water, lava, empty).
FluidState
A fluid state instance with amount and falling properties.

Traits§

FluidStateExt
Extension trait for FluidState type-checking methods.

Functions§

is_lava_fluid
Returns true if the given FluidRef is lava (including flowing lava).
is_water_fluid
Returns true if the given FluidRef is water (including flowing water).

Type Aliases§

FluidRef