#ifndef CHARACTER_AWARENESS_HPP
#define CHARACTER_AWARENESS_HPP

#include "character_actor.hpp"
#include <godot_cpp/classes/area3d.hpp>
#include <godot_cpp/templates/hash_set.hpp>

namespace godot {
class CharacterAwareness : public Area3D {
    GDCLASS(CharacterAwareness, Area3D);
    static void _bind_methods();
public:
    virtual void _enter_tree() override;
    virtual void _ready() override;
    void on_body_entered(Node *node);
    void on_body_exited(Node *node);
private:
    // awareness of characters specifically
    HashSet<CharacterActor*> actor_awareness{};
    // not a character :( cringe
    HashSet<Node*> node_awareness{};
};
}

#endif // !CHARACTER_AWARENESS_HPP
