]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/client/client_terrain.h
Implement node breaking
[dragonblocks_alpha.git] / src / client / client_terrain.h
index f1e1355f9d7b28baaf9c6d780422b8fac7441fbc..fc1c8204e048b5c343cce689f54db5d2e4fb78a2 100644 (file)
@@ -18,17 +18,19 @@ typedef struct {
        u64 sync;                // keep track of when a chunk was synced the last time (used to detect when a chunk got out of and then back into load distance)
        Model *model;            // generated by terrain_gfx
        bool empty;              // whether the chunk is all air
+       bool has_model;          // whether the chunk got a model before
+       bool depends[6];         // neighbours it depends on
 } TerrainChunkMeta;
 
 extern Terrain *client_terrain;
 
-void client_terrain_init();                              // called on startup
-void client_terrain_deinit();                            // called on shutdown
-void client_terrain_set_load_distance(u32 dist);         // update load distance
-u32 client_terrain_get_load_distance();                  // return load distance
-void client_terrain_start();                             // start meshgen and sync threads
-void client_terrain_stop();                              // stop meshgen and sync threads
-void client_terrain_chunk_received(TerrainChunk *chunk); // called when a chunk was recieved from server
-void client_terrain_meshgen_task(TerrainChunk *chunk);   // enqueue chunk to mesh update queue
+void client_terrain_init();                                          // called on startup
+void client_terrain_deinit();                                        // called on shutdown
+void client_terrain_set_load_distance(u32 dist);                     // update load distance
+u32 client_terrain_get_load_distance();                              // return load distance
+void client_terrain_start();                                         // start meshgen and sync threads
+void client_terrain_stop();                                          // stop meshgen and sync threads
+void client_terrain_chunk_received(TerrainChunk *chunk);             // called when a chunk was recieved from server
+void client_terrain_meshgen_task(TerrainChunk *chunk, bool changed); // enqueue chunk to mesh update queue
 
 #endif