123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- #ifndef DATAMANAGER_H
- #define DATAMANAGER_H
- #include "elemPropertyData.h"
- #include "readJsonSrc.h"
- class DataManager
- {
- public:
- static DataManager* getInstance();
- //配置模板
- ///获取模板中的fields,key为模板名字,name为模板中的某一选项名
- QVector<ReadJsonSrc::Fields> getTempFields(QString key,QString name);
- ///更新模板
- void updateTempData();
- enum class ListType{Anim,CollAnim,Pool,AnimType,StatusVal,Events,Actions,PoolType,Elem};
- ///获取某一元素对应的动画、收集动画、容器列表
- QStringList getList(QString elem,ListType listType);
- ///检查是否存在此元素
- bool existElem(QString elemName);
- void addElem(QString elemName);
- void delElem(QString elemName);
- void changeElemName(QString oriName,QString newName);
- //基础属性值修改
- ///修改标识值
- void changeMarkValue(QString elem,QString val);
- ///修改基础属性位置
- void changePos(QString elem,QString val);
- ///修改最大层数
- void changeMaxLayer(QString elem,QString val);
- void changeScore(QString elem,QString val);
- void changeDropConfig(QString elem,QString val);
- void changeIconPath(QString elem,QString iconPath);
- void changeLinkedState(QString elem,int state);
- void changeMoveAwayState(QString elem,int state);
- //基础属性值获取
- QString getMarkValue(QString elem);
- QString getPos(QString elem);
- QString getMaxLayer(QString elem);
- QString getScore(QString elem);
- QString getDropConfig(QString elem);
- QString getIconPath(QString elem);
- bool getLinkedState(QString elem);
- bool getMoveAwayState(QString elem);
- //状态与效果动画
- QVector<ElemPropertyData::StatusEffect> getAnimVec(QString elem);
- QStringList getTimelineList(QString elem,QString filePath);
- bool existAnim(QString elem,QString animName);
- void addAnim(QString elem,QString animName);
- void delAnim(QString elem,int index);
- void changeAnimTable(QString elem,QString newData,int row,int column);
- //收集动画
- QString getAnimType(QString elem,int index);
- void setAnimType(QString elem, QString newType, int index);
- QMap<QString,QString> getCollAnimDataMap(QString elem,int index);
- void setCollAnimDataMapVal(QString elem,int index,QString key,QString val);
- bool existCollAnim(QString elem,QString collAnimName);
- void addCollAnim(QString elem,QString collAnimName);
- void delCollAnim(QString elem,int index);
- void changeCollAnimName(QString elem,int index,QString newName);
- //状态配置
- ElemPropertyData::StatusConfig getStatusConfigData(QString elem,int index);
- void changeEventTable(QString elem,QString newData,int statusIndex, int row,int column);
- void changeActionConfigData(QString elem,int statusIndex,int row,QMap<QString,QString> data);
- void setEventTableCheckBox(QString elem,int statusIndex,int row,int column,int state);
- bool existStatusVal(QString elem,QString statusVal);
- void addStatus(QString elem,QString statusVal);
- void delStatus(QString elem,int index);
- void changeStatusVal(QString elem,int index,QString newVal);
- enum class StatusDataType {InitAnim,ClickAnim,CollTar,CollAnim};
- ///改变基础属性值(表格以外)
- void changeStatusFundVal(QString elem,StatusDataType type,QString newData,int index);
- enum class CheckType{MultiHit,Dropable,NeedColl,Color,Lattice};
- ///改变基础属性中的勾选值
- void setFundCheckBox(QString elem,int statusIndex,CheckType checkType,int state);
- void addEvent(QString elem,int index);
- void delEvent(QString elem,int statusIndex,int row);
- void updateAllDropState(QString elem,bool state);
- //容器池
- ElemPropertyData::ContainerConfig getContainData(QString elem,int index);
- void changeContainTable(QString elem,int index,int row,int column,QString data);
- bool existPool(QString elem,QString poolName);
- void addPool(QString elem,QString poolName);
- void delPool(QString elem,int index);
- void changePoolName(QString elem,int index,QString newName);
- bool existKey(QString elem,int poolIndex,QString key);
- void addKey(QString elem,int poolIndex,QString keyName);
- void delKey(QString elem,int poolIndex,int row);
- void changeContainType(QString elem,int poolIndex,QString poolType);
- //子元素
- QVector<ElemPropertyData::ChildElem> getChildElemTable(QString elem);
- void changeChildElemTable(QString elem,int row,int column,QString data);
- bool existChildElem(QString elem,QString childElemName);
- void addChildElem(QString elem,QString childElemName);
- void delChildElem(QString elem,int index);
- //数据保存
- bool loadData();
- bool saveData();
- void read(const QJsonObject &json);
- void write(QJsonObject &json) const;
- //导出数据
- bool exportData();
- QString getExportMessage();
- static QVector<QVector<int>> getGridPos(QString str);
- QString getTempId(QString key,QString name);
- private:
- DataManager();
- ~DataManager();
- DataManager(const DataManager &dataManager);
- QMap<QString,ElemPropertyData*> elements;
- ReadJsonSrc* jsonTemp;
- QString exportMessage;
- bool exportIsValid();
- };
- #endif // DATAMANAGER_H
|