Hose Pulleys don't always extract up to their full range.
X66Herobrine66X opened this issue ยท 4 comments
Describe the Bug
Hose pulley's don't always extract to their full range. Sometimes they cut off halfway. They can always pump fluid out to their full range, but sometimes they cut off. It happens nearly every single time on my server, and was doing it a ton on singleplayer when I was testing for this bug report. At first I thought it had to do with the rotation direction of the pumps input. I was convinced that rotating the cogwheel powering the pumps counter clockwise was the problem, and was receiving fairly consistent results, but then it stopped doing the bug altogether. I can't reproduce it now in the same world.
Reproduction Steps
- Create a hose pulley system set to pump a fluid (I used lava) into a 128 block long channel.
- Fill the channel with the hose pulley.
- Now try and extract it back into the pulley.
- Watch as the lava channel gets cutoff halfway (maybe, it's inconsistent).
...
Expected Result
The hose pulley should pull all 128 blocks back in via the pump.
Screenshots and Videos
Crash Report or Log
N/A
Operating System
Windows 10
Mod Version
0.5.1f
Minecraft Version
1.19.2
Forge Version
43.3.5
Other Mods
https://www.curseforge.com/minecraft/modpacks/thecosmereproject-devserver
This is the modpack I'm using.
Additional Context
No response
This 1 line change fixes the issue:
@@ -146,7 +146,7 @@ public abstract class FluidManipulationBehaviour extends BlockEntityBehaviour {
BiConsumer<BlockPos, Integer> add, boolean searchDownward) throws ChunkNotLoadedException {
Level world = getWorld();
int maxBlocks = maxBlocks();
- int maxRange = canDrainInfinitely(fluid) ? maxRange() : maxRange() / 2;
+ int maxRange = maxRange(); // canDrainInfinitely(fluid) ? maxRange() : maxRange() / 2;
int maxRangeSq = maxRange * maxRange;
int i;
@simibubi do you remember why this conditional was put in place?
It seems to me that, with default settings, it is a reasonable invariant to expect that any non-infinite pool that you can fill, you can also drain.
Ok, further testing has proved that reeling in the hose pulley and then extending it back out will consistently cause the next extraction to pull in the full 128 blocks. After that, pumping out the lava and then pumping it back in will trigger the half range bug again.