diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-11-28 13:48:33 +0100 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-11-28 13:48:33 +0100 |
commit | eb6aca8b4a67ef55108231e71ff29a18a29bf5ae (patch) | |
tree | f891914d25cae2cdaa24392381436a287340651e /src/client/render | |
parent | 8de51dae97aa2fe6ea02e4cf437bfe2b2a38eb06 (diff) | |
parent | f1d72d212a0661588be27003069abf4bd8092e55 (diff) | |
download | dragonfireclient-eb6aca8b4a67ef55108231e71ff29a18a29bf5ae.tar.xz |
Merged Minetest
Diffstat (limited to 'src/client/render')
-rw-r--r-- | src/client/render/core.cpp | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp index 1fad4af52..44e3ed744 100644 --- a/src/client/render/core.cpp +++ b/src/client/render/core.cpp @@ -123,34 +123,30 @@ void RenderingCore::drawTracersAndESP() } if (draw_node_esp || draw_node_tracers) { Map &map = env.getMap(); - std::map<v2s16, MapSector*> *sectors = map.getSectorsPtr(); - - for (auto §or_it : *sectors) { - MapSector *sector = sector_it.second; - MapBlockVect blocks; - sector->getBlocks(blocks); - for (MapBlock *block : blocks) { - if (! block->mesh) - continue; - for (v3s16 p : block->mesh->esp_nodes) { - v3f pos = intToFloat(p, BS) - camera_offset; - MapNode node = map.getNode(p); - std::vector<aabb3f> boxes; - node.getSelectionBoxes(client->getNodeDefManager(), &boxes, node.getNeighbors(p, &map)); - video::SColor color = client->getNodeDefManager()->get(node).minimap_color; - - for (aabb3f box : boxes) { - box.MinEdge += pos; - box.MaxEdge += pos; - if (draw_node_esp) - driver->draw3DBox(box, color); - if (draw_node_tracers) - driver->draw3DLine(eye_pos, box.getCenter(), color); - } + + std::vector<v3s16> positions; + map.listAllLoadedBlocks(positions); + + for (v3s16 blockp : positions) { + MapBlock *block = map.getBlockNoCreate(blockp); + if (! block->mesh) + continue; + for (v3s16 p : block->mesh->esp_nodes) { + v3f pos = intToFloat(p, BS) - camera_offset; + MapNode node = map.getNode(p); + std::vector<aabb3f> boxes; + node.getSelectionBoxes(client->getNodeDefManager(), &boxes, node.getNeighbors(p, &map)); + video::SColor color = client->getNodeDefManager()->get(node).minimap_color; + for (aabb3f box : boxes) { + box.MinEdge += pos; + box.MaxEdge += pos; + if (draw_node_esp) + driver->draw3DBox(box, color); + if (draw_node_tracers) + driver->draw3DLine(eye_pos, box.getCenter(), color); } } } - } driver->setMaterial(oldmaterial); |