feat: added weapon data
This commit is contained in:
parent
988bd53159
commit
8af5cbc090
71
src/weapon_data.cpp
Normal file
71
src/weapon_data.cpp
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
#include "weapon_data.hpp"
|
||||||
|
#include "utils/godot_macros.h"
|
||||||
|
|
||||||
|
namespace godot {
|
||||||
|
void WeaponData::_bind_methods() {
|
||||||
|
#define CLASSNAME WeaponData
|
||||||
|
GDPROPERTY_HINTED(projectile_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||||
|
GDPROPERTY(damage, Variant::INT);
|
||||||
|
GDPROPERTY(range, Variant::FLOAT);
|
||||||
|
GDPROPERTY(projectile_count, Variant::INT);
|
||||||
|
GDPROPERTY(rounds_per_second, Variant::FLOAT);
|
||||||
|
GDPROPERTY(allow_automatic, Variant::BOOL);
|
||||||
|
GDPROPERTY_HINTED(projectile_speed, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Curve");
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_projectile_scene(Ref<PackedScene> scene) {
|
||||||
|
this->projectile_scene = scene;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ref<PackedScene> WeaponData::get_projectile_scene() const {
|
||||||
|
return this->projectile_scene;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_damage(int damage) {
|
||||||
|
this->damage = damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WeaponData::get_damage() const {
|
||||||
|
return this->damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_range(float range) {
|
||||||
|
this->range = range;
|
||||||
|
}
|
||||||
|
|
||||||
|
float WeaponData::get_range() const {
|
||||||
|
return this->range;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_projectile_count(int projectile_count) {
|
||||||
|
this->projectile_count = projectile_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WeaponData::get_projectile_count() const {
|
||||||
|
return this->projectile_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_rounds_per_second(float rps) {
|
||||||
|
this->rounds_per_second = rps;
|
||||||
|
}
|
||||||
|
|
||||||
|
float WeaponData::get_rounds_per_second() const {
|
||||||
|
return this->rounds_per_second;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_allow_automatic(bool allow) {
|
||||||
|
this->allow_automatic = allow;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WeaponData::get_allow_automatic() const {
|
||||||
|
return this->allow_automatic;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeaponData::set_projectile_speed(Ref<Curve> curve) {
|
||||||
|
this->projectile_speed = curve;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ref<Curve> WeaponData::get_projectile_speed() const {
|
||||||
|
return this->projectile_speed;
|
||||||
|
}
|
||||||
|
}
|
38
src/weapon_data.hpp
Normal file
38
src/weapon_data.hpp
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#ifndef WEAPON_DATA_HPP
|
||||||
|
#define WEAPON_DATA_HPP
|
||||||
|
|
||||||
|
#include <godot_cpp/classes/resource.hpp>
|
||||||
|
#include <godot_cpp/classes/packed_scene.hpp>
|
||||||
|
#include <godot_cpp/classes/curve.hpp>
|
||||||
|
|
||||||
|
namespace godot {
|
||||||
|
class WeaponData : public Resource {
|
||||||
|
GDCLASS(WeaponData, Resource);
|
||||||
|
static void _bind_methods();
|
||||||
|
public:
|
||||||
|
void set_projectile_scene(Ref<PackedScene> scene);
|
||||||
|
Ref<PackedScene> get_projectile_scene() const;
|
||||||
|
void set_damage(int damage);
|
||||||
|
int get_damage() const;
|
||||||
|
void set_range(float range);
|
||||||
|
float get_range() const;
|
||||||
|
void set_projectile_count(int projectile_count);
|
||||||
|
int get_projectile_count() const;
|
||||||
|
void set_rounds_per_second(float rps);
|
||||||
|
float get_rounds_per_second() const;
|
||||||
|
void set_allow_automatic(bool allow);
|
||||||
|
bool get_allow_automatic() const;
|
||||||
|
void set_projectile_speed(Ref<Curve> curve);
|
||||||
|
Ref<Curve> get_projectile_speed() const;
|
||||||
|
private:
|
||||||
|
Ref<PackedScene> projectile_scene{};
|
||||||
|
int damage{1};
|
||||||
|
float range{5.f};
|
||||||
|
int projectile_count{1};
|
||||||
|
float rounds_per_second{1.f};
|
||||||
|
bool allow_automatic{false};
|
||||||
|
Ref<Curve> projectile_speed{};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // !WEAPON_DATA_HPP
|
Loading…
Reference in a new issue