class MapSector
{
public:
-
+
MapSector(Map *parent, v2s16 pos, IGameDef *gamedef);
virtual ~MapSector();
MapBlock * createBlankBlock(s16 y);
void insertBlock(MapBlock *block);
-
+
void deleteBlock(MapBlock *block);
-
+
void getBlocks(MapBlockVect &dest);
-
+
+ bool empty() const { return m_blocks.empty(); }
+
// Always false at the moment, because sector contains no metadata.
bool differs_from_disk;
protected:
-
+
// The pile of MapBlocks
- std::map<s16, MapBlock*> m_blocks;
+ UNORDERED_MAP<s16, MapBlock*> m_blocks;
Map *m_parent;
// Position on parent (in MapBlock widths)
v2s16 m_pos;
IGameDef *m_gamedef;
-
+
// Last-used block is cached here for quicker access.
- // Be sure to set this to NULL when the cached block is deleted
+ // Be sure to set this to NULL when the cached block is deleted
MapBlock *m_block_cache;
s16 m_block_cache_y;
-
+
/*
Private methods
*/
public:
ServerMapSector(Map *parent, v2s16 pos, IGameDef *gamedef);
~ServerMapSector();
-
+
u32 getId() const
{
return MAPSECTOR_SERVER;
*/
void serialize(std::ostream &os, u8 version);
-
+
static ServerMapSector* deSerialize(
std::istream &is,
Map *parent,
std::map<v2s16, MapSector*> & sectors,
IGameDef *gamedef
);
-
+
private:
};
public:
ClientMapSector(Map *parent, v2s16 pos, IGameDef *gamedef);
~ClientMapSector();
-
+
u32 getId() const
{
return MAPSECTOR_CLIENT;
private:
};
#endif
-
+
#endif