void Unlink();
void Relink();
- // check if block at given index is completely enclosed (and therefore invisible)
- bool Obstructed(int idx) const;
+ // check which faces of a block at given index are obstructed (and therefore invisible)
+ Block::FaceSet Obstructed(int idx) const;
void Invalidate() { dirty = true; }
const Block &BlockAt(const Block::Pos &pos) const { return BlockAt(ToIndex(pos)); }
const Block &BlockAt(const Pos &pos) const { return BlockAt(ToIndex(pos)); }
- const Block *FindNext(const Pos &pos, Block::Face face) const;
- const Block *FindNext(const Block::Pos &pos, Block::Face face) const { return FindNext(Pos(pos), face); }
- const Block *FindNext(int index, Block::Face face) const { return FindNext(ToPos(index), face); }
-
const BlockType &Type(const Block &b) const { return *types->Get(b.type); }
void SetLight(int index, int level);
int GetLight(const Pos &pos) const { return GetLight(ToIndex(pos)); }
int GetLight(const Block::Pos &pos) const { return GetLight(ToIndex(pos)); }
- float GetVertexLight(int index, const BlockModel::Position &, const BlockModel::Normal &) const;
+ float GetVertexLight(int index, const BlockModel::Position &, const Model::Normal &) const;
bool Intersection(
const Ray &ray,