]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/server/voxel_procedural.h
Trees break if they have no connection to ground
[dragonblocks_alpha.git] / src / server / voxel_procedural.h
index c953add1198672834eecb8a72710158ec01015e5..6de0f1e8f6d88e61d2adc957304ceb4b2f33d834 100644 (file)
@@ -24,6 +24,8 @@ typedef struct {
        List state;
 } VoxelProcedural;
 
+typedef TerrainNode (*VoxelProceduralNode)(v3s32 pos, v3f32 color, void *arg);
+
 VoxelProcedural *voxel_procedural_create(List *changed_chunks, TerrainGenStage tgs, v3s32 pos);
 void voxel_procedural_delete(VoxelProcedural *proc);
 void voxel_procedural_hue(VoxelProcedural *proc, f32 value);
@@ -43,8 +45,8 @@ void voxel_procedural_s(VoxelProcedural *proc, f32 value);
 void voxel_procedural_pop(VoxelProcedural *proc);
 void voxel_procedural_push(VoxelProcedural *proc);
 bool voxel_procedural_is_alive(VoxelProcedural *proc);
-void voxel_procedural_cube(VoxelProcedural *proc, NodeType node, bool use_color);
-void voxel_procedural_cylinder(VoxelProcedural *proc, NodeType node, bool use_color);
+void voxel_procedural_cube(VoxelProcedural *proc,  VoxelProceduralNode func, void *arg);
+void voxel_procedural_cylinder(VoxelProcedural *proc,  VoxelProceduralNode func, void *arg);
 f32 voxel_procedural_random(VoxelProcedural *proc, f32 base, f32 vary);
 
 #endif // _VOXEL_PROCEDURAL_H_