Files
APXuBuPOBATb-MAOH/🏁.js

324 lines
9.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const ТЕМАО_УМОЛЧАНИЮ = "https://git.opengamestudio.org/MAOH/TEMA_M1K/raw/branch/master/0000";
const РАСКО_УМОЛЧАНИЮ = "https://git.opengamestudio.org/MAOH/PACK_M1/raw/branch/master/0000";
const РАССТОЯНИЕ = 40;
const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
// // // //
ИспользоватьВыбраннуюРаскладку = мир =>
{
var э = мир.списокРаскладок[мир.номерВыбраннойРаскладкиМаджонга];
мир.настройкиМаджонга["📍/📦"] = э[1];
мир.настройкиМаджонга["📍/📁"] = э[0];
мир.уведомить("изменили настройки маджонга");
};
// // // //
ВывестиПоражение = мир =>
{
console.debug("ПОРАЖЕНИЕ");
};
// // // //
ВывестиПобеду = мир =>
{
console.debug("ПОБЕДА");
};
// // // //
ЗадатьФишкуДляВыбора = мир =>
{
var номер = мир.выбранныйУзел.userData;
мир.фишкаМаджонгаДляВыбора = номер;
}
// // // //
ПодготовитьФишкиКВыбору = мир =>
{
мир.выборныеУзлы = мир.фишкиСцены;
};
// // // //
ПодготовитьсяКСозданиюФишек = мир =>
{
var настройки = мир.настройкиМаджонга;
var м = мир.модули.модульПоУказателю(настройки["📍/📦"]);
var содержимое = м.содержимое[настройки["📍/📁"]];
var позиции = разобратьРаскладкуKMahjongg(содержимое);
var фишки = [];
var группа = 0;
for (var номер in позиции)
{
var п = позиции[номер];
фишки.push({
"📍": [п[0], п[1], п[2]],
"🚩": группа,
});
if (номер % 2)
{
++группа;
if (группа > 41)
{
группа = 0;
}
}
};
мир.фишкиМаджонга = фишки;
мир.модельФишкиСцены = мир.полигональныеСетки[настройки["🀄/📦"]][настройки["🀄/📁"]];
мир.сцена.add(мир.сценаМаджонга);
};
// // // //
СоздатьФишки = мир =>
{
мир.уведомить("надо создать фишки");
};
// // // //
СоздатьМатериалыФишек = мир =>
{
var настройки = мир.настройкиМаджонга;
мир.материалыФишекСцены = [];
мир.выбранныеМатериалыФишекСцены = [];
var текстуры = мир.текстуры[настройки["🀄/📦"]];
for (var имя in текстуры)
{
var текстура = текстуры[имя];
var материал = new THREE.MeshLambertMaterial({
map: текстура,
color: new THREE.Color(0xCCCCCC),
});
мир.материалыФишекСцены.push(материал);
var выбранныйМатериал = new THREE.MeshLambertMaterial({
map: текстура,
color: new THREE.Color(0xFFFFFF),
});
мир.выбранныеМатериалыФишекСцены.push(выбранныйМатериал);
}
};
// // // //
ПодготовитьсяКЗагрузкеРесурсов = мир =>
{
var настройки = мир.настройкиМаджонга;
мир.полигональныеСетки = {
[настройки["🀄/📦"]]: {
[настройки["🀄/📁"]]: null,
},
};
мир.текстуры = {
[настройки["🀄/📦"]]: { },
};
var м = мир.модули.модульПоУказателю(настройки["🀄/📦"]);
var файлы = Object.keys(м.структура).sort();
var колво = 42;
for (var номер = 0; номер < колво; ++номер)
{
var файл = файлы[номер];
мир.текстуры[настройки["🀄/📦"]][файл] = null;
}
};
// // // //
ПроверитьНеобходимостьЗагрузкиРесурсов = мир =>
{
var настройки = мир.настройкиМаджонга;
if (
мир.полигональныеСетки &&
настройки["🀄/📦"] in мир.полигональныеСетки &&
настройки["🀄/📁"] in мир.полигональныеСетки[настройки["🀄/📦"]] &&
мир.текстуры &&
настройки["🀄/📦"] in мир.текстуры
) {
мир.уведомить("ресурсы не нужно загружать");
}
else
{
мир.уведомить("ресурсы нужно загружать");
}
};
// // // //
ЗагрузитьМодулиРесурсов = мир =>
{
var указатели = мир.списокМодулейРесурсовДляЗагрузки;
var сообщение = "Загрузка модулей ресурсов ⚬ 加载资源模块 ⚬ Loading resource modules";
console.debug(сообщение, указатели);
мир.модули.использовали.подписатьРаз(function() {
мир.уведомить("загрузили модули ресурсов");
});
мир.модули.использовать(указатели);
};
// // // //
ПроверитьНеобходимостьЗагрузкиМодулейРесурсов = мир =>
{
if (мир.списокМодулейРесурсовДляЗагрузки.length)
{
мир.уведомить("модули ресурсов нужно загружать");
}
else
{
мир.уведомить("модули ресурсов не нужно загружать");
}
}
// // // //
ПодготовитьСписокМодулейРесурсовДляЗагрузки = мир =>
{
var проверить = [
мир.настройкиМаджонга["🀄/📦"],
мир.настройкиМаджонга["📍/📦"],
];
var загрузить = [];
for (var н in проверить)
{
var указатель = проверить[н];
var м = мир.модули.модульПоУказателю(указатель);
// Модуль не загружен.
if (!м.содержимое)
{
загрузить.push_back(указатель);
}
}
мир.списокМодулейРесурсовДляЗагрузки = загрузить;
};
// // // //
ПодготовитьПредставлениеСпискаРаскладок = мир =>
{
var список = мир.списокРаскладок;
var названия = [];
for (var н in список)
{
var файл = список[н][0];
var название = файл
.substring(1)
.replace(".layout", "");
названия.push(название);
}
мир.списокРаскладокМаджонга = названия;
};
// // // //
ПодготовитьСписокРаскладок = мир =>
{
var раскладки = мир.реестрМаджонга["📍"];
var список = [];
var указатели = Object.keys(раскладки).sort();
for (var н in указатели)
{
var указатель = указатели[н];
var файлы = раскладки[указатель]["📁"];
for (var номер in файлы)
{
var файл = файлы[номер];
список.push([файл, указатель]);
}
}
мир.списокРаскладок = список;
};
// // // //
ЗадатьНастройкиМаджонгаПоУмолчанию = мир =>
{
var файлыТемы = мир.реестрМаджонга["🀄"][ТЕМАО_УМОЛЧАНИЮ]["📁"];
var файлыРаскладок = мир.реестрМаджонга["📍"][РАСКО_УМОЛЧАНИЮ]["📁"];
мир.настройкиМаджонга = {
"🀄/📦": ТЕМАО_УМОЛЧАНИЮ,
"🀄/📁": файлыТемы[42],
"📍/📦": РАСКО_УМОЛЧАНИЮ,
"📍/📁": файлыРаскладок[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 });
плавноСкрыть("крутилка", { "задержка": 0.4 });
};