#pragma once #include "character/CharacterAnimation.h" #include "character/CharacterDataLoader.h" #include "character/CharacterEquipmentManager.h" #include #include #include namespace frostbite2D { class CharacterObject : public Actor { public: CharacterObject() = default; ~CharacterObject() override = default; bool Construction(int jobId); void SetAction(const std::string& actionName); void SetDirection(int direction); void SetCharacterPosition(const Vec2& pos); int GetJobId() const { return jobId_; } int GetGrowType() const { return growType_; } int GetDirection() const { return direction_; } const std::string& GetCurrentAction() const { return currentAction_; } const character::CharacterConfig* GetConfig() const { return config_ ? &config_.value() : nullptr; } const CharacterEquipmentManager& GetEquipmentManager() const { return equipmentManager_; } private: int jobId_ = -1; int growType_ = -1; int direction_ = 1; std::string currentAction_; std::optional config_; CharacterEquipmentManager equipmentManager_; RefPtr animationManager_ = nullptr; }; } // namespace frostbite2D