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,
// Server implements this.
// Client leaves it as no-op.
- virtual bool saveBlock(MapBlock *block){ return false; };
+ virtual bool saveBlock(MapBlock *block) { return false; };
/*
Updates usage timers and unloads unused blocks and sectors.
// Returns true if sector now resides in memory
//bool deFlushSector(v2s16 p2d);
+ bool saveBlock(MapBlock *block, Database *db);
bool saveBlock(MapBlock *block);
// This will generate a sector with getSector if not found.
void loadBlock(std::string sectordir, std::string blockfile, MapSector *sector, bool save_after_load=false);
// 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 blitBackAll(std::map<v3s16, MapBlock*> * modified_blocks,
bool overwrite_generated = true);
+ bool m_is_dirty;
+
protected:
bool m_create_area;
Map *m_map;
};
#endif
-