This PR fixes water flows by replacing barriers with water source if there are two water sources as their neighbor.
This PR is ready for review. Some maps not extending their border into the ocean (e.g. Desert Spikes) can now be fixed.
The logic
The code only works on barriers that should be replaced by air (i.e. replacement_id == ID_AIR). On each such node, four neighbor nodes of the same Y-coordinate (i.e. z +/- 1, x +/- 1) are listed and checked. If two of them are water sources, the current barrier will be replaced by water source instead of air.
Due to the above code, the d[vi] == ID_AIR check is no longer necessary and is removed in this PR.
This PR fixes water flows by replacing barriers with water source if there are two water sources as their neighbor.
This PR is ready for review. Some maps not extending their border into the ocean (e.g. Desert Spikes) can now be fixed.
The logic
The code only works on barriers that should be replaced by air (i.e.
replacement_id == ID_AIR
). On each such node, four neighbor nodes of the same Y-coordinate (i.e. z +/- 1, x +/- 1) are listed and checked. If two of them are water sources, the current barrier will be replaced by water source instead of air.Due to the above code, the
d[vi] == ID_AIR
check is no longer necessary and is removed in this PR.Gallery
Before (
f44e0ed
):After: