refactor(character): 重构角色动作处理逻辑 feat(swordman): 实现剑士基础攻击和技能1处理 refactor(state): 优化状态机与动作上下文管理 feat(input): 改进输入系统支持动作请求队列 refactor(movement): 重构移动系统支持行走/奔跑模式
33 lines
1.0 KiB
C++
33 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "character/CharacterActionTypes.h"
|
|
#include "character/CharacterDataLoader.h"
|
|
#include <map>
|
|
#include <optional>
|
|
#include <string>
|
|
|
|
namespace frostbite2D {
|
|
|
|
/// 管理角色显式注册的逻辑动作。
|
|
///
|
|
/// 动画配置只负责提供资源标签,不再自动推导哪些逻辑动作存在。
|
|
/// 基础状态动作和职业技能入口都在代码中显式注册,让技能实现类自己决定
|
|
/// 当前要播放哪个 ani。
|
|
class CharacterActionLibrary {
|
|
public:
|
|
bool LoadForConfig(const character::CharacterConfig& config);
|
|
const CharacterActionDefinition* FindAction(const std::string& actionId) const;
|
|
const CharacterActionDefinition* GetDefaultAction() const;
|
|
std::string DescribeActionIds() const;
|
|
|
|
private:
|
|
bool BuildExplicitActionRegistry(const character::CharacterConfig& config);
|
|
|
|
std::map<std::string, CharacterActionDefinition> actions_;
|
|
};
|
|
|
|
std::optional<CharacterActionLibrary> loadCharacterActionLibrary(
|
|
const character::CharacterConfig& config);
|
|
|
|
} // namespace frostbite2D
|