|
-
- const РЕСУРСЫ = "https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000";
- const ФИШКА = "/фишка.gltf";
- const ТЕМА_ОТЛАДОЧНАЯ = "https://git.opengamestudio.org/MAOH/MAOH_TEMA_OTAK/raw/branch/master/0000";
- const РАСКЛАДКИ = "https://git.opengamestudio.org/MAOH/MAOH_PACK_OTAK/raw/branch/master/0000";
-
-
- // // // //
-
-
- СкрытьУбранныеФишки = мир =>
- {
- for (var номер in мир.убранныеФишкиМаджонга)
- {
- var н = мир.убранныеФишкиМаджонга[номер];
- // Перемещаем фишку на другой слой для исключения её из отрисовки и выбора.
- var ф = мир.фишки[н];
- ф.layers.set(1);
- }
- }
-
-
- // // // //
-
-
- ЗадатьФишкуДляВыбора = мир =>
- {
- var номер = мир.выбранныйУзел.userData;
- мир.фишкаМаджонгаДляВыбора = номер;
- }
-
-
- // // // //
-
-
- ПодготовитьФишкиКВыбору = мир =>
- {
- мир.выборныеУзлы = мир.фишки;
- мир.задержкаОтображенияВыбранныхФишек = 0;
- };
-
-
- // // // //
-
-
- ВыделитьВыбранныеФишки = мир =>
- {
- for (var номер in мир.выбранныеФишкиМаджонга)
- {
- var н = мир.выбранныеФишкиМаджонга[номер];
- var ф = мир.фишки[н];
- var г = мир.фишкиМаджонга[н]["🚩"];
- var м = мир.выбранныеМатериалы[г];
- ф.material = м;
- }
- };
-
-
- // // // //
-
-
- ЗадатьМатериалыФишкам = мир =>
- {
- for (var н in мир.фишки)
- {
- var ф = мир.фишки[н];
- var г = мир.фишкиМаджонга[н]["🚩"];
- var м = мир.материалы[г];
- ф.material = м;
- }
- };
-
-
- // // // //
-
-
- ПодготовитьсяКСозданиюФишек = мир =>
- {
- var м = мир.модули.модульПоУказателю(РАСКЛАДКИ);
- var содержимое = м.содержимое["/😀.layout"];
- var позиции = разобратьРаскладкуKMahjongg(содержимое);
-
- var фишки = [];
- var группа = 0;
- for (var номер in позиции)
- {
- var п = позиции[номер];
- фишки.push({
- "📍": [п[0], п[1], п[2]],
- "🚩": группа,
- });
- if (номер % 2)
- {
- ++группа;
- }
- };
- мир.фишкиМаджонга = фишки;
-
- мир.модельФишкиСцены = мир.полигональныеСетки[РЕСУРСЫ][ФИШКА];
- мир.материалыФишекСцены = мир.материалы;
- мир.выбранныеМатериалыФишекСцены = мир.выбранныеМатериалы;
-
- мир.сцена.add(мир.сценаМаджонга);
- };
-
-
- // // // //
-
-
- СоздатьПримерСцены = мир =>
- {
- мир.сцена.background = new THREE.Color(0xFFFFFF);
- мир.камера.position.y = 20;
- мир.камера.position.z = 10;
- мир.камера.lookAt(new THREE.Vector3(0, 0, 0));
-
- мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1);
- мир.свет.position.set(-0.5, 1, 0.5).normalize();
- мир.сцена.add(мир.свет);
- };
-
-
- // // // //
-
-
- СоздатьМатериалыФишек = мир =>
- {
- мир.материалы = [];
- мир.выбранныеМатериалы = [];
- var текстуры = мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ];
- for (var имя in текстуры)
- {
- var текстура = текстуры[имя];
- var материал = new THREE.MeshLambertMaterial({
- map: текстура,
- color: new THREE.Color(0xAAAAAA),
- });
- мир.материалы.push(материал);
- var выбранныйМатериал = new THREE.MeshLambertMaterial({
- map: текстура,
- color: new THREE.Color(0xFFFFFF),
- });
- мир.выбранныеМатериалы.push(выбранныйМатериал);
- }
- };
-
- // // // //
-
-
- ПодготовитьсяКЗагрузкеРесурсов = мир =>
- {
- мир.полигональныеСетки = {
- [РЕСУРСЫ]: {
- [ФИШКА]: null,
- },
- };
-
- мир.текстуры = {
- [ТЕМА_ОТЛАДОЧНАЯ]: { },
- };
- var м = мир.модули.модульПоУказателю(ТЕМА_ОТЛАДОЧНАЯ);
- var файлы = Object.keys(м.структура).sort();
- for (var номер in файлы)
- {
- var файл = файлы[номер];
- мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ][файл] = null;
- }
- };
-
-
- // // // //
-
-
- ПлавноУбратьСтраницуЗагрузкиИСкрытьКрутилку = мир =>
- {
- плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 });
- плавноСкрыть("крутилка", { "задержка": 0.4 });
- };
|