From: Giuseppe Bilotta Date: Tue, 16 Aug 2011 05:24:01 +0000 (+0200) Subject: Ensure air neighbors to liquids that can flow are enqueued for transformation X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=d0711821f3a4ec2d2e41c7baae37329972781ef3;p=zefram%2Fminetest%2Fminetest_engine.git Ensure air neighbors to liquids that can flow are enqueued for transformation --- diff --git a/src/map.cpp b/src/map.cpp index 6092538f..fa88e846 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1629,9 +1629,15 @@ void Map::transformLiquids(core::map & 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; }