]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/map.h
Fix unnecessary exception use in Map::isNodeUnderground
[dragonfireclient.git] / src / map.h
index cd85e1827ee99bf3830d6fd797ab35045ce23356..5c0a01d2ecc943e7b94eef32f2d9c654c88c19bf 100644 (file)
--- a/src/map.h
+++ b/src/map.h
@@ -63,8 +63,7 @@ enum MapEditEventType{
        MEET_REMOVENODE,
        // Node swapped (changed without metadata change)
        MEET_SWAPNODE,
-       // Node metadata of block changed (not knowing which node exactly)
-       // p stores block coordinate
+       // Node metadata changed
        MEET_BLOCK_NODE_METADATA_CHANGED,
        // Anything else (modified_blocks are set unsent)
        MEET_OTHER
@@ -76,7 +75,7 @@ struct MapEditEvent
        v3s16 p;
        MapNode n = CONTENT_AIR;
        std::set<v3s16> modified_blocks;
-       u16 already_known_by_peer = 0;
+       bool is_private_change = false;
 
        MapEditEvent() = default;
 
@@ -87,6 +86,7 @@ struct MapEditEvent
                event->p = p;
                event->n = n;
                event->modified_blocks = modified_blocks;
+               event->is_private_change = is_private_change;
                return event;
        }
 
@@ -178,7 +178,7 @@ class Map /*: public NodeContainer*/
        virtual MapBlock * emergeBlock(v3s16 p, bool create_blank=true)
        { return getBlockNoCreateNoEx(p); }
 
-       inline INodeDefManager * getNodeDefManager() { return m_nodedef; }
+       inline const NodeDefManager * getNodeDefManager() { return m_nodedef; }
 
        // Returns InvalidPositionException if not found
        bool isNodeUnderground(v3s16 p);
@@ -191,7 +191,7 @@ class Map /*: public NodeContainer*/
        // Returns a CONTENT_IGNORE node if not found
        // If is_valid_position is not NULL then this will be set to true if the
        // position is valid, otherwise false
-       MapNode getNodeNoEx(v3s16 p, bool *is_valid_position = NULL);
+       MapNode getNode(v3s16 p, bool *is_valid_position = NULL);
 
        /*
                These handle lighting but not faces.
@@ -289,7 +289,6 @@ class Map /*: public NodeContainer*/
        */
 
        void transforming_liquid_add(v3s16 p);
-       s32 transforming_liquid_size();
 
        bool isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes);
 protected:
@@ -311,7 +310,7 @@ class Map /*: public NodeContainer*/
        UniqueQueue<v3s16> m_transforming_liquid;
 
        // This stores the properties of the nodes on the map.
-       INodeDefManager *m_nodedef;
+       const NodeDefManager *m_nodedef;
 
        bool isOccluded(v3s16 p0, v3s16 p1, float step, float stepfac,
                        float start_off, float end_off, u32 needed_count);
@@ -351,8 +350,6 @@ class ServerMap : public Map
        */
        MapSector *createSector(v2s16 p);
 
-       bool saoPositionOverLimit(const v3f &p);
-
        /*
                Blocks are generated by using these and makeBlock().
        */
@@ -392,7 +389,7 @@ class ServerMap : public Map
                Misc. helper functions for fiddling with directory and file
                names when saving
        */
-       void createDirs(std::string path);
+       void createDirs(const std::string &path);
        // returns something like "map/sectors/xxxxxxxx"
        std::string getSectorDir(v2s16 pos, int layout = 2);
        // dirname: final directory name
@@ -472,6 +469,7 @@ class ServerMap : public Map
        */
        bool m_map_metadata_changed = true;
        MapDatabase *dbase = nullptr;
+       MapDatabase *dbase_ro = nullptr;
 };