elemPropertyData.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #ifndef ELEMPROPERTYDATA_H
  2. #define ELEMPROPERTYDATA_H
  3. #include <QString>
  4. #include <QVector>
  5. #include <QMap>
  6. #include <QJsonObject>
  7. class ElemPropertyData
  8. {
  9. public:
  10. ElemPropertyData();
  11. //基础属性
  12. QString labelName;
  13. QString size;
  14. QString maxLayer;
  15. QString score;
  16. int dropConfig;
  17. QString iconPath;
  18. //状态与效果动画
  19. struct StatusEffect{
  20. QString name;
  21. QString res;
  22. QString timeline;
  23. QString zOrder;
  24. StatusEffect(QString animName):name(animName),res("双击添加资源文件"),timeline("尚未选择"),zOrder("0"){}
  25. };
  26. QVector<StatusEffect> statusEffect;
  27. //收集动画
  28. struct CollAnim{
  29. QString name;
  30. QString type;
  31. QMap<QString,QString> dataMap;
  32. CollAnim(QString collAnimName):name(collAnimName),type("尚未选择"){}
  33. };
  34. QVector<CollAnim> collAnim;
  35. // 状态配置
  36. // 事件配置
  37. struct EventConfig{
  38. QString name;
  39. bool consisColor;
  40. int changeMagnitude;
  41. QString specialEffect;
  42. bool elimATLattices;
  43. QString triggerAction;
  44. QMap<QString,QString> actionConfig;
  45. EventConfig():name("尚未选择"),specialEffect("尚未选择"),triggerAction("尚未选择"),consisColor(false),changeMagnitude(0),elimATLattices(false){}
  46. };
  47. struct StatusConfig{
  48. QString statusValue;
  49. QString initAnim;
  50. QString clickAnim;
  51. bool multiHit;
  52. bool dropable;
  53. bool needCollect;
  54. QString collTargetType;
  55. QString collAnim;
  56. QVector<EventConfig> eventConfig;
  57. StatusConfig(QString statusVal):statusValue(statusVal),multiHit(false),dropable(false),needCollect(false),initAnim("尚未选择"),clickAnim("尚未选择"),collAnim("尚未选择"){}
  58. };
  59. QVector<StatusConfig> statusConfig;
  60. // 容器
  61. struct ContainTable{
  62. QString key;
  63. QString res;
  64. QString initTimeline;
  65. QString clickTimeline;
  66. QString effectTimeline;
  67. QString vanishTimeline;
  68. QString zOrder;
  69. ContainTable(QString keyName):key(keyName),res("双击添加资源文件"),initTimeline("尚未选择"),
  70. clickTimeline("尚未选择"),effectTimeline("尚未选择"),vanishTimeline("尚未选择"),zOrder("0"){}
  71. };
  72. struct ContainerConfig{
  73. QString poolName;
  74. QString type;
  75. QVector<ContainTable> table;
  76. ContainerConfig(QString pool):poolName(pool),type("尚未选择"){}
  77. };
  78. QVector<ContainerConfig> container;
  79. //子元素
  80. struct ChildElem{
  81. QString name;
  82. QString container;
  83. ChildElem(QString childElemName):name(childElemName),container("尚未选择"){}
  84. };
  85. QVector<ChildElem> childElem;
  86. int getChildElemIndex(QString childElemName);
  87. int getKeyIndex(int poolIndex,QString key);
  88. int getAnimIndex(QString animName);
  89. int getCollAnimIndex(QString name);
  90. int getStatusValIndex(QString statusVal);
  91. int getPoolIndex(QString poolName);
  92. QList<QString> getTimelineList(QString filePath);
  93. QMap<QString,QList<QString>> timelineListMap;
  94. //读写数据
  95. void readData(const QJsonObject &json);
  96. void writeData(QJsonObject &json) const;
  97. //状态与效果动画
  98. void readStatusEffect(const QJsonArray &arr);
  99. QJsonArray writeStatusEffect() const;
  100. //收集动画
  101. void readCollAnim(const QJsonArray &arr);
  102. QJsonArray writeCollAnim() const;
  103. //读写<str,str> map
  104. QMap<QString,QString> readStrStrMap(const QJsonObject &obj);
  105. QJsonObject writeStrStrMap(const QMap<QString,QString> &data) const;
  106. //读写状态配置数据
  107. void readStatusConfigData(const QJsonArray &arr);
  108. QJsonArray writeStatusConfigData() const;
  109. //读写事件配置表格数据
  110. QVector<EventConfig> readEventConfig(const QJsonArray &arr);
  111. QJsonArray writeEventConfig(const QVector<EventConfig> &eventConfig) const;
  112. //读写容器池数据
  113. void readContainerConfig(const QJsonArray &arr);
  114. QJsonArray writeContainerConfig() const;
  115. //读写容器表格数据
  116. QVector<ContainTable> readContainerTable(const QJsonArray &arr);
  117. QJsonArray writeContainerTable(const QVector<ContainTable> &containTable) const;
  118. //读写子元素数据
  119. void readChildElem(const QJsonArray &arr);
  120. QJsonArray writeChildElem() const;
  121. };
  122. #endif // ELEMPROPERTYDATA_H