Chunk.h 663 B

12345678910111213141516171819202122232425262728
  1. #ifndef CHUNK_H
  2. #define CHUNK_H
  3. #include "common/block/Block.h"
  4. #include "common/utils/Types.h"
  5. class Chunk final {
  6. public:
  7. Chunk();
  8. void setBlock(u32 x, u32 y, u32 z, const Block& block);
  9. const Block& getBlock(u32 x, u32 y, u32 z) const;
  10. static const u32 CHUNK_BIT_SIZE = 4;
  11. private:
  12. static const u32 CHUNK_PARTION_SIZE = 1 << CHUNK_BIT_SIZE;
  13. static const u32 HEIGHT_PARTIONS = 16;
  14. static const u32 HEIGHT = CHUNK_PARTION_SIZE * HEIGHT_PARTIONS;
  15. static const u32 BITMASK = CHUNK_PARTION_SIZE - 1;
  16. static const u32 BITMASK_HEIGHT = HEIGHT - 1;
  17. u16 blocks[HEIGHT][CHUNK_PARTION_SIZE][CHUNK_PARTION_SIZE];
  18. };
  19. #endif