theme.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "theme.h"
  2. #include <QString>
  3. #include <qglobal.h>
  4. #include <qjsengine.h>
  5. #include <qjsonarray.h>
  6. #include <qobject.h>
  7. #include <qqmlengine.h>
  8. Theme *Theme::m_instance = nullptr;
  9. Theme::Theme(QObject *parent) : QObject(parent) {}
  10. auto Theme::instance() -> Theme * {
  11. if (m_instance == nullptr) {
  12. m_instance = new Theme();
  13. }
  14. return m_instance;
  15. }
  16. auto Theme::create(QQmlEngine *engine, QJSEngine *scriptEngine) -> Theme * {
  17. Q_UNUSED(engine)
  18. Q_UNUSED(scriptEngine)
  19. return instance();
  20. }
  21. QVariantList Theme::playerColors() {
  22. QVariantList colors;
  23. colors.append(QVariantMap{{"name", "Red"}, {"hex", "#E74C3C"}});
  24. colors.append(QVariantMap{{"name", "Blue"}, {"hex", "#3498DB"}});
  25. colors.append(QVariantMap{{"name", "Brown"}, {"hex", "#8B4513"}});
  26. colors.append(QVariantMap{{"name", "Green"}, {"hex", "#2ECC71"}});
  27. colors.append(QVariantMap{{"name", "Yellow"}, {"hex", "#F1C40F"}});
  28. colors.append(QVariantMap{{"name", "Orange"}, {"hex", "#E67E22"}});
  29. colors.append(QVariantMap{{"name", "Purple"}, {"hex", "#9B59B6"}});
  30. colors.append(QVariantMap{{"name", "Cyan"}, {"hex", "#1ABC9C"}});
  31. colors.append(QVariantMap{{"name", "Pink"}, {"hex", "#E91E63"}});
  32. return colors;
  33. }
  34. QVariantList Theme::teamIcons() {
  35. QVariantList icons;
  36. icons << "⚪" << "①" << "②" << "③" << "④" << "⑤" << "⑥" << "⑦" << "⑧";
  37. return icons;
  38. }
  39. QVariantList Theme::factions() {
  40. QVariantList factions_data;
  41. factions_data.append(QVariantMap{{"id", 0}, {"name", "Standard"}});
  42. factions_data.append(QVariantMap{{"id", 1}, {"name", "Romans"}});
  43. factions_data.append(QVariantMap{{"id", 2}, {"name", "Egyptians"}});
  44. factions_data.append(QVariantMap{{"id", 3}, {"name", "Barbarians"}});
  45. return factions_data;
  46. }
  47. QVariantMap Theme::unitIcons() {
  48. QVariantMap icons;
  49. icons["archer"] = "🏹";
  50. icons["swordsman"] = "⚔️";
  51. icons["warrior"] = "⚔️";
  52. icons["spearman"] = "🛡️";
  53. icons["cavalry"] = "🐎";
  54. icons["default"] = "👤";
  55. return icons;
  56. }
  57. QVariantMap Theme::nationEmblems() {
  58. QVariantMap emblems;
  59. constexpr auto k_resource_prefix =
  60. #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
  61. "qrc:/StandardOfIron/assets/visuals/emblems/";
  62. #else
  63. "qrc:/assets/visuals/emblems/";
  64. #endif
  65. emblems["roman_republic"] =
  66. QString::fromLatin1(k_resource_prefix) + "rome.png";
  67. emblems["carthage"] = QString::fromLatin1(k_resource_prefix) + "cartaghe.png";
  68. return emblems;
  69. }