diff options
author | madmaxoft <github@xoft.cz> | 2014-01-12 10:04:16 +0100 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-01-12 10:04:16 +0100 |
commit | 180b9b90993870532a8daa2ee6498005b6c3bf49 (patch) | |
tree | dac846b760b6f5fd294fbd771975dd55b0856c0d /src/World.h | |
parent | Fixed Linux configuration. (diff) | |
parent | Disabled a useless MSVC warning in Bindings.cpp. (diff) | |
download | cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.tar cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.tar.gz cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.tar.bz2 cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.tar.lz cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.tar.xz cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.tar.zst cuberite-180b9b90993870532a8daa2ee6498005b6c3bf49.zip |
Diffstat (limited to 'src/World.h')
-rw-r--r-- | src/World.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/World.h b/src/World.h index c067252d9..b61708d03 100644 --- a/src/World.h +++ b/src/World.h @@ -78,6 +78,7 @@ public: class cTask { public: + virtual ~cTask(){}; virtual void Run(cWorld & a_World) = 0; } ; @@ -145,7 +146,7 @@ public: // Broadcast respective packets to all clients of the chunk where the event is taking place // (Please keep these alpha-sorted) void BroadcastAttachEntity (const cEntity & a_Entity, const cEntity * a_Vehicle); - void BroadcastBlockAction (int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType, const cClientHandle * a_Exclude = NULL); + void BroadcastBlockAction (int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType, const cClientHandle * a_Exclude = NULL); // tolua_export void BroadcastBlockBreakAnimation(int a_EntityID, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Stage, const cClientHandle * a_Exclude = NULL); void BroadcastBlockEntity (int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude = NULL); ///< If there is a block entity at the specified coods, sends it to all clients except a_Exclude void BroadcastChat (const AString & a_Message, const cClientHandle * a_Exclude = NULL); // tolua_export @@ -635,6 +636,27 @@ private: virtual void Execute(void) override; } ; + + /** Implementation of the callbacks that the ChunkGenerator uses to store new chunks and interface to plugins */ + class cChunkGeneratorCallbacks : + public cChunkGenerator::cChunkSink, + public cChunkGenerator::cPluginInterface + { + cWorld * m_World; + + // cChunkSink overrides: + virtual void OnChunkGenerated (cChunkDesc & a_ChunkDesc) override; + virtual bool IsChunkValid (int a_ChunkX, int a_ChunkZ) override; + virtual bool HasChunkAnyClients(int a_ChunkX, int a_ChunkZ) override; + + // cPluginInterface overrides: + virtual void CallHookChunkGenerating(cChunkDesc & a_ChunkDesc) override; + virtual void CallHookChunkGenerated (cChunkDesc & a_ChunkDesc) override; + + public: + cChunkGeneratorCallbacks(cWorld & a_World); + } ; + AString m_WorldName; AString m_IniFileName; @@ -713,6 +735,9 @@ private: cChunkGenerator m_Generator; + /** The callbacks that the ChunkGenerator uses to store new chunks and interface to plugins */ + cChunkGeneratorCallbacks m_GeneratorCallbacks; + cChunkSender m_ChunkSender; cLightingThread m_Lighting; cTickThread m_TickThread; |