diff options
Diffstat (limited to '')
-rw-r--r-- | src/Simulator/Simulator.inc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/Simulator/Simulator.inc b/src/Simulator/Simulator.inc new file mode 100644 index 000000000..1599ea60f --- /dev/null +++ b/src/Simulator/Simulator.inc @@ -0,0 +1,49 @@ + + +#include "Simulator.h" +#include "../World.h" +#include "../BlockID.h" +#include "../Defines.h" +#include "../Chunk.h" + + + + +template <class ChunkType, class WorldType> +cSimulator<ChunkType, WorldType>::cSimulator(WorldType & a_World) + : m_World(a_World) +{ +} + + + + +template <class ChunkType, class WorldType> +cSimulator<ChunkType, WorldType>::~cSimulator() +{ +} + + + + +template <class ChunkType, class WorldType> +void cSimulator<ChunkType, WorldType>::WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ, ChunkType * a_Chunk) +{ + AddBlock(a_BlockX, a_BlockY, a_BlockZ, a_Chunk); + AddBlock(a_BlockX - 1, a_BlockY, a_BlockZ, a_Chunk->GetNeighborChunk(a_BlockX - 1, a_BlockZ)); + AddBlock(a_BlockX + 1, a_BlockY, a_BlockZ, a_Chunk->GetNeighborChunk(a_BlockX + 1, a_BlockZ)); + AddBlock(a_BlockX, a_BlockY, a_BlockZ - 1, a_Chunk->GetNeighborChunk(a_BlockX, a_BlockZ - 1)); + AddBlock(a_BlockX, a_BlockY, a_BlockZ + 1, a_Chunk->GetNeighborChunk(a_BlockX, a_BlockZ + 1)); + if (a_BlockY > 0) + { + AddBlock(a_BlockX, a_BlockY - 1, a_BlockZ, a_Chunk); + } + if (a_BlockY < cChunkDef::Height - 1) + { + AddBlock(a_BlockX, a_BlockY + 1, a_BlockZ, a_Chunk); + } +} + + + + |