**Features:**
- Improve water particle water collision detection:
- Accounts for fluid height.
- Allows water particles to survive in any blocks that can create them (entities swimming in blocks that return true for `isAABBInsideMaterial`, but aren't a fluid, for example).
- New config setting that allows FluidState redstone behavior to be disabled.
**Bug Fixes:**
- Block material entity acceleration now only caches chunks as-needed (probably fixes [#290](https://github.com/jbredwards/Fluidlogged-API/issues/290)).
- Fix a couple very rare crashes related to fluid entity collision.
- Fix a crash that would happen if a mod attempted to render a fluid block without a world loaded.
- Fix a possible crash related to `MutableBlockPos` multi-threading (probably fixes the 1st half of [#289](https://github.com/jbredwards/Fluidlogged-API/issues/289)).
- Fix fluid collision not working at all for very small fluid heights.
- Much better fix for [MC-2591](https://bugs.mojang.com/browse/MC/issues/MC-2591) (it actually works now).
- Rewrite the FluidState redstone logic implementation. This fixes many (maybe all?) modded redstone-related conflicts!
**Compatibility Fixes:**
- Cleanroom Mod Loader:
- Fix a strange crash with Cleanroom on mobile (fixes [#292](https://github.com/jbredwards/Fluidlogged-API/issues/292)).
- Should no longer require the Fugue mod for Fluidlogged API to run.
- Dynamic Surroundings:
- Account for FluidStates when checking fluid color for the position.
- Add FluidState support for Dynamic Surroundings' underwater breathing effect.
- Fluid drop particles no longer phase through FluidStates.
- Now plays all ambient/random block effects for FluidStates!
- Rain drop particles no longer phase through FluidStates.
- Rain drop particles now create water ripples on FluidStates.
- Steam jet effect now accounts for FluidStates when counting the amount of surrounding "hot" blocks.
- Water splash jet effect is now FluidState-sensitive.
- Galacticraft:
- Fix a crash when fire checks whether certain Galacticraft fluids are flammable (fixes [#291](https://github.com/jbredwards/Fluidlogged-API/issues/291)).
- Make Galacticraft's fluid drip particle account for FluidStates during its collision check.
- Immersive Engineering:
- Wires (and other IE-like wires from other addons like Industrial Wires) now correctly trigger electrocuted damage + knockback with this mod installed (fixes [#286](https://github.com/jbredwards/Fluidlogged-API/issues/286)).
- NuclearCraft:
- Make all NuclearCraft source gas fluid blocks only vaporize their FluidState while fluidlogged instead of the whole block (fixes 2nd half of [#289](https://github.com/jbredwards/Fluidlogged-API/issues/289)).
- OreLib:
- Allow OreLib's `IBlockAccessEx` class to read FluidStates. This fix was originally part of my Subaquatic mod, but I'm moving it so it can be updated here as necessary.
- Tropicraft:
- Allow Tropicraft's fish hook entity to account for FluidStates when deciding which blocks to play splash effects for.
**API Changes:**
- Blocks without a material of lava are automatically marked as entity flammable if they return true for `Block.isAABBInsideMaterial(world, pos, aabb, Material.LAVA)`.
- Buckets now correctly pass the player into `FluidUtil.tryPlaceFluid`. This fixes a very minor unintentional code behavioral difference between forge and this mod.
- Fix a bad return value in `PluginWorld.Hooks.setBlockToAir` (client now returns true if a fluid is at the position instead of false). This makes the client & server return the same value.
- New `api.world.ICubeData` interface:
- Represents a 16x16x16 section of block data, without a reliance on using Chunks.
- New `FluidloggedUtils` methods that accept `ICubeData` instead of a chunk. The old chunk-based methods still exist for backwards compatibility.
- New `api.world.ICubeDataProvider` interface:
- Allows custom `IBlockAccess` implementations to supply `ICubeData`.
- New `api.world.IFluidEventListener` interface:
- Allows code to be executed when a FluidState changes somewhere in the world.
- This is intended to be used the same way as `IWorldEventListener.notifyBlockUpdate`.
- `IFluidloggable.onFluidChange`, `Block.onBlockAdded`, and `Block.neighborChanged` should still be enough for most cases.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }