Liquid flow: Prevent water spreading on ignore

This commit is contained in:
paramat 2016-01-17 05:11:35 +00:00
parent 882a89d65a
commit 0459eca8eb

@ -1732,11 +1732,14 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks)
if (nb.t != NEIGHBOR_UPPER && liquid_type != LIQUID_NONE) if (nb.t != NEIGHBOR_UPPER && liquid_type != LIQUID_NONE)
m_transforming_liquid.push_back(npos); m_transforming_liquid.push_back(npos);
// if the current node happens to be a flowing node, it will start to flow down here. // 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; flowing_down = true;
}
} else { } else {
neutrals[num_neutrals++] = nb; neutrals[num_neutrals++] = nb;
// If neutral below is ignore prevent water spreading outwards
if (nb.t == NEIGHBOR_LOWER &&
nb.n.getContent() == CONTENT_IGNORE)
flowing_down = true;
} }
break; break;
case LIQUID_SOURCE: case LIQUID_SOURCE: