#pragma once #include "character/CharacterActionTypes.h" #include "character/CharacterDataLoader.h" #include #include #include 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 actions_; }; std::optional loadCharacterActionLibrary( const character::CharacterConfig& config); } // namespace frostbite2D