#pragma once #include "EngineFrame/Component/Animation.h" #include #include #include class CharacterObject; class Chr_Animation : public Actor { // 动作动画集合 using ActionAniList = std::map>>; public: inline static const std::unordered_map AvatarPart = { {"weapon_avatar", "武器装扮"}, {"aurora_avatar", "光环装扮"}, {"hair_avatar", "头部装扮"}, {"hat_avatar", "帽子装扮"}, {"face_avatar", "脸部装扮"}, {"breast_avatar", "胸部装扮"}, {"coat_avatar", "上衣装扮"}, {"skin_avatar", "皮肤装扮"}, {"waist_avatar", "腰部装扮"}, {"pants_avatar", "下装装扮"}, {"shoes_avatar", "鞋子装扮"}, {"weapon", "武器"}, }; private: // 父对象 CharacterObject *chr_parent; // 时装部位对应的动作动画集合 ActionAniList ActionAnis; // 当前动作Tag std::string CurrentActionTag = "waiting"; public: static std::string FormatImgPath(std::string path, Animation::ReplaceData data); public: void CreateSkinmationBySlot(std::string actionName, std::string slotName, std::string path); public: // 初始化时 只完成基础的职业皮肤设置 void Init(CharacterObject *parent); // 设置动作 void SetAction(std::string actionName); };