I was recently testing a lava-based defense mechanism of mine for use in a future fortress and discovered an unfortunate bug regarding screw pumps and magma. The design is as follows:
Game View:
Z-2 Z-1 Z-0
... ███ ███
.#. █ç█ █.█ ≈ - Magma
... ███ █.█ % - Screw Pump
███ ███ █.█ # - Floor Grate
█_█ █_█ █.█ ç - Floor Hatch
█%█ ███ ███ . - Floor
█%█ ███ ███ _ - Channel
█_█ ≈≈≈ ███
███ ███ ███
Side View:
██████ ≈ - Magma
█ %% █_#_ % - Screw Pump
█≈██ ██ç█ # - Floor Grate
████____█ ç - Floor Hatch
█████████ _ - Floor
I have the floor hatch attached to an external lever, and the screw pumps are just always pumping on their own. I open and close the floor hatch to control the flow. As the pump is on the same level as the ground, the pump would force the magma back up the pipe and out the grate, flooding the nearby area around the 'vent'. I planned to have one pump at ground level in the center of the map, and then have a bunch of these grated vents around the perimeter of the map connected to it with the flow hatches hooked to corresponding levers, so I could open a specific hatch and flood sections of the map with magma at will.
When I first turn on the pumps with the hatch open, it works perfectly. The magma flows up to the level of the pump out of the vent, flooding the area. I then close the hatch and the flow is stopped, as expected. However, when I re-open the hatch, nothing happens. The hatch visibly closes and opens successfully (magma safe materials for both the hatch and the mechanisms), but the magma will no longer flow up the tube. If I 'disturb' the magma in some way (like digging a hole into the side of the lower tunnel, letting the magma spread out briefly) the magma immediately begins flowing up the tube until I close the hatch again.
I assume my mechanism would function properly if I replace the floor hatch in the vertical tube with a flood gate/wall hatch in the horizontal tube. It should 'disturb' the magma by creating an open space for the magma to flow when it opens. My original design, however, felt much cooler.