Files
MAOH_1/🏁.js

242 lines
7.2 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;
// // // //
ВывестиПоражение = мир =>
{
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 настройки = мир.настройкиМаджонга;
var указатели = [
настройки["🀄/📦"],
настройки["📍/📦"],
];
var сообщение = "Загрузка модулей ресурсов ⚬ 加载资源模块 ⚬ Loading resource modules";
console.debug(сообщение, указатели);
мир.модули.использовали.подписатьРаз(function() {
мир.уведомить("загрузили модули ресурсов");
});
мир.модули.использовать(указатели);
};
// // // //
ПодготовитьПредставлениеСпискаРаскладок = мир =>
{
var список = мир.списокРаскладок;
var номераНазвания = [];
for (var н in список)
{
var номер = Number(н) + 1;
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],
}
мир.уведомить("изменили настройки маджонга");
};
// // // //
СоздатьПримерСцены = мир =>
{
мир.сцена.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 });
};