#ifndef CHUNK_H #define CHUNK_H #include #include "math.hpp" #include #include #include "block.hpp" struct ChunkIndex{ int x; int y; int z; ChunkIndex(); ChunkIndex(int ,int , int); ChunkIndex(Vector3f pos); ChunkIndex(Vector3i pos); bool operator!=(ChunkIndex); std::ostream& operator<<(std::ostream &out); void Write(FILE* f); void Read(FILE* f); }; class Chunk{ private: unsigned int EBO,VBO,VAO; std::vector vertices; std::vector indices; char blocks[16*16*16]; public: bool checkInvalid(); Chunk(); void Draw(int texture); ChunkIndex index; void setBlock(int x,int y,int z,BlockID block); BlockID getBlock(int x,int y,int z); void Generate(); void createMesh(); void deleteMesh(); bool read(FILE* f,ChunkIndex chunkIndex); bool Write(FILE* f,ChunkIndex chunkIndex); }; void addFaceIndicesAndVertices(int block,int face, Vector3f pos, std::vector &indices,std::vector &vertices); #endif