Repository navigation
fix: stop flowing fluids from washing away pipes - #35
Merged
Merged
Conversation
The pipe and the creative pipe set forceSolidOn, so a flowing fluid stops at one as at a wall. Their thin shape left them non-solid, and FlowingFluid replaced them as it does a torch. Vanilla now treats them as solid elsewhere too: signs and banners stand on them, hanging entities attach to them, farmland and dirt paths under them revert, and they block rain. Closes #34 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each test now waits for a spread or two and clears its source after its checks, so the flow dries up before it reaches a neighbouring test. The under test has positions of its own, and the changelog notes that rain stops at a pipe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adamico
enabled auto-merge (squash)
October 17, 2026 07:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Flowing water and lava washed a pipe away and dropped it, as they would a torch: vanilla's
FlowingFluid.canHoldAnyFluidreplaces any block that doesn'tblocksMotion(), and a pipe's thin core-and-arms shape isn't solid bycalculateSolid's rule. The pipe and the creative pipe now force solid, so a fluid stops at them as at a wall. No new blockstate, no waterlogging (turned down in triage: a waterlogged pipe would read as a water source to the Pump).Vanilla side effects of a solid pipe (every
isSolid()/blocksMotion()caller checked):MOTION_BLOCKINGheightmap)isPathfindablereads the full collision shape), suffocation, and the Outlet's placement rule (ADR 0007), since a pipe still can't be replacedEvidence
New game tests,
fluid_flow_*: a pipe and a creative pipe each beside a water and a lava source, and a pipe under falling water. Each first checks the fluid did spread on an open side, then that the pipe is still there, then takes the source away so the flow stays on the platform.fluid_flow_*: 5 failed, e.g.the flowing minecraft:water washed the pipe away (relative: 3, 1, 4)After:
fluid_flow_*: 5 of 5 runs passed;sh ./gradlew buildpasses;runGameTestServer: all 136 required tests passedMerge Danger
Door: two-way
Removing
forceSolidOn()puts it back; no saved data or blockstate changes.Blast Radius: small
Placed pipes in existing worlds become solid on load: farmland or a dirt path under a pipe will turn to dirt on its next update, and a cactus beside a pipe breaks.
Closes #34
🤖 Generated with Claude Code