#ifndef BLOCK_GENERATE_REQUEST_H #define BLOCK_GENERATE_REQUEST_H #include "../util/tasks/async_dependency_tracker.h" #include "../util/tasks/threaded_task.h" #include "priority_dependency.h" #include "streaming_dependency.h" namespace zylann::voxel { class BlockGenerateRequest : public IThreadedTask { public: BlockGenerateRequest(); ~BlockGenerateRequest(); void run(ThreadedTaskContext ctx) override; int get_priority() override; bool is_cancelled() override; void apply_result() override; static int debug_get_running_count(); std::shared_ptr voxels; Vector3i position; uint32_t volume_id; uint8_t lod; uint8_t block_size; bool has_run = false; bool too_far = false; bool max_lod_hint = false; bool drop_beyond_max_distance = true; PriorityDependency priority_dependency; std::shared_ptr stream_dependency; std::shared_ptr tracker; }; } // namespace zylann::voxel #endif // BLOCK_GENERATE_REQUEST_H