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"; // // // // СкрытьПаруВыбранныхФишекПослеЗадержки = мир => { setTimeout( function() { for (var номер in мир.выбранныеФишки) { var н = мир.выбранныеФишки[номер]; // Перемещаем фишку на другой слой для исключения её из отрисовки и выбора. var ф = мир.фишки[н]; ф.layers.set(1); } мир.выбранныеФишки = []; }, 100 ); } // // // // СнятьВыделениеСПервойВыбраннойФишки = мир => { var н = мир.выбранныеФишки.shift(); var ф = мир.фишки[н]; var г = мир.группы[н]; var м = мир.материалы[г]; ф.material = м; } // // // // СравнитьПаруВыбранныхФишек = мир => { // Удостоверяемся в наличии двух фишек. if (мир.выбранныеФишки.length != 2) { return; } var н1 = мир.выбранныеФишки[0]; var н2 = мир.выбранныеФишки[1]; var г1 = мир.группы[н1]; var г2 = мир.группы[н2]; if (г1 == г2) { мир.уведомить("выбрали пару фишек одной группы"); } else { мир.уведомить("выбрали пару фишек разных групп"); } }; // // // // ВыделитьВыбраннуюФишку = мир => { var н = мир.выбраннаяФишка; var ф = мир.фишки[н]; var г = мир.группы[н]; var м = мир.выбранныеМатериалы[г]; ф.material = м; }; // // // // ВыбратьФишку = мир => { //var номер = мир.выбранныйУзел.userData; /* // Отсекаем выбор одной и той же фишки. if (мир.выбраннаяФишка && мир.выбраннаяФишка == номер) { return; } мир.выбранныеФишки.push(номер); мир.уведомить("выбрали фишку"); */ //мир.уведомить("надо попробовать выбрать фишку маджонга"); }; // // // // ПодготовитьФишкуКВыбору = мир => { var номер = мир.выбранныйУзел.userData; мир.фишкаМаджонгаДляВыбора = номер; } // // // // ПодготовитьФишкиКВыбору = мир => { мир.выборныеУзлы = мир.фишки; }; // // // // НазначитьФишкамМатериалы = мир => { for (var н in мир.фишки) { var ф = мир.фишки[н]; var г = мир.фишкиМаджонга[н]["🚩"]; var м = мир.материалы[г]; ф.material = м; } }; // // // // СоздатьФишки = мир => { var фишка = мир.полигональныеСетки[РЕСУРСЫ][ФИШКА]; мир.фишки = []; for (var номер in мир.фишкиМаджонга) { var фм = мир.фишкиМаджонга[номер]; var ф = фишка.clone(); ф.userData = номер; ф.position.set(фм["📍"][0], 0, фм["📍"][1]); мир.фишки.push(ф); мир.сцена.add(ф); } }; // // // // ПодготовитьсяКСозданиюФишек = мир => { мир.фишкиМаджонга = [ { "📍": [0, 0], "🚩": 0, }, { "📍": [3, 0], "🚩": 0, }, { "📍": [0, 3], "🚩": 1, }, ]; }; // // // // СоздатьПримерСцены = мир => { мир.сцена.background = new THREE.Color(0xFFFFFF); мир.камера.position.y = 10; мир.камера.position.z = 5; мир.камера.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; } }; // // // // СкрытьКрутилку = мир => { document.getElementById("крутилка").style.display = "none"; };