MapEditEvent():
type(MEET_OTHER),
+ n(CONTENT_AIR),
already_known_by_peer(0)
- {
- }
+ { }
MapEditEvent * clone()
{
MapBlock * getBlockNoCreateNoEx(v3s16 p);
/* Server overrides */
- virtual MapBlock * emergeBlock(v3s16 p, bool allow_generate=true)
+ virtual MapBlock * emergeBlock(v3s16 p, bool create_blank=true)
{ return getBlockNoCreateNoEx(p); }
// Returns InvalidPositionException if not found
virtual void save(ModifiedState save_level){assert(0);};
- // Server implements this.
- // Client leaves it as no-op.
+ // Server implements these.
+ // Client leaves them as no-op.
virtual bool saveBlock(MapBlock *block) { return false; };
+ virtual bool deleteBlock(v3s16 blockpos) { return false; };
/*
Updates usage timers and unloads unused blocks and sectors.
Saves modified blocks before unloading on MAPTYPE_SERVER.
*/
void timerUpdate(float dtime, float unload_timeout,
- std::list<v3s16> *unloaded_blocks=NULL);
+ std::vector<v3s16> *unloaded_blocks=NULL);
/*
Unloads all blocks with a zero refCount().
Saves modified blocks before unloading on MAPTYPE_SERVER.
*/
- void unloadUnreferencedBlocks(std::list<v3s16> *unloaded_blocks=NULL);
+ void unloadUnreferencedBlocks(std::vector<v3s16> *unloaded_blocks=NULL);
// Deletes sectors and their blocks from memory
// Takes cache into account
// Queued transforming water nodes
UniqueQueue<v3s16> m_transforming_liquid;
+
+private:
+ f32 m_transforming_liquid_loop_count_multiplier;
+ u32 m_unprocessed_count;
+ u32 m_inc_trending_up_start_time; // milliseconds
+ bool m_queue_size_timer_started;
};
/*
- Create blank filled with CONTENT_IGNORE
*/
- MapBlock * emergeBlock(v3s16 p, bool create_blank=true);
+ MapBlock *emergeBlock(v3s16 p, bool create_blank=true);
/*
Try to get a block.
void endSave();
void save(ModifiedState save_level);
- void listAllLoadableBlocks(std::list<v3s16> &dst);
- void listAllLoadedBlocks(std::list<v3s16> &dst);
+ void listAllLoadableBlocks(std::vector<v3s16> &dst);
+ void listAllLoadedBlocks(std::vector<v3s16> &dst);
// Saves map seed and possibly other stuff
void saveMapMeta();
void loadMapMeta();
// Database version
void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false);
+ bool deleteBlock(v3s16 blockpos);
+
void updateVManip(v3s16 pos);
// For debug printing
#define VMANIP_BLOCK_DATA_INEXIST 1
#define VMANIP_BLOCK_CONTAINS_CIGNORE 2
-class ManualMapVoxelManipulator : public VoxelManipulator
+class MMVManip : public VoxelManipulator
{
public:
- ManualMapVoxelManipulator(Map *map);
- virtual ~ManualMapVoxelManipulator();
+ MMVManip(Map *map);
+ virtual ~MMVManip();
virtual void clear()
{
{m_map = map;}
void initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max,
- bool load_if_inexistent = true);
+ bool load_if_inexistent = true);
// This is much faster with big chunks of generated data
void blitBackAll(std::map<v3s16, MapBlock*> * modified_blocks,
- bool overwrite_generated = true);
+ bool overwrite_generated = true);
bool m_is_dirty;