#pragma once #include #include "BlockType.hpp" #include "../Mesh.hpp" #include "BlockSide.hpp" #define CHUNK_WIDTH 8 #define CHUNK_HEIGHT 8 namespace MC { class Chunk { public: Chunk() : m_blocks{} {}; void set(uint32_t x, uint32_t y, uint32_t z, BlockType type); Mesh mesh(); private: static std::array, 4> face_tex_coords(BlockType type, BlockSide side); struct BlockData { BlockType type; }; BlockData m_blocks[CHUNK_WIDTH][CHUNK_HEIGHT][CHUNK_WIDTH]; }; }