|
@@ -568,7 +568,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks, |
|
|
switch (liquid_type) { |
|
|
case LIQUID_SOURCE: |
|
|
liquid_level = LIQUID_LEVEL_SOURCE; |
|
|
liquid_kind = m_nodedef->getId(cf.liquid_alternative_flowing); |
|
|
liquid_kind = cf.liquid_alternative_flowing_id; |
|
|
break; |
|
|
case LIQUID_FLOWING: |
|
|
liquid_level = (n0.param2 & LIQUID_LEVEL_MASK); |
|
@@ -641,8 +641,8 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks, |
|
|
case LIQUID_SOURCE: |
|
|
// if this node is not (yet) of a liquid type, choose the first liquid type we encounter |
|
|
if (liquid_kind == CONTENT_AIR) |
|
|
liquid_kind = m_nodedef->getId(cfnb.liquid_alternative_flowing); |
|
|
if (m_nodedef->getId(cfnb.liquid_alternative_flowing) != liquid_kind) { |
|
|
liquid_kind = cfnb.liquid_alternative_flowing_id; |
|
|
if (cfnb.liquid_alternative_flowing_id != liquid_kind) { |
|
|
neutrals[num_neutrals++] = nb; |
|
|
} else { |
|
|
// Do not count bottom source, it will screw things up |
|
@@ -653,8 +653,8 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks, |
|
|
case LIQUID_FLOWING: |
|
|
// if this node is not (yet) of a liquid type, choose the first liquid type we encounter |
|
|
if (liquid_kind == CONTENT_AIR) |
|
|
liquid_kind = m_nodedef->getId(cfnb.liquid_alternative_flowing); |
|
|
if (m_nodedef->getId(cfnb.liquid_alternative_flowing) != liquid_kind) { |
|
|
liquid_kind = cfnb.liquid_alternative_flowing_id; |
|
|
if (cfnb.liquid_alternative_flowing_id != liquid_kind) { |
|
|
neutrals[num_neutrals++] = nb; |
|
|
} else { |
|
|
flows[num_flows++] = nb; |
|
@@ -680,7 +680,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks, |
|
|
// liquid_kind will be set to either the flowing alternative of the node (if it's a liquid) |
|
|
// or the flowing alternative of the first of the surrounding sources (if it's air), so |
|
|
// it's perfectly safe to use liquid_kind here to determine the new node content. |
|
|
new_node_content = m_nodedef->getId(m_nodedef->get(liquid_kind).liquid_alternative_source); |
|
|
new_node_content = m_nodedef->get(liquid_kind).liquid_alternative_source_id; |
|
|
} else if (num_sources >= 1 && sources[0].t != NEIGHBOR_LOWER) { |
|
|
// liquid_kind is set properly, see above |
|
|
max_node_level = new_node_level = LIQUID_LEVEL_MAX; |
|
|