#include "dataManager.h" DataManager* DataManager::getInstance() { static DataManager dataManager; return &dataManager; } DataManager::DataManager() { jsonTemp = new ReadJsonSrc(":/file/file/template.json"); } DataManager::~DataManager() { delete jsonTemp; } //模板配置 QVector DataManager::getTempFields(QString key, QString name) { QVector nullVec; int index = jsonTemp->getTemplateIndex(key,name); if(index == -1) return nullVec; return jsonTemp->templateMap[key][index].fields; } void DataManager::updateTempData() { ReadJsonSrc* tmp = jsonTemp; jsonTemp = new ReadJsonSrc(":/file/file/template.json"); delete tmp; } QStringList DataManager::getList(QString elem,ListType listType) { QStringList list; if(listType == ListType::Anim){ for(const auto &i:elements[elem]->statusEffect) list.push_back(i.name); } else if(listType == ListType::CollAnim){ for(const auto &i:elements[elem]->collAnim) list.push_back(i.name); } else if(listType == ListType::Pool){ for(const auto &i:elements[elem]->container) list.push_back(i.poolName); } else if(listType == ListType::AnimType){ for(const auto &i:jsonTemp->templateMap["collAnimTemp"]) list.push_back(i.name); } return list; } //元素及其基础属性 bool DataManager::existElem(QString elemName) { return elements.contains(elemName); } void DataManager::addElem(QString elemName) { elements[elemName] = new ElemPropertyData(); } void DataManager::delElem(QString elemName) { delete elements[elemName]; elements.remove(elemName); } void DataManager::changeElemName(QString oriName, QString newName) { ElemPropertyData* tmp = elements[oriName]; elements.remove(oriName); elements[newName] = tmp; } void DataManager::changeMarkValue(QString elem, QString val) { elements[elem]->labelName = val; } void DataManager::changeSize(QString elem, QString val) { elements[elem]->size = val; } void DataManager::changeMaxLayer(QString elem, QString val) { elements[elem]->maxLayer = val; } void DataManager::changeScore(QString elem, QString val) { elements[elem]->score = val; } void DataManager::changeDropConfig(QString elem, int val) { elements[elem]->dropConfig = val; } void DataManager::changeIconPath(QString elem, QString iconPath) { elements[elem]->iconPath = iconPath; } QString DataManager::getMarkValue(QString elem) { return elements[elem]->labelName; } QString DataManager::getSize(QString elem) { return elements[elem]->size; } QString DataManager::getMaxLayer(QString elem) { return elements[elem]->maxLayer; } QString DataManager::getScore(QString elem) { return elements[elem]->score; } int DataManager::getDropConfig(QString elem) { return elements[elem]->dropConfig; } QString DataManager::getIconPath(QString elem) { return elements[elem]->iconPath; } //状态与效果动画 QVector DataManager::getAnimVec(QString elem) { return elements[elem]->statusEffect; } QStringList DataManager::getTimelineList(QString elem,QString filePath) { return elements[elem]->getTimelineList(filePath); } bool DataManager::existAnim(QString elem,QString animName) { if(elements[elem]->getAnimIndex(animName) == -1) return false; return true; } void DataManager::addAnim(QString elem, QString animName) { elements[elem]->statusEffect.push_back(ElemPropertyData::StatusEffect(animName)); } void DataManager::delAnim(QString elem,int index) { elements[elem]->statusEffect.remove(index); } void DataManager::changeAnimTable(QString elem, QString newData, int row, int column) { if(column == 0) elements[elem]->statusEffect[row].name = newData; else if(column == 1) elements[elem]->statusEffect[row].res = newData; else if (column == 2) elements[elem]->statusEffect[row].timeline = newData; else if (column == 3) elements[elem]->statusEffect[row].zOrder = newData; } //收集动画 QString DataManager::getAnimType(QString elem, int index) { return elements[elem]->collAnim[index].type; } void DataManager::setAnimType(QString elem, QString newType, int index) { elements[elem]->collAnim[index].type = newType; elements[elem]->collAnim[index].dataMap.clear(); } QMap DataManager::getCollAnimDataMap(QString elem, int index) { return elements[elem]->collAnim[index].dataMap; } void DataManager::setCollAnimDataMapVal(QString elem, int index, QString key, QString val) { elements[elem]->collAnim[index].dataMap[key] = val; } bool DataManager::existCollAnim(QString elem, QString collAnimName) { if(elements[elem]->getCollAnimIndex(collAnimName) == -1) return false; return true; } void DataManager::addCollAnim(QString elem,QString collAnimName) { ElemPropertyData::CollAnim collAnim(collAnimName); elements[elem]->collAnim.push_back(collAnim); } void DataManager::delCollAnim(QString elem,int index) { elements[elem]->collAnim.remove(index); } void DataManager::changeCollAnimName(QString elem,int index,QString newName) { elements[elem]->collAnim[index].name = newName; }