#include "client/rendering/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); } } }