#pragma once #include #include #include #include #include "ChunkMap.h" class Dimension; class NetworkMessage; class Entity; class DimensionMap : public Framework::ReferenceCounter { private: Framework::RCTrie* chunks; Framework::Critical cs; Framework::Array observers; int dimensionId; ChunkMap* load(Framework::Punkt chunkCenter); public: DimensionMap(int dimensionId); ~DimensionMap(); void api(Framework::InMemoryBuffer* zRequest, NetworkMessage* zResponse, Entity* zSource, Dimension* zDimension); void loadMap(char* addr, int addrLen, Chunk* zChunk); void onMapUpdated(char* addr, int addrLen); void saveMap(char* addr, int addrLen); void removeMap(char* addr, int addrLen); ChunkMap* getMap(char* addr, int addrLen, Framework::Punkt chunkCenter); };