]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/server/trees.h
2eeb3f8739d548462d1def1d4c8a5f0368b3c041
[dragonblocks_alpha.git] / src / server / trees.h
1 #ifndef _TREES_H_
2 #define _TREES_H_
3
4 #include <dragonstd/list.h>
5 #include <stdbool.h>
6 #include "perlin.h"
7 #include "terrain.h"
8 #include "types.h"
9
10 #define NUM_TREES 3
11
12 typedef struct {
13         v3s32 pos;
14         f64 humidity;
15         f64 temperature;
16         Biome biome;
17         f64 factor;
18         TerrainChunk *chunk;
19         void *row_data;
20         void *chunk_data;
21 } TreeArgsCondition;
22
23 typedef struct {
24         f32 spread;
25         f32 probability;
26         f32 area_probability;
27         SeedOffset offset;
28         SeedOffset area_offset;
29         bool (*condition)(TreeArgsCondition *args);
30         void (*generate)(v3s32 pos, List *changed_chunks);
31 } TreeDef;
32
33 extern TreeDef tree_defs[];
34
35 #endif // _TREES_H_