]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/server/trees.h
e4ee7efc15f7b2025b32b3c5683515de55a96a6e
[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_def[];
34
35 #endif // _TREES_H_