#ifndef ENEMY_SPAWNPOINT_HPP
#define ENEMY_SPAWNPOINT_HPP

#include <godot_cpp/classes/node3d.hpp>

namespace godot {
//! Child node to Spawner denoting a place where a car, drone or key can be spawned.
class EnemySpawnpoint : public Node3D {
    GDCLASS(EnemySpawnpoint, Node3D);
    //! register editor properties
    static void _bind_methods();
public:
    //! returns true if the player can reasonably see this spawnpoint.
    bool player_can_see() const;
public:
    //! If true, this spawnpoint will be considered as a possible spawnpoint for keys.
    void set_keys(bool val);
    //! If true, this spawnpoint will be considered as a possible spawnpoint for keys.
    bool get_keys() const;
    //! If true, this spawnpoint will be considered as a possible spawnpoint for cars.
    void set_cars(bool val);
    //! If true, this spawnpoint will be considered as a possible spawnpoint for cars.
    bool get_cars() const;
    //! If true, this spawnpoint will be considered as a possible spawnpoint for drones.
    void set_drones(bool val);
    //! If true, this spawnpoint will be considered as a possible spawnpoint for drones.
    bool get_drones() const;
private:
    bool keys{true};
    bool cars{true};
    bool drones{true};
};
}

#endif // !ENEMY_SPAWNPOINT_HPP
