class MapBlock;
class NodeMetadata;
class IGameDef;
-class IRollbackReportSink;
+class IRollbackManager;
class EmergeManager;
class ServerEnvironment;
struct BlockMakeData;
bool isValidPosition(v3s16 p);
- // throws InvalidPositionException if not found
- MapNode getNode(v3s16 p);
-
// throws InvalidPositionException if not found
void setNode(v3s16 p, MapNode & n);
// Returns a CONTENT_IGNORE node if not found
- MapNode getNodeNoEx(v3s16 p);
+ // 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);
void unspreadLight(enum LightBank bank,
std::map<v3s16, u8> & from_nodes,
// 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;
};
/*
// Database version
void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false);
+ void updateVManip(v3s16 pos);
+
// For debug printing
virtual void PrintInfo(std::ostream &out);
void setMap(Map *map)
{m_map = map;}
+ void initializeBlank(v3s16 pmin, v3s16 pmax);
+
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;
protected:
bool m_create_area;