]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/server/trees.h
refactoring
[dragonblocks_alpha.git] / src / server / trees.h
index 3bc6763af75572f3146a325b041da0d2feeb53f1..8084c52d2f242f16b0c16382dfd64aae36ca128b 100644 (file)
@@ -2,22 +2,34 @@
 #define _TREES_H_
 
 #include <dragonstd/list.h>
+#include <stdbool.h>
 #include "perlin.h"
+#include "terrain.h"
 #include "types.h"
 
 #define NUM_TREES 3
 
-typedef struct
-{
+typedef struct {
+       v3s32 pos;
+       f64 humidity;
+       f64 temperature;
+       Biome biome;
+       f64 factor;
+       TerrainChunk *chunk;
+       void *row_data;
+       void *chunk_data;
+} TreeArgsCondition;
+
+typedef struct {
        f32 spread;
        f32 probability;
        f32 area_probability;
        SeedOffset offset;
        SeedOffset area_offset;
-       bool (*condition)(v3s32 pos, f64 humidity, f64 temperature, Biome biome, f64 factor, MapBlock *block, void *row_data, void *block_data);
-       void (*generate)(v3s32 pos, List *changed_blocks);
+       bool (*condition)(TreeArgsCondition *args);
+       void (*generate)(v3s32 pos, List *changed_chunks);
 } TreeDef;
 
 extern TreeDef tree_definitions[];
 
-#endif
+#endif // _TREES_H_