Add ObjectRef:punch and ObjectRef:right_click to Lua API
[oweals/minetest.git] / src / map.cpp
index 0de534f4d99c2334e1ad94a397be0047557b9cd1..8bdc2ad4c97f341e8bffd3faa737cfccdcad97de 100644 (file)
@@ -214,7 +214,7 @@ void Map::setNode(v3s16 p, MapNode & n)
                                <<" while trying to replace \""
                                <<m_gamedef->ndef()->get(block->getNodeNoCheck(relpos)).name
                                <<"\" at "<<PP(p)<<" (block "<<PP(blockpos)<<")"<<std::endl;
-               debug_stacks_print_to(errorstream);
+               debug_stacks_print_to(infostream);
                return;
        }
        block->setNodeNoCheck(relpos, n);
@@ -1007,8 +1007,13 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
        std::string metadata_name = nodemgr->get(n).metadata_name;
        if(metadata_name != ""){
                NodeMetadata *meta = NodeMetadata::create(metadata_name, m_gamedef);
-               meta->setOwner(player_name);
-               setNodeMetadata(p, meta);
+               if(!meta){
+                       errorstream<<"Failed to create node metadata \""
+                                       <<metadata_name<<"\""<<std::endl;
+               } else {
+                       meta->setOwner(player_name);
+                       setNodeMetadata(p, meta);
+               }
        }
 
        /*
@@ -1678,7 +1683,9 @@ void Map::transformLiquids(core::map<v3s16, MapBlock*> & modified_blocks)
                                        if (nodemgr->getId(nodemgr->get(nb.n).liquid_alternative_flowing) != liquid_kind) {
                                                neutrals[num_neutrals++] = nb;
                                        } else {
-                                               sources[num_sources++] = nb;
+                                               // Do not count bottom source, it will screw things up
+                                               if(dirs[i].Y != -1)
+                                                       sources[num_sources++] = nb;
                                        }
                                        break;
                                case LIQUID_FLOWING: