#ifndef __CCARMATUREDATAMANAGER_H__
#define __CCARMATUREDATAMANAGER_H__
#include "CCArmatureDefine.h"
#include "CCConstValue.h"
#include "../datas/CCDatas.h"
NS_CC_EXT_BEGIN
/**
*@brief format and manage armature configuration and armature animation
*/
class CCArmatureDataManager : public CCObject
{
public:
static CCArmatureDataManager *sharedArmatureDataManager();
static void purgeArmatureSystem();
private:
CCArmatureDataManager(void);
~CCArmatureDataManager(void);
public:
/**
* Init CCArmatureDataManager
*/
virtual bool init();
/**
* Add armature data
* @param id The id of the armature data
* @param armatureData CCArmatureData *
*/
void addArmatureData(const char *id, CCArmatureData *armatureData);
/**
*@brief get armature data
*
*@param id the id of the armature data you want to get
*
* @returnCCArmatureData *
*/
CCArmatureData *getArmatureData(const char *id);
/**
*@brief add animation data
*
*@param id the id of the animation data
*
* @return CCAnimationData *
*/
void addAnimationData(const char *id, CCAnimationData *animationData);
/**
*@brief get animation data from m_pAnimationDatas(CCDictionary)
*
*@param id the id of the animation data you want to get
*
* @return CCAnimationData *
*/
CCAnimationData *getAnimationData(const char *id);
/**
*@brief add texture data
*
*@param id the id of the texture data
*
* @return CCTextureData *
*/
void addTextureData(const char *id, CCTextureData *textureData);
/**
*@brief get texture data
*
*@param _id the id of the texture data you want to get
*
* @return CCTextureData *
*/
CCTextureData *getTextureData(const char *id);
/**
*@brief Add ArmatureFileInfo, it is managed by CCArmatureDataManager.
*/
void addArmatureFileInfo(const char *armatureName, const char *useExistFileInfo, const char *imagePath, const char *plistPath, const char *configFilePath);
/**
*@brief Add ArmatureFileInfo, it is managed by CCArmatureDataManager.
*/
void addArmatureFileInfo(const char *imagePath, const char *plistPath, const char *configFilePath);
/**
*@brief Add sprite frame to CCSpriteFrameCache, it will save display name and it's relative image name
*/
void addSpriteFrameFromFile(const char *plistPath, const char *imagePath);
/**
*@brief Clear the data in the m_pArmarureDatas and m_pAnimationDatas, and set m_pArmarureDatas and m_pAnimationDatas to NULL
*/
void removeAll();
private:
/**
*@brief save amature datas
* @keystd::string
* @valueCCArmatureData *
*/
CC_SYNTHESIZE_READONLY(CCDictionary *, m_pArmarureDatas, ArmarureDatas);
/**
*@brief save animation datas
* @keystd::string
* @valueCCAnimationData *
*/
CC_SYNTHESIZE_READONLY(CCDictionary *, m_pAnimationDatas, AnimationDatas);
/**
*@brief save texture datas
* @keystd::string
* @valueCCTextureData *
*/
CC_SYNTHESIZE_READONLY(CCDictionary *, m_pTextureDatas, TextureDatas);
};
NS_CC_EXT_END
#endif/*__CCARMATUREDATAMANAGER_H__*/