РЕЕстр МАджонга
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.5KB

  1. ОбновитьСписокТемМаджонга = мир =>
  2. {
  3. темы = {};
  4. for (var указатель in мир.модули.модули)
  5. {
  6. var м = мир.модули.модули[указатель];
  7. var файлы = Object.keys(м.структура).sort();
  8. // Проверяем наличие не менее 43 файлов (42 текстуры и 1 фишка).
  9. if (файлы.length < 43)
  10. {
  11. continue;
  12. }
  13. // Проверяем наличие 42 изображений.
  14. естьТекстура = (файл) => { return рисовательПоддерживаетИзображениеСИменемФайла(файл); };
  15. if (файлы.filter(естьТекстура).length < 42)
  16. {
  17. continue;
  18. }
  19. // Проверяем наличие хотя бы одного файла `*.gltf`.
  20. естьФишка = (файл) => { return файл.endsWith(".gltf"); };
  21. if (!файлы.filter(естьФишка).length)
  22. {
  23. continue;
  24. }
  25. темы[указатель] = {
  26. "📁": файлы,
  27. };
  28. }
  29. мир.реестрМаджонга["🀄"] = темы;
  30. console.debug("темы:", темы);
  31. };
  32. // // // //
  33. ОбновитьСписокРаскладокМаджонга = мир =>
  34. {
  35. раскладки = {};
  36. for (var указатель in мир.модули.модули)
  37. {
  38. var м = мир.модули.модули[указатель];
  39. var файлы = Object.keys(м.структура).sort();
  40. var лишьРаскладки = true;
  41. for (var н in файлы)
  42. {
  43. var файл = файлы[н];
  44. if (!файл.endsWith(".layout"))
  45. {
  46. лишьРаскладки = false;
  47. break;
  48. }
  49. }
  50. if (лишьРаскладки)
  51. {
  52. раскладки[указатель] = {
  53. "📁": файлы,
  54. };
  55. }
  56. }
  57. мир.реестрМаджонга["📍"] = раскладки;
  58. console.debug("раскладки:", раскладки);
  59. };
  60. // // // //
  61. ОбновитьРеестрМаджонга = мир =>
  62. {
  63. мир.уведомить("надо обновить реестр маджонга");
  64. };
  65. // // // //
  66. ПодготовитьРеестрМаджонга = мир =>
  67. {
  68. мир.реестрМаджонга = {
  69. "📍": {},
  70. "🀄": {},
  71. };
  72. };