projects
/
oweals
/
minetest.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow server-side teleporting
[oweals/minetest.git]
/
src
/
map.h
diff --git
a/src/map.h
b/src/map.h
index cb649addd009253c9f2c223326b910b2a47ff55f..413a7fc05453d37d9a86a3caec9ab8ada9e91d6f 100644
(file)
--- a/
src/map.h
+++ b/
src/map.h
@@
-31,6
+31,7
@@
with this program; if not, write to the Free Software Foundation, Inc.,
#include "mapblock_nodemod.h"
#include "constants.h"
#include "voxel.h"
#include "mapblock_nodemod.h"
#include "constants.h"
#include "voxel.h"
+#include "utility.h" // Needed for UniqueQueue, a member of Map
extern "C" {
#include "sqlite3.h"
extern "C" {
#include "sqlite3.h"
@@
-41,6
+42,7
@@
class ServerMapSector;
class ClientMapSector;
class MapBlock;
class NodeMetadata;
class ClientMapSector;
class MapBlock;
class NodeMetadata;
+class IGameDef;
namespace mapgen{
struct BlockMakeData;
namespace mapgen{
struct BlockMakeData;
@@
-109,7
+111,7
@@
class Map /*: public NodeContainer*/
{
public:
{
public:
- Map(std::ostream &dout);
+ Map(std::ostream &dout
, IGameDef *gamedef
);
virtual ~Map();
/*virtual u16 nodeContainerId() const
virtual ~Map();
/*virtual u16 nodeContainerId() const
@@
-157,6
+159,10
@@
public:
// Returns NULL if not found
MapBlock * getBlockNoCreateNoEx(v3s16 p);
// Returns NULL if not found
MapBlock * getBlockNoCreateNoEx(v3s16 p);
+ /* Server overrides */
+ virtual MapBlock * emergeBlock(v3s16 p, bool allow_generate=true)
+ { return getBlockNoCreateNoEx(p); }
+
// Returns InvalidPositionException if not found
bool isNodeUnderground(v3s16 p);
// Returns InvalidPositionException if not found
bool isNodeUnderground(v3s16 p);
@@
-205,7
+211,7
@@
public:
These handle lighting but not faces.
*/
void addNodeAndUpdate(v3s16 p, MapNode n,
These handle lighting but not faces.
*/
void addNodeAndUpdate(v3s16 p, MapNode n,
- core::map<v3s16, MapBlock*> &modified_blocks);
+ core::map<v3s16, MapBlock*> &modified_blocks
, std::string &player_name
);
void removeNodeAndUpdate(v3s16 p,
core::map<v3s16, MapBlock*> &modified_blocks);
void removeNodeAndUpdate(v3s16 p,
core::map<v3s16, MapBlock*> &modified_blocks);
@@
-285,7
+291,9
@@
public:
protected:
protected:
- std::ostream &m_dout;
+ std::ostream &m_dout; // A bit deprecated, could be removed
+
+ IGameDef *m_gamedef;
core::map<MapEventReceiver*, bool> m_event_receivers;
core::map<MapEventReceiver*, bool> m_event_receivers;
@@
-311,7
+319,7
@@
public:
/*
savedir: directory to which map data should be saved
*/
/*
savedir: directory to which map data should be saved
*/
- ServerMap(std::string savedir);
+ ServerMap(std::string savedir
, IGameDef *gamedef
);
~ServerMap();
s32 mapType() const
~ServerMap();
s32 mapType() const
@@
-379,6
+387,7
@@
public:
void verifyDatabase();
// Get an integer suitable for a block
static sqlite3_int64 getBlockAsInteger(const v3s16 pos);
void verifyDatabase();
// Get an integer suitable for a block
static sqlite3_int64 getBlockAsInteger(const v3s16 pos);
+ static v3s16 getIntegerAsBlock(sqlite3_int64 i);
// Returns true if the database file does not exist
bool loadFromFolders();
// Returns true if the database file does not exist
bool loadFromFolders();
@@
-390,6
+399,8
@@
public:
void save(bool only_changed);
//void loadAll();
void save(bool only_changed);
//void loadAll();
+ void listAllLoadableBlocks(core::list<v3s16> &dst);
+
// Saves map seed and possibly other stuff
void saveMapMeta();
void loadMapMeta();
// Saves map seed and possibly other stuff
void saveMapMeta();
void loadMapMeta();
@@
-428,9
+439,9
@@
public:
u64 getSeed(){ return m_seed; }
private:
u64 getSeed(){ return m_seed; }
private:
- // Seed used for all kinds of randomness
+ // Seed used for all kinds of randomness
in generation
u64 m_seed;
u64 m_seed;
-
+
std::string m_savedir;
bool m_map_saving_enabled;
std::string m_savedir;
bool m_map_saving_enabled;
@@
-454,6
+465,7
@@
private:
sqlite3 *m_database;
sqlite3_stmt *m_database_read;
sqlite3_stmt *m_database_write;
sqlite3 *m_database;
sqlite3_stmt *m_database_read;
sqlite3_stmt *m_database_write;
+ sqlite3_stmt *m_database_list;
};
/*
};
/*
@@
-488,6
+500,7
@@
struct MapDrawControl
};
class Client;
};
class Client;
+class ITextureSource;
/*
ClientMap
/*
ClientMap
@@
-500,6
+513,7
@@
class ClientMap : public Map, public scene::ISceneNode
public:
ClientMap(
Client *client,
public:
ClientMap(
Client *client,
+ IGameDef *gamedef,
MapDrawControl &control,
scene::ISceneNode* parent,
scene::ISceneManager* mgr,
MapDrawControl &control,
scene::ISceneNode* parent,
scene::ISceneManager* mgr,
@@
-575,7
+589,7
@@
public:
/*
Update the faces of the given block and blocks on the
/*
Update the faces of the given block and blocks on the
- leading edge.
+ leading edge
, without threading. Rarely used
.
*/
void updateMeshes(v3s16 blockpos, u32 daynight_ratio);
*/
void updateMeshes(v3s16 blockpos, u32 daynight_ratio);