#include "Chunk.hpp" #include "BlockSide.hpp" namespace MC::World { void Chunk::set(uint32_t x, uint32_t y, uint32_t z, BlockData data) { m_blocks.at(pos(x, y, z)) = data; } Chunk::BlockData Chunk::get(uint32_t x, uint32_t y, uint32_t z) const { return m_blocks.at(pos(x, y, z)); } bool Chunk::is_empty(uint32_t x, uint32_t y, uint32_t z) const { return get(x, y, z).empty(); } Vector<3> Chunk::position() const { return m_position; } bool Chunk::is_valid_position(uint32_t x, uint32_t y, uint32_t z) { return x < Width && y < Height && z < Width; } uint64_t Chunk::pos(uint32_t x, uint32_t y, uint32_t z) { return x + Width * y + Width * Height * z; } }