34 lines
946 B
C++
34 lines
946 B
C++
#ifndef ARTILLERY_TARGET_HPP
|
|
#define ARTILLERY_TARGET_HPP
|
|
|
|
#include <godot_cpp/classes/node3d.hpp>
|
|
#include <godot_cpp/classes/timer.hpp>
|
|
#include <godot_cpp/classes/packed_scene.hpp>
|
|
namespace gd = godot;
|
|
|
|
class ArtilleryTarget : public gd::Node3D {
|
|
GDCLASS(ArtilleryTarget, gd::Node3D);
|
|
static void _bind_methods();
|
|
public:
|
|
virtual void _ready() override;
|
|
void set_effect(gd::Ref<gd::PackedScene> scene);
|
|
gd::Ref<gd::PackedScene> get_effect() const;
|
|
void set_spread(float value);
|
|
float get_spread() const;
|
|
void set_frequency_min(float value);
|
|
float get_frequency_min() const;
|
|
void set_frequency_max(float value);
|
|
float get_frequency_max() const;
|
|
private:
|
|
void timer_end();
|
|
void start_timer();
|
|
private:
|
|
float spread{5.f};
|
|
float frequency_min{0.5f};
|
|
float frequency_max{2.f};
|
|
gd::Ref<gd::PackedScene> effect{};
|
|
gd::Timer *timer{nullptr};
|
|
};
|
|
|
|
#endif // !ARTILLERY_TARGET_HPP
|