dataManager.cpp 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. #include "dataManager.h"
  2. DataManager* DataManager::getInstance()
  3. {
  4. static DataManager dataManager;
  5. return &dataManager;
  6. }
  7. DataManager::DataManager()
  8. {
  9. jsonTemp = new ReadJsonSrc(":/file/file/template.json");
  10. }
  11. DataManager::~DataManager()
  12. {
  13. delete jsonTemp;
  14. }
  15. //模板配置
  16. QVector<ReadJsonSrc::Fields> DataManager::getTempFields(QString key, QString name)
  17. {
  18. QVector<ReadJsonSrc::Fields> nullVec;
  19. int index = jsonTemp->getTemplateIndex(key,name);
  20. if(index == -1) return nullVec;
  21. return jsonTemp->templateMap[key][index].fields;
  22. }
  23. void DataManager::updateTempData()
  24. {
  25. ReadJsonSrc* tmp = jsonTemp;
  26. jsonTemp = new ReadJsonSrc(":/file/file/template.json");
  27. delete tmp;
  28. }
  29. QStringList DataManager::getList(QString elem,ListType listType)
  30. {
  31. QStringList list;
  32. if(listType == ListType::Anim){
  33. for(const auto &i:elements[elem]->statusEffect) list.push_back(i.name);
  34. }
  35. else if(listType == ListType::CollAnim){
  36. for(const auto &i:elements[elem]->collAnim) list.push_back(i.name);
  37. }
  38. else if(listType == ListType::Pool){
  39. for(const auto &i:elements[elem]->container) list.push_back(i.poolName);
  40. }
  41. else if(listType == ListType::AnimType){
  42. for(const auto &i:jsonTemp->templateMap["collAnimTemp"]) list.push_back(i.name);
  43. }
  44. return list;
  45. }
  46. //元素及其基础属性
  47. bool DataManager::existElem(QString elemName)
  48. {
  49. return elements.contains(elemName);
  50. }
  51. void DataManager::addElem(QString elemName)
  52. {
  53. elements[elemName] = new ElemPropertyData();
  54. }
  55. void DataManager::delElem(QString elemName)
  56. {
  57. delete elements[elemName];
  58. elements.remove(elemName);
  59. }
  60. void DataManager::changeElemName(QString oriName, QString newName)
  61. {
  62. ElemPropertyData* tmp = elements[oriName];
  63. elements.remove(oriName);
  64. elements[newName] = tmp;
  65. }
  66. void DataManager::changeMarkValue(QString elem, QString val)
  67. {
  68. elements[elem]->labelName = val;
  69. }
  70. void DataManager::changeSize(QString elem, QString val)
  71. {
  72. elements[elem]->size = val;
  73. }
  74. void DataManager::changeMaxLayer(QString elem, QString val)
  75. {
  76. elements[elem]->maxLayer = val;
  77. }
  78. void DataManager::changeScore(QString elem, QString val)
  79. {
  80. elements[elem]->score = val;
  81. }
  82. void DataManager::changeDropConfig(QString elem, int val)
  83. {
  84. elements[elem]->dropConfig = val;
  85. }
  86. void DataManager::changeIconPath(QString elem, QString iconPath)
  87. {
  88. elements[elem]->iconPath = iconPath;
  89. }
  90. QString DataManager::getMarkValue(QString elem)
  91. {
  92. return elements[elem]->labelName;
  93. }
  94. QString DataManager::getSize(QString elem)
  95. {
  96. return elements[elem]->size;
  97. }
  98. QString DataManager::getMaxLayer(QString elem)
  99. {
  100. return elements[elem]->maxLayer;
  101. }
  102. QString DataManager::getScore(QString elem)
  103. {
  104. return elements[elem]->score;
  105. }
  106. int DataManager::getDropConfig(QString elem)
  107. {
  108. return elements[elem]->dropConfig;
  109. }
  110. QString DataManager::getIconPath(QString elem)
  111. {
  112. return elements[elem]->iconPath;
  113. }
  114. //状态与效果动画
  115. QVector<ElemPropertyData::StatusEffect> DataManager::getAnimVec(QString elem)
  116. {
  117. return elements[elem]->statusEffect;
  118. }
  119. QStringList DataManager::getTimelineList(QString elem,QString filePath)
  120. {
  121. return elements[elem]->getTimelineList(filePath);
  122. }
  123. bool DataManager::existAnim(QString elem,QString animName)
  124. {
  125. if(elements[elem]->getAnimIndex(animName) == -1) return false;
  126. return true;
  127. }
  128. void DataManager::addAnim(QString elem, QString animName)
  129. {
  130. elements[elem]->statusEffect.push_back(ElemPropertyData::StatusEffect(animName));
  131. }
  132. void DataManager::delAnim(QString elem,int index)
  133. {
  134. elements[elem]->statusEffect.remove(index);
  135. }
  136. void DataManager::changeAnimTable(QString elem, QString newData, int row, int column)
  137. {
  138. if(column == 0) elements[elem]->statusEffect[row].name = newData;
  139. else if(column == 1) elements[elem]->statusEffect[row].res = newData;
  140. else if (column == 2) elements[elem]->statusEffect[row].timeline = newData;
  141. else if (column == 3) elements[elem]->statusEffect[row].zOrder = newData;
  142. }
  143. //收集动画
  144. QString DataManager::getAnimType(QString elem, int index)
  145. {
  146. return elements[elem]->collAnim[index].type;
  147. }
  148. void DataManager::setAnimType(QString elem, QString newType, int index)
  149. {
  150. elements[elem]->collAnim[index].type = newType;
  151. elements[elem]->collAnim[index].dataMap.clear();
  152. }
  153. QMap<QString,QString> DataManager::getCollAnimDataMap(QString elem, int index)
  154. {
  155. return elements[elem]->collAnim[index].dataMap;
  156. }
  157. void DataManager::setCollAnimDataMapVal(QString elem, int index, QString key, QString val)
  158. {
  159. elements[elem]->collAnim[index].dataMap[key] = val;
  160. }
  161. bool DataManager::existCollAnim(QString elem, QString collAnimName)
  162. {
  163. if(elements[elem]->getCollAnimIndex(collAnimName) == -1) return false;
  164. return true;
  165. }
  166. void DataManager::addCollAnim(QString elem,QString collAnimName)
  167. {
  168. ElemPropertyData::CollAnim collAnim(collAnimName);
  169. elements[elem]->collAnim.push_back(collAnim);
  170. }
  171. void DataManager::delCollAnim(QString elem,int index)
  172. {
  173. elements[elem]->collAnim.remove(index);
  174. }
  175. void DataManager::changeCollAnimName(QString elem,int index,QString newName)
  176. {
  177. elements[elem]->collAnim[index].name = newName;
  178. }