aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2011-08-16 07:24:01 +0200
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2011-08-16 17:42:14 +0200
commitd0711821f3a4ec2d2e41c7baae37329972781ef3 (patch)
treee6749cf4a43da09eab12533360f818a4cecc8a96 /src
parent7024b4519746f267144482a47136a32f9a697546 (diff)
downloadminetest-d0711821f3a4ec2d2e41c7baae37329972781ef3.tar.gz
minetest-d0711821f3a4ec2d2e41c7baae37329972781ef3.tar.bz2
minetest-d0711821f3a4ec2d2e41c7baae37329972781ef3.zip
Ensure air neighbors to liquids that can flow are enqueued for transformation
Diffstat (limited to 'src')
-rw-r--r--src/map.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 6092538fe..fa88e846f 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1629,9 +1629,15 @@ void Map::transformLiquids(core::map<v3s16, MapBlock*> & modified_blocks)
case LIQUID_NONE:
if (nb.n.getContent() == CONTENT_AIR) {
airs[num_airs++] = nb;
+ // if the current node is a water source the neighbor
+ // should be enqueded for transformation regardless of whether the
+ // current node changes or not.
+ if (nb.t != NEIGHBOR_UPPER && liquid_type != LIQUID_NONE)
+ m_transforming_liquid.push_back(npos);
// if the current node happens to be a flowing node, it will start to flow down here.
- if (nb.t == NEIGHBOR_LOWER)
+ if (nb.t == NEIGHBOR_LOWER) {
flowing_down = true;
+ }
} else {
neutrals[num_neutrals++] = nb;
}