176 lines
5.4 KiB
JavaScript
176 lines
5.4 KiB
JavaScript
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("приложения нет");
|
||
мир.уведомить("приложение отсутствует");
|
||
}
|
||
}; |