#ifndef GAME_UI_HPP
#define GAME_UI_HPP

#include <godot_cpp/classes/canvas_layer.hpp>
#include <godot_cpp/classes/label.hpp>

namespace godot {
//! The in-game HUD
class GameUI : public CanvasLayer {
    GDCLASS(GameUI, CanvasLayer);
    //! Required to be a valid godot class.
    static void _bind_methods();
public:
    //! Connect listeners and get debug info label.
    virtual void _enter_tree() override;
    //! Update the debug info label with new information.
    void append_debug_info(String string);
protected:
    //! Listener for key_found observer on RallyRushGameMode.
    void on_key_found(int total_found);
    //! Listener for all_keys_found observer on RallyRushGameMode.
    void on_all_keys_found();
private:
    Label *debug_info_label{nullptr};
};
}

#endif // !GAME_UI_HPP
