#pragma once

#include <godot_cpp/classes/node.hpp>
#include <godot_cpp/variant/dictionary.hpp>

namespace godot {

/* One-shot facade over the pure C generator. Call generate() with a seed and
   depth; receive a Dictionary describing the final dungeon. See the plugin
   README for the full dict shape (terrain / liquid / surface / flags arrays,
   rooms[], machines[], chokepoints[], stairs). */
class BrogueGen : public Node {
    GDCLASS(BrogueGen, Node)

protected:
    static void _bind_methods();

public:
    BrogueGen();
    ~BrogueGen();

    Dictionary generate(int seed, int depth);
};

} // namespace godot
