25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.6KB

  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. темы.push({
  26. "📦": указатель,
  27. "📁": файлы,
  28. });
  29. }
  30. мир.реестрМаджонга["🀄"] = темы;
  31. console.debug("темы:", темы);
  32. };
  33. // // // //
  34. ОбновитьСписокРаскладокМаджонга = мир =>
  35. {
  36. раскладки = [];
  37. for (var указатель in мир.модули.модули)
  38. {
  39. var м = мир.модули.модули[указатель];
  40. var файлы = Object.keys(м.структура).sort();
  41. var лишьРаскладки = true;
  42. for (var н in файлы)
  43. {
  44. var файл = файлы[н];
  45. if (!файл.endsWith(".layout"))
  46. {
  47. лишьРаскладки = false;
  48. break;
  49. }
  50. }
  51. if (лишьРаскладки)
  52. {
  53. раскладки.push({
  54. "📦": указатель,
  55. "📁": файлы,
  56. });
  57. }
  58. }
  59. мир.реестрМаджонга["📍"] = раскладки;
  60. console.debug("раскладки:", раскладки);
  61. };
  62. // // // //
  63. ОбновитьРеестрМаджонга = мир =>
  64. {
  65. мир.уведомить("надо обновить реестр маджонга");
  66. };
  67. // // // //
  68. ПодготовитьРеестрМаджонга = мир =>
  69. {
  70. мир.реестрМаджонга = {
  71. "📍": [],
  72. "🀄": [],
  73. };
  74. };