feat: added tunnels game mode
This commit is contained in:
		
							parent
							
								
									1fbba7b665
								
							
						
					
					
						commit
						d456634061
					
				
							
								
								
									
										38
									
								
								src/tunnels_game_state.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								src/tunnels_game_state.cpp
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | #include "tunnels_game_state.hpp" | ||||||
|  | #include "character_data.hpp" | ||||||
|  | #include "utils/godot_macros.h" | ||||||
|  | #include <godot_cpp/variant/array.hpp> | ||||||
|  | 
 | ||||||
|  | namespace godot { | ||||||
|  | void TunnelsGameState::_bind_methods() { | ||||||
|  | #define CLASSNAME TunnelsGameState | ||||||
|  |     GDPROPERTY_HINTED(weapons, Variant::ARRAY, PROPERTY_HINT_ARRAY_TYPE, GDRESOURCETYPE(WeaponData)); | ||||||
|  |     GDPROPERTY_HINTED(characters, Variant::ARRAY, PROPERTY_HINT_ARRAY_TYPE, GDRESOURCETYPE(CharacterData)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void TunnelsGameState::set_weapons(Array weapons) { | ||||||
|  |     this->weapons.clear(); | ||||||
|  |     for(size_t i = 0; i < weapons.size(); ++i) | ||||||
|  |         this->weapons.push_back(weapons[i]); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Array TunnelsGameState::get_weapons() const { | ||||||
|  |     Array array{}; | ||||||
|  |     for(Ref<WeaponData> weapon : this->weapons) | ||||||
|  |         array.push_back(weapon); | ||||||
|  |     return array; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void TunnelsGameState::set_characters(Array characters) { | ||||||
|  |     this->characters.clear(); | ||||||
|  |     for(size_t i = 0; i < characters.size(); ++i) | ||||||
|  |         this->characters.push_back(characters[i]); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Array TunnelsGameState::get_characters() const { | ||||||
|  |     Array array{}; | ||||||
|  |     for(Ref<CharacterData> character : this->characters) | ||||||
|  |         array.push_back(character); | ||||||
|  |     return array; | ||||||
|  | } | ||||||
|  | } | ||||||
							
								
								
									
										24
									
								
								src/tunnels_game_state.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/tunnels_game_state.hpp
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | ||||||
|  | #ifndef TUNNELS_GAME_STATE_HPP | ||||||
|  | #define TUNNELS_GAME_STATE_HPP | ||||||
|  | 
 | ||||||
|  | #include "character_data.hpp" | ||||||
|  | #include "utils/game_state.hpp" | ||||||
|  | #include "weapon_data.hpp" | ||||||
|  | #include <godot_cpp/templates/vector.hpp> | ||||||
|  | 
 | ||||||
|  | namespace godot { | ||||||
|  | class TunnelsGameState : public GameState { | ||||||
|  |     GDCLASS(TunnelsGameState, GameState); | ||||||
|  |     static void _bind_methods(); | ||||||
|  | public: | ||||||
|  |     void set_weapons(Array weapons); | ||||||
|  |     Array get_weapons() const; | ||||||
|  |     void set_characters(Array characters); | ||||||
|  |     Array get_characters() const; | ||||||
|  | private: | ||||||
|  |     Vector<Ref<WeaponData>> weapons{}; | ||||||
|  |     Vector<Ref<CharacterData>> characters{}; | ||||||
|  | }; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif // !TUNNELS_GAME_STATE_HPP
 | ||||||
		Loading…
	
		Reference in a new issue
	
	 Sara
						Sara