1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #include "ClientChunkProvider.h"
- ClientChunkProvider::ClientChunkProvider()
- {
- chunks = new Chunk*[chunkX * chunkZ];
- for(int x = 0; x < chunkX; x++)
- {
- for(int z = 0; z < chunkZ; z++)
- {
- chunks[x + z * chunkX] = new Chunk(x, z);
- }
- }
- }
- ClientChunkProvider::~ClientChunkProvider()
- {
- for(int i = 0; i < chunkX * chunkZ; i++)
- {
- delete chunks[i];
- }
- delete[] chunks;
- }
- Chunk* ClientChunkProvider::getChunk(int x, int z)
- {
- if(isChunkLoaded(x, z))
- {
- return chunks[x + z * chunkX];
- }
- return nullptr;
- }
-
- bool ClientChunkProvider::isChunkLoaded(int x, int z) const
- {
- return x >= 0 && x < chunkX && z >= 0 && z < chunkZ;
- }
- void ClientChunkProvider::forEachLoadedChunk(void* data, void (*fun) (Chunk&, void*)) const
- {
- for(int x = 0; x < chunkX; x++)
- {
- for(int z = 0; z < chunkZ; z++)
- {
- fun(*chunks[x + z * chunkX], data);
- }
- }
- }
-
|