#pragma once

#include "pxl8_bsp.h"
#include "pxl8_types.h"

typedef enum pxl8_procgen_type {
    PXL8_PROCGEN_ROOMS,
    PXL8_PROCGEN_TERRAIN
} pxl8_procgen_type;

typedef struct pxl8_procgen_params {
    pxl8_procgen_type type;

    i32 width;
    i32 height;
    i32 depth;
    u32 seed;

    i32 min_room_size;
    i32 max_room_size;
    i32 num_rooms;
} pxl8_procgen_params;

#ifdef __cplusplus
extern "C" {
#endif

pxl8_result pxl8_procgen(pxl8_bsp* bsp, const pxl8_procgen_params* params);

#ifdef __cplusplus
}
#endif
