Архивация модулей MAOH в один файл zip
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

129 líneas
3.9KB

  1. const РЕСУРСЫ = "https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000";
  2. const ФИШКА = "/фишка.gltf";
  3. const ТЕМА_ОТЛАДОЧНАЯ = "https://git.opengamestudio.org/MAOH/MAOH_TEMA_OTAK/raw/branch/master/0000";
  4. const РАСКЛАДКИ = "https://git.opengamestudio.org/MAOH/MAOH_PACK_OTAK/raw/branch/master/0000";
  5. // // // //
  6. ЗадатьФишкуДляВыбора = мир =>
  7. {
  8. var номер = мир.выбранныйУзел.userData;
  9. мир.фишкаМаджонгаДляВыбора = номер;
  10. }
  11. // // // //
  12. ПодготовитьФишкиКВыбору = мир =>
  13. {
  14. мир.выборныеУзлы = мир.фишкиСцены;
  15. };
  16. // // // //
  17. ПодготовитьсяКСозданиюФишек = мир =>
  18. {
  19. var м = мир.модули.модульПоУказателю(РАСКЛАДКИ);
  20. var содержимое = м.содержимое["/😀.layout"];
  21. var позиции = разобратьРаскладкуKMahjongg(содержимое);
  22. var фишки = [];
  23. var группа = 0;
  24. for (var номер in позиции)
  25. {
  26. var п = позиции[номер];
  27. фишки.push({
  28. "📍": [п[0], п[1], п[2]],
  29. "🚩": группа,
  30. });
  31. if (номер % 2)
  32. {
  33. ++группа;
  34. }
  35. };
  36. мир.фишкиМаджонга = фишки;
  37. мир.модельФишкиСцены = мир.полигональныеСетки[РЕСУРСЫ][ФИШКА];
  38. мир.сцена.add(мир.сценаМаджонга);
  39. };
  40. // // // //
  41. СоздатьПримерСцены = мир =>
  42. {
  43. мир.сцена.background = new THREE.Color(0xFFFFFF);
  44. мир.камера.position.y = 20;
  45. мир.камера.position.z = 10;
  46. мир.камера.lookAt(new THREE.Vector3(0, 0, 0));
  47. мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1);
  48. мир.свет.position.set(-0.5, 1, 0.5).normalize();
  49. мир.сцена.add(мир.свет);
  50. };
  51. // // // //
  52. СоздатьМатериалыФишек = мир =>
  53. {
  54. мир.материалыФишекСцены = [];
  55. мир.выбранныеМатериалыФишекСцены = [];
  56. var текстуры = мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ];
  57. for (var имя in текстуры)
  58. {
  59. var текстура = текстуры[имя];
  60. var материал = new THREE.MeshLambertMaterial({
  61. map: текстура,
  62. color: new THREE.Color(0xAAAAAA),
  63. });
  64. мир.материалыФишекСцены.push(материал);
  65. var выбранныйМатериал = new THREE.MeshLambertMaterial({
  66. map: текстура,
  67. color: new THREE.Color(0xFFFFFF),
  68. });
  69. мир.выбранныеМатериалыФишекСцены.push(выбранныйМатериал);
  70. }
  71. };
  72. // // // //
  73. ПодготовитьсяКЗагрузкеРесурсов = мир =>
  74. {
  75. мир.полигональныеСетки = {
  76. [РЕСУРСЫ]: {
  77. [ФИШКА]: null,
  78. },
  79. };
  80. мир.текстуры = {
  81. [ТЕМА_ОТЛАДОЧНАЯ]: { },
  82. };
  83. var м = мир.модули.модульПоУказателю(ТЕМА_ОТЛАДОЧНАЯ);
  84. var файлы = Object.keys(м.структура).sort();
  85. for (var номер in файлы)
  86. {
  87. var файл = файлы[номер];
  88. мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ][файл] = null;
  89. }
  90. };
  91. // // // //
  92. ПлавноУбратьСтраницуЗагрузкиИСкрытьКрутилку = мир =>
  93. {
  94. плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 });
  95. плавноСкрыть("крутилка", { "задержка": 0.4 });
  96. };