Files
MAOH_1/🗜️.js

176 lines
5.4 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/kornerr/APXuB/raw/branch/master/MAOH.zip";
const КЛЮЧЕВОЙ_МОДУЛЬ = "https://git.opengamestudio.org/MAOH/CYMA/raw/branch/master/0000";
// // // //
СохранитьСобранныеМодули = мир =>
{
function сохранитьМодуль(мир, список, номер, успех, провал)
{
const ук = мир.списокМодулейИзАрхива[номер];
мир.модули.сохранили.подписатьРаз(function() {
успех();
});
мир.модули.сохранить(ук);
}
сделатьПоследовательно(
мир,
мир.списокМодулейИзАрхива,
сохранитьМодуль,
function() {
мир.уведомить("сохранили собранные модули");
}
);
};
// // // //
СобратьМодулиПриложенияИзАрхива = мир =>
{
function собратьМодуль(мир, список, номер, успех, провал)
{
const ук = мир.списокМодулейИзАрхива[номер];
const оп = мир.описанияМодулейИзАрхива[номер];
собратьМодульИзАрхива(
мир,
мир.архив,
номер,
ук,
оп,
function(модуль) {
мир.модули.модули[модуль.указатель] = модуль;
успех();
}
);
}
сделатьПоследовательно(
мир,
мир.списокМодулейИзАрхива,
собратьМодуль,
function() {
console.debug("собрали модули приложения из архива");
мир.уведомить("собрали модули приложения из архива");
}
);
};
// // // //
СобратьОписанияМодулейИзАрхива = мир =>
{
мир.описанияМодулейИзАрхива = [];
function собратьОписание(мир, список, номер, успех, провал)
{
const ук = список[номер];
var файл = `${номер}/0000`;
мир.архив.file(файл).async("string").then(function(содержимое) {
var описание = мир.разобрать0000(содержимое);
мир.описанияМодулейИзАрхива.push(описание);
успех();
});
}
сделатьПоследовательно(
мир,
мир.списокМодулейИзАрхива,
собратьОписание,
function() {
мир.уведомить("собрали описания модулей из архива");
console.debug("описания", мир.описанияМодулейИзАрхива);
}
);
};
// // // //
СобратьСписокМодулейИзАрхива = мир =>
{
мир.архив.file("gitjs").async("string").then(function(содержимое) {
var строки = содержимое.split(/\n/);
var список = [];
for (var н in строки)
{
var строка = строки[н];
if (строка.length)
{
список.push(строка);
}
}
мир.списокМодулейИзАрхива = список;
мир.уведомить("собрали список модулей из архива");
});
};
// // // //
УведомитьОНаличииПриложения = мир =>
{
мир.уведомить("приложение присутствует");
};
// // // //
РазобратьАрхивПриложения = мир =>
{
var zip = new JSZip();
zip.loadAsync(мир.архив).then(function(архив) {
мир.архив = архив.folder("MAOH");
мир.уведомить("разобрали архив приложения");
});
};
// // // //
СкачатьАрхивПриложения = мир =>
{
мир.взять(
АДРЕС_АРХИВА,
function(содержимое) {
мир.архив = содержимое;
мир.уведомить("скачали архив приложения");
},
function(ошибка) {
мир.уведомить("не скачали архив приложения");
},
true
);
};
// // // //
ПроверитьНаличиеКлючевогоМодуляПриложения = мир =>
{
console.debug("проверить наличие ключевого модуля приложения");
var м = мир.модули.модули[КЛЮЧЕВОЙ_МОДУЛЬ];
if (м)
{
console.debug("приложение есть");
мир.уведомить("приложение присутствует");
}
else
{
console.debug("приложения нет");
мир.уведомить("приложение отсутствует");
}
};