#include "common_irrlicht.h"
#include "mapnode.h"
-#include "mapblock_nodemod.h"
#include "constants.h"
#include "voxel.h"
+#include "utility.h" // Needed for UniqueQueue, a member of Map
+#include "modifiedstate.h"
extern "C" {
#include "sqlite3.h"
These handle lighting but not faces.
*/
void addNodeAndUpdate(v3s16 p, MapNode n,
- core::map<v3s16, MapBlock*> &modified_blocks, std::string &player_name);
+ core::map<v3s16, MapBlock*> &modified_blocks);
void removeNodeAndUpdate(v3s16 p,
core::map<v3s16, MapBlock*> &modified_blocks);
virtual void beginSave() {return;};
virtual void endSave() {return;};
- virtual void save(bool only_changed){assert(0);};
+ virtual void save(ModifiedState save_level){assert(0);};
// Server implements this.
// Client leaves it as no-op.
void beginSave();
void endSave();
- void save(bool only_changed);
+ void save(ModifiedState save_level);
//void loadAll();
void listAllLoadableBlocks(core::list<v3s16> &dst);
void renderPostFx();
- /*
- Methods for setting temporary modifications to nodes for
- drawing.
-
- Returns true if something changed.
-
- All blocks whose mesh could have been changed are inserted
- to affected_blocks.
- */
- bool setTempMod(v3s16 p, NodeMod mod,
- core::map<v3s16, MapBlock*> *affected_blocks=NULL);
- bool clearTempMod(v3s16 p,
- core::map<v3s16, MapBlock*> *affected_blocks=NULL);
- // Efficient implementation needs a cache of TempMods
- //void clearTempMods();
-
- void expireMeshes(bool only_daynight_diffed);
-
- /*
- Update the faces of the given block and blocks on the
- leading edge, without threading. Rarely used.
- */
- void updateMeshes(v3s16 blockpos, u32 daynight_ratio,
- ITextureSource *tsrc);
-
- // Update meshes that touch the node
- //void updateNodeMeshes(v3s16 nodepos, u32 daynight_ratio);
-
// For debug printing
virtual void PrintInfo(std::ostream &out);