Chunk.cpp 668 B

1234567891011121314151617181920212223242526
  1. #include "common/world/Chunk.h"
  2. #include "common/block/BlockRegistry.h"
  3. Chunk::Chunk()
  4. {
  5. for(u32 y = 0; y < HEIGHT; y++)
  6. {
  7. for(u32 x = 0; x < CHUNK_PARTION_SIZE; x++)
  8. {
  9. for(u32 z = 0; z < CHUNK_PARTION_SIZE; z++)
  10. {
  11. blocks[y][x][z] = 0;
  12. }
  13. }
  14. }
  15. }
  16. const Block& Chunk::getBlock(u32 x, u32 y, u32 z) const
  17. {
  18. return BlockRegistry::getBlock(blocks[y & BITMASK_HEIGHT][x & CHUNK_PARTION_SIZE][z & CHUNK_PARTION_SIZE]);
  19. }
  20. void Chunk::setBlock(u32 x, u32 y, u32 z, const Block& block)
  21. {
  22. blocks[y & BITMASK_HEIGHT][x & CHUNK_PARTION_SIZE][z & CHUNK_PARTION_SIZE] = block.getId();
  23. }