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
	
	 Sara
						Sara