#ifndef ENTITY_SPECIES_DATA_H #define ENTITY_SPECIES_DATA_H #include "core/resource.h" #include "core/ustring.h" #include "core/vector.h" #include "../entity_enums.h" #include "species_model_data.h" class Spell; class Aura; class EntitySpeciesData : public Resource { GDCLASS(EntitySpeciesData, Resource); public: int get_id(); void set_id(int value); EntityEnums::EntityType get_type(); void set_type(EntityEnums::EntityType value); String get_text_name(); void set_text_name(String value); String get_text_description(); void set_text_description(String value); Ref get_model_data(); void set_model_data(Ref data); //Spells Ref get_spell(const int index) const; void set_spell(const int index, const Ref spell); void add_spell(const Ref spell); void remove_spell(const int index); int get_spell_count() const; Vector get_spells(); void set_spells(const Vector &spells); //Auras Ref get_aura(const int index) const; void set_aura(const int index, const Ref aura); void add_aura(const Ref aura); void remove_aura(const int index); int get_aura_count() const; Vector get_auras(); void set_auras(const Vector &auras); String generate_name(int seed); EntitySpeciesData(); ~EntitySpeciesData(); protected: static void _bind_methods(); private: int _id; EntityEnums::EntityType _type; String _text_name; String _text_description; Ref _model_data; Vector > _spells; Vector > _auras; }; #endif