49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#pragma once
|
|
#include "EngineFrame/Component/Animation.h"
|
|
#include <string>
|
|
#include <vector>
|
|
#include <unordered_map>
|
|
class CharacterObject;
|
|
class Chr_Animation : public RenderBase
|
|
{
|
|
// 动作动画集合
|
|
using ActionAniList = std::map<std::string, std::vector<RefPtr<Animation>>>;
|
|
|
|
public:
|
|
inline static const std::unordered_map<std::string, std::string>
|
|
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);
|
|
};
|