123456789101112131415161718192021222324252627282930 |
- #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<UniquePointer<BlockMap>> 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
|