#ifndef SPECIES_MODEL_DATA_H #define SPECIES_MODEL_DATA_H #include "core/resource.h" #include "core/vector.h" #include "core/ustring.h" #include "core/color.h" #include "scene/resources/packed_scene.h" #include "../data/item_visual_entry.h" #include "../entity_enums.h" class ItemVisual; class SpeciesModelData : public Resource { GDCLASS(SpeciesModelData, Resource); public: int get_id(); void set_id(int value); String get_text_name(); void set_text_name(String value); Ref get_skeleton(); void set_skeleton(Ref value); //Entries Ref get_visual(const int bone_index, const int index) const; void set_visual(const int bone_index, const int index, const Ref visual); void add_visual(const int bone_index, const Ref visual); void remove_visual(const int bone_index, const int index); int get_visual_count(const int bone_index) const; Vector get_visuals(const int bone_index); void set_visuals(const int bone_index, const Vector &visuals); //SkinColors Color get_skin_color(const int index) const; void set_skin_color(const int index, const Color skin_color); void add_skin_color(const Color skin_color); void remove_skin_color(const int index); int get_skin_color_count() const; Vector get_skin_colors(); void set_skin_colors(const Vector &skin_colors); //HairStyles Ref get_hair_style(const int index) const; void set_hair_style(const int index, const Ref hair_style); void add_hair_style(const Ref hair_style); void remove_hair_style(const int index); int get_hair_style_count() const; Vector get_hair_styles(); void set_hair_styles(const Vector &hair_styles); //HairColors Color get_hair_color(const int index) const; void set_hair_color(const int index, const Color hair_color); void add_hair_color(const Color hair_color); void remove_hair_color(const int index); int get_hair_color_count() const; Vector get_hair_colors(); void set_hair_colors(const Vector &hair_colors); //Heads Ref get_head(const int index) const; void set_head(const int index, const Ref head); void add_head(const Ref head); void remove_head(const int index); int get_head_count() const; Vector get_heads(); void set_heads(const Vector &heads); SpeciesModelData(); ~SpeciesModelData(); protected: static void _bind_methods(); private: int _id; String _text_name; Ref _skeleton; Vector > _visuals[EntityEnums::SKELETON_POINTS_MAX]; Vector _skin_colors; Vector > _hair_styles; Vector _hair_colors; Vector > _heads; }; #endif