minecraft

minecraft
git clone git://git.evenfri.pw/minecraft.git
Log | Files | Refs | README

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 */