X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmap.h;h=da55fb432234f42b119262ddaa3d6e35dc3e81df;hb=e8fd1ce62331146fae0e98ce4a94d3720f308abf;hp=232a25ac72fb9a10a08c6d5b91b296d8a8dae68c;hpb=6ada090bb05d9e6d5961a59f33ff6e104b44061a;p=dragonfireclient.git diff --git a/src/map.h b/src/map.h index 232a25ac7..da55fb432 100644 --- a/src/map.h +++ b/src/map.h @@ -79,18 +79,7 @@ struct MapEditEvent MapEditEvent() = default; - MapEditEvent * clone() - { - MapEditEvent *event = new MapEditEvent(); - event->type = type; - event->p = p; - event->n = n; - event->modified_blocks = modified_blocks; - event->is_private_change = is_private_change; - return event; - } - - VoxelArea getArea() + VoxelArea getArea() const { switch(type){ case MEET_ADDNODE: @@ -125,7 +114,7 @@ class MapEventReceiver { public: // event shall be deleted by caller after the call. - virtual void onMapEditEvent(MapEditEvent *event) = 0; + virtual void onMapEditEvent(const MapEditEvent &event) = 0; }; class Map /*: public NodeContainer*/ @@ -152,7 +141,7 @@ class Map /*: public NodeContainer*/ void addEventReceiver(MapEventReceiver *event_receiver); void removeEventReceiver(MapEventReceiver *event_receiver); // event shall be deleted by caller after the call. - void dispatchEvent(MapEditEvent *event); + void dispatchEvent(const MapEditEvent &event); // On failure returns NULL MapSector * getSectorNoGenerateNoLock(v2s16 p2d); @@ -310,9 +299,11 @@ class Map /*: public NodeContainer*/ // This stores the properties of the nodes on the map. const NodeDefManager *m_nodedef; + bool determineAdditionalOcclusionCheck(const v3s16 &pos_camera, + const core::aabbox3d &block_bounds, v3s16 &check); bool isOccluded(const v3s16 &pos_camera, const v3s16 &pos_target, - const core::aabbox3d &block_bounds, float step, float stepfac, - float offset, u32 needed_count); + float step, float stepfac, float start_offset, float end_offset, + u32 needed_count); private: f32 m_transforming_liquid_loop_count_multiplier = 1.0f; @@ -389,21 +380,12 @@ class ServerMap : public Map names when saving */ void createDirs(const std::string &path); - // returns something like "map/sectors/xxxxxxxx" - std::string getSectorDir(v2s16 pos, int layout = 2); - // dirname: final directory name - v2s16 getSectorPos(const std::string &dirname); - v3s16 getBlockPos(const std::string §ordir, const std::string &blockfile); - static std::string getBlockFilename(v3s16 p); /* Database functions */ static MapDatabase *createDatabase(const std::string &name, const std::string &savedir, Settings &conf); - // Returns true if the database file does not exist - bool loadFromFolders(); - // Call these before and after saving of blocks void beginSave(); void endSave(); @@ -416,9 +398,6 @@ class ServerMap : public Map bool saveBlock(MapBlock *block); static bool saveBlock(MapBlock *block, MapDatabase *db); - // This will generate a sector with getSector if not found. - void loadBlock(const std::string §ordir, const std::string &blockfile, - MapSector *sector, bool save_after_load=false); MapBlock* loadBlock(v3s16 p); // Database version void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false);