(idx / Width()) % Height() == Height() - 1; // high Y plane
}
+ bool IsSurface(int index) const { return IsSurface(ToPos(index)); }
+ bool IsSurface(const Block::Pos &pos) const { return IsSurface(Pos(pos)); }
+ bool IsSurface(const Pos &pos) const;
+
void SetNeighbor(Chunk &);
bool HasNeighbor(Block::Face f) const { return neighbor[f]; }
Chunk &GetNeighbor(Block::Face f) { return *neighbor[f]; }
class ChunkLoader {
public:
- ChunkLoader(const BlockTypeRegistry &, const Generator &);
+ struct Config {
+ int load_dist = 6;
+ int unload_dist = 8;
+ };
+
+ ChunkLoader(const Config &, const BlockTypeRegistry &, const Generator &);
void Generate(const Chunk::Pos &from, const Chunk::Pos &to);
+ void GenerateSurrounding(const Chunk::Pos &);
std::list<Chunk> &Loaded() { return loaded; }