#ifndef BLOCKSTORAGE_H #define BLOCKSTORAGE_H #include "common/world/BlockMap.h" #include "memory/UniquePointer.h" #include "utils/List.h" class BlockStorage final { int size; int height; int sizeMask; List> maps; static constexpr int SEGMENT_BITS = 4; static constexpr int SEGMENT_MASK = (1 << SEGMENT_BITS) - 1; public: static constexpr int SEGMENT = 1 << SEGMENT_BITS; BlockStorage(int sizeBits, int heightBits); BlockId get(int x, int y, int z) const; void set(int x, int y, int z, BlockId id); int getSize() const; int getHeight() const; }; #endif