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