void Client::setHighlighted(v3s16 pos, bool show_highlighted) { m_show_highlighted = show_highlighted; v3s16 old_highlighted_pos = m_highlighted_pos; m_highlighted_pos = pos; addUpdateMeshTaskForNode(old_highlighted_pos, false, true); addUpdateMeshTaskForNode(m_highlighted_pos, false, true); }
void Client::setCrack(int level, v3s16 pos) { int old_crack_level = m_crack_level; v3s16 old_crack_pos = m_crack_pos; m_crack_level = level; m_crack_pos = pos; if(old_crack_level >= 0 && (level < 0 || pos != old_crack_pos)) { // remove old crack addUpdateMeshTaskForNode(old_crack_pos, false, true); } if(level >= 0 && (old_crack_level < 0 || pos != old_crack_pos)) { // add new crack addUpdateMeshTaskForNode(pos, false, true); } }
void Client::addNode(v3s16 p, MapNode n, bool remove_metadata, int fast) { //TimeTaker timer1("Client::addNode()"); std::map<v3s16, MapBlock*> modified_blocks; try { //TimeTaker timer3("Client::addNode(): addNodeAndUpdate"); m_env.getMap().addNodeAndUpdate(p, n, modified_blocks, remove_metadata, fast ? fast : 2); } catch(InvalidPositionException &e) { } addUpdateMeshTaskForNode(p, true); for(std::map<v3s16, MapBlock * >::iterator i = modified_blocks.begin(); i != modified_blocks.end(); ++i) { addUpdateMeshTaskWithEdge(i->first, true); } }