dat.h (1036B)
1 #ifndef DAT_H 2 #define DAT_H 3 4 #include "minecraft.h" 5 6 #define PI 3.14159265358979323846f 7 8 typedef struct { float x, y, z; } vec3; 9 typedef struct { float m[16]; } mat4; 10 11 typedef struct { 12 vec3 position; 13 vec3 front; 14 vec3 up; 15 vec3 right; 16 vec3 world_up; 17 float yaw; 18 float pitch; 19 float speed; 20 float sensitivity; 21 float fov; 22 } Camera; 23 24 #define FACE_BACK 0 25 #define FACE_FRONT 1 26 #define FACE_LEFT 2 27 #define FACE_RIGHT 3 28 #define FACE_BOTTOM 4 29 #define FACE_TOP 5 30 #define FACE_COUNT 6 31 32 #define BLOCK_AIR 0 33 #define BLOCK_GRASS 1 34 #define BLOCK_STONE 2 35 #define BLOCK_DIRT 3 36 #define BLOCK_COBBLESTONE 4 37 38 typedef struct { 39 unsigned int id; 40 char *texture_paths[FACE_COUNT]; 41 } Block_t; 42 43 typedef struct { 44 int blocks[CHUNK_SIZE][CHUNK_HEIGHT][CHUNK_SIZE]; 45 vec3 position; 46 } Chunk_t; 47 48 typedef struct { 49 Chunk_t *chunks[WORLD_SIZE][WORLD_SIZE]; 50 } World_t; 51 52 extern GLFWwindow *Window; 53 extern unsigned int Shader; 54 extern Camera camera; 55 extern Block_t blocks[]; 56 extern int block_count; 57 extern World_t World; 58 59 #endif /* DAT_H */