using Pos = glm::tvec3<int>;
public:
- Chunk();
+ explicit Chunk(const BlockTypeRegistry &);
Chunk(Chunk &&);
Chunk &operator =(Chunk &&);
Block &BlockAt(const Block::Pos &pos) { return BlockAt(ToIndex(pos)); }
const Block &BlockAt(const Block::Pos &pos) const { return BlockAt(ToIndex(pos)); }
+ const BlockType &Type(const Block &b) const { return *types->Get(b.type); }
+
bool Intersection(
const Ray &,
const glm::mat4 &M,
const Pos &Position() const { return position; }
glm::mat4 Transform(const Pos &offset) const;
+ void CheckUpdate();
void Draw();
private:
- int VertexCount() const;
void Update();
private:
+ const BlockTypeRegistry *types;
std::vector<Block> blocks;
Model model;
Pos position;