|
|
@@ -1,11 +1,33 @@ |
|
|
|
const РАССТОЯНИЕ = 40; |
|
|
|
const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5; |
|
|
|
|
|
|
|
|
|
|
|
var ТЕМА = "";//"https://git.opengamestudio.org/MAOH/TEMA_M1K/raw/branch/master/0000"; |
|
|
|
var ФИШКА = "";//"/TileHigh.gltf"; |
|
|
|
var РАСКЛАДКИ = "";//"https://git.opengamestudio.org/MAOH/PACK_M1/raw/branch/master/0000"; |
|
|
|
var РАСКЛАДКА = "";//"/X_shaped.layout"; |
|
|
|
|
|
|
|
// ?? // ?? |
|
|
|
|
|
|
|
|
|
|
|
ОтладитьСменуНастроекПриНажатии = мир => |
|
|
|
{ |
|
|
|
if (мир.позицияНажатияВРисователе.x < 0.9) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
var н = 0; |
|
|
|
var нн = 1; |
|
|
|
// Переключаем тему и раскладку. |
|
|
|
if (мир.настройкиМаджонга["🀄/📦"] == мир.реестрМаджонга["🀄"][0]["📦"]) |
|
|
|
{ |
|
|
|
н = 1; |
|
|
|
нн = 0; |
|
|
|
} |
|
|
|
мир.настройкиМаджонга = { |
|
|
|
"🀄/📦": мир.реестрМаджонга["🀄"][н]["📦"], |
|
|
|
"🀄/📁": мир.реестрМаджонга["🀄"][н]["📁"][42], |
|
|
|
"📍/📦": мир.реестрМаджонга["📍"][нн]["📦"], |
|
|
|
"📍/📁": мир.реестрМаджонга["📍"][нн]["📁"][0], |
|
|
|
} |
|
|
|
мир.уведомить("изменили настройки маджонга"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
@@ -59,13 +81,12 @@ var РАСКЛАДКА = "";//"/X_shaped.layout"; |
|
|
|
|
|
|
|
ПодготовитьсяКСозданиюФишек = мир => |
|
|
|
{ |
|
|
|
РАСКЛАДКИ = мир.реестрМаджонга["📍"][0]["📦"]; |
|
|
|
РАСКЛАДКА = мир.реестрМаджонга["📍"][0]["📁"][0]; |
|
|
|
|
|
|
|
var м = мир.модули.модульПоУказателю(РАСКЛАДКИ); |
|
|
|
var содержимое = м.содержимое[РАСКЛАДКА]; |
|
|
|
var настройки = мир.настройкиМаджонга; |
|
|
|
|
|
|
|
var м = мир.модули.модульПоУказателю(настройки["📍/📦"]); |
|
|
|
var содержимое = м.содержимое[настройки["📍/📁"]]; |
|
|
|
var позиции = разобратьРаскладкуKMahjongg(содержимое); |
|
|
|
|
|
|
|
|
|
|
|
var фишки = []; |
|
|
|
var группа = 0; |
|
|
|
for (var номер in позиции) |
|
|
@@ -86,7 +107,7 @@ var РАСКЛАДКА = "";//"/X_shaped.layout"; |
|
|
|
}; |
|
|
|
|
|
|
|
мир.фишкиМаджонга = фишки; |
|
|
|
мир.модельФишкиСцены = мир.полигональныеСетки[ТЕМА][ФИШКА]; |
|
|
|
мир.модельФишкиСцены = мир.полигональныеСетки[настройки["🀄/📦"]][настройки["🀄/📁"]]; |
|
|
|
мир.сцена.add(мир.сценаМаджонга); |
|
|
|
}; |
|
|
|
|
|
|
@@ -94,28 +115,14 @@ var РАСКЛАДКА = "";//"/X_shaped.layout"; |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьПримерСцены = мир => |
|
|
|
{ |
|
|
|
мир.сцена.background = new THREE.Color(0xFFFFFF); |
|
|
|
мир.камера.position.y = РАССТОЯНИЕ * КОЭФФИЦИЕНТ_ВЫСОТЫ; |
|
|
|
мир.камера.position.z = РАССТОЯНИЕ; |
|
|
|
мир.камера.lookAt(new THREE.Vector3(0, 0, 0)); |
|
|
|
|
|
|
|
мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1); |
|
|
|
мир.свет.position.set(-0.5, 1, 0.5).normalize(); |
|
|
|
мир.сцена.add(мир.свет); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьМатериалыФишек = мир => |
|
|
|
{ |
|
|
|
var настройки = мир.настройкиМаджонга; |
|
|
|
|
|
|
|
мир.материалыФишекСцены = []; |
|
|
|
мир.выбранныеМатериалыФишекСцены = []; |
|
|
|
|
|
|
|
var текстуры = мир.текстуры[ТЕМА]; |
|
|
|
var текстуры = мир.текстуры[настройки["🀄/📦"]]; |
|
|
|
for (var имя in текстуры) |
|
|
|
{ |
|
|
|
var текстура = текстуры[имя]; |
|
|
@@ -137,25 +144,24 @@ var РАСКЛАДКА = "";//"/X_shaped.layout"; |
|
|
|
|
|
|
|
ПодготовитьсяКЗагрузкеРесурсов = мир => |
|
|
|
{ |
|
|
|
// Выбираем первую тему и первую фишку из доступных. |
|
|
|
ТЕМА = мир.реестрМаджонга["🀄"][0]["📦"]; |
|
|
|
ФИШКА = мир.реестрМаджонга["🀄"][0]["📁"][42]; |
|
|
|
|
|
|
|
var настройки = мир.настройкиМаджонга; |
|
|
|
|
|
|
|
мир.полигональныеСетки = { |
|
|
|
[ТЕМА]: { |
|
|
|
[ФИШКА]: null, |
|
|
|
[настройки["🀄/📦"]]: { |
|
|
|
[настройки["🀄/📁"]]: null, |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
мир.текстуры = { |
|
|
|
[ТЕМА]: { }, |
|
|
|
[настройки["🀄/📦"]]: { }, |
|
|
|
}; |
|
|
|
var м = мир.модули.модульПоУказателю(ТЕМА); |
|
|
|
var м = мир.модули.модульПоУказателю(настройки["🀄/📦"]); |
|
|
|
var файлы = Object.keys(м.структура).sort(); |
|
|
|
for (var номер in файлы) |
|
|
|
var колво = 42; |
|
|
|
for (var номер = 0; номер < колво; ++номер) |
|
|
|
{ |
|
|
|
var файл = файлы[номер]; |
|
|
|
мир.текстуры[ТЕМА][файл] = null; |
|
|
|
мир.текстуры[настройки["🀄/📦"]][файл] = null; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
@@ -163,6 +169,58 @@ var РАСКЛАДКА = "";//"/X_shaped.layout"; |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЗагрузитьМодулиРесурсов = мир => |
|
|
|
{ |
|
|
|
var настройки = мир.настройкиМаджонга; |
|
|
|
var указатели = [ |
|
|
|
настройки["🀄/📦"], |
|
|
|
настройки["📍/📦"], |
|
|
|
]; |
|
|
|
var сообщение = "Загрузка модулей ресурсов ⚬ 加载资源模块 ⚬ Loading resource modules"; |
|
|
|
console.debug(сообщение, указатели); |
|
|
|
мир.модули.использовали.подписатьРаз(function() { |
|
|
|
мир.уведомить("загрузили модули ресурсов"); |
|
|
|
}); |
|
|
|
мир.модули.использовать(указатели); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЗадатьНастройкиМаджонга = мир => |
|
|
|
{ |
|
|
|
// Выбираем первую тему, фишку, раскладку из доступных. |
|
|
|
мир.настройкиМаджонга = { |
|
|
|
"🀄/📦": мир.реестрМаджонга["🀄"][0]["📦"], |
|
|
|
"🀄/📁": мир.реестрМаджонга["🀄"][0]["📁"][42], |
|
|
|
"📍/📦": мир.реестрМаджонга["📍"][0]["📦"], |
|
|
|
"📍/📁": мир.реестрМаджонга["📍"][0]["📁"][0], |
|
|
|
} |
|
|
|
|
|
|
|
мир.уведомить("изменили настройки маджонга"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьПримерСцены = мир => |
|
|
|
{ |
|
|
|
мир.сцена.background = new THREE.Color(0xFFFFFF); |
|
|
|
мир.камера.position.y = РАССТОЯНИЕ * КОЭФФИЦИЕНТ_ВЫСОТЫ; |
|
|
|
мир.камера.position.z = РАССТОЯНИЕ; |
|
|
|
мир.камера.lookAt(new THREE.Vector3(0, 0, 0)); |
|
|
|
|
|
|
|
мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1); |
|
|
|
мир.свет.position.set(-0.5, 1, 0.5).normalize(); |
|
|
|
мир.сцена.add(мир.свет); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПлавноУбратьСтраницуЗагрузкиИСкрытьКрутилку = мир => |
|
|
|
{ |
|
|
|
плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 }); |
|
|
|