|
|
@@ -5,18 +5,111 @@ const КЛЮЧЕВОЙ_МОДУЛЬ = "https://git.opengamestudio.org/MAOH/CYMA/ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
УведомитьОЯкобыНаличииПриложения = мир => |
|
|
|
СохранитьМодулиПриложенияИзАрхива = мир => |
|
|
|
{ |
|
|
|
мир.уведомить("приложение присутствует"); |
|
|
|
console.debug("сохранить модули приложения из архива"); |
|
|
|
|
|
|
|
var номер = 0; |
|
|
|
const ук = мир.списокМодулейИзАрхива[номер]; |
|
|
|
const описание = мир.описанияМодулейИзАрхива[номер]; |
|
|
|
var список = Object.keys(описание.структура).sort(); |
|
|
|
console.debug("список", список); |
|
|
|
|
|
|
|
var модуль = |
|
|
|
new Модуль( |
|
|
|
описание.имя, |
|
|
|
описание.версия, |
|
|
|
описание["🏠"], |
|
|
|
указатель, |
|
|
|
указатель + "/..", |
|
|
|
описание.структура |
|
|
|
); |
|
|
|
модуль.содержимое = {}; |
|
|
|
|
|
|
|
function собратьМодуль(мир, список, номер, успех, провал) |
|
|
|
{ |
|
|
|
const файл = список[номер]; |
|
|
|
var свойства = описание.структура[файл]; |
|
|
|
var тип = свойства.двоичный ? "arraybuffer" : "string"; |
|
|
|
var путь = `${номер}${файл}`; |
|
|
|
console.debug("путь", путь); |
|
|
|
мир.архив.file(путь).async(тип).then(function(содержимое) { |
|
|
|
модуль.содержимое[файл] = содержимое; |
|
|
|
успех(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
сделатьПоследовательно( |
|
|
|
мир, |
|
|
|
список, |
|
|
|
собратьМодуль, |
|
|
|
function() { |
|
|
|
//мир.уведомить("собрали содержимое модулей из архива"); |
|
|
|
//console.debug("описания", мир.описанияМодулейИзАрхива); |
|
|
|
console.debug("собранный модуль", модуль); |
|
|
|
} |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СохранитьМодулиПриложенияИзАрхива = мир => |
|
|
|
СобратьОписанияМодулейИзАрхива = мир => |
|
|
|
{ |
|
|
|
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(строка); |
|
|
|
} |
|
|
|
} |
|
|
|
мир.списокМодулейИзАрхива = список; |
|
|
|
мир.уведомить("собрали список модулей из архива"); |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
УведомитьОЯкобыНаличииПриложения = мир => |
|
|
|
{ |
|
|
|
мир.уведомить("приложение присутствует"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -26,8 +119,8 @@ const КЛЮЧЕВОЙ_МОДУЛЬ = "https://git.opengamestudio.org/MAOH/CYMA/ |
|
|
|
РазобратьАрхивПриложения = мир => |
|
|
|
{ |
|
|
|
var zip = new JSZip(); |
|
|
|
zip.loadAsync(мир.архивПриложения).then(function(архив) { |
|
|
|
мир.архивПриложения = архив; |
|
|
|
zip.loadAsync(мир.архив).then(function(архив) { |
|
|
|
мир.архив = архив.folder("MAOH"); |
|
|
|
мир.уведомить("разобрали архив приложения"); |
|
|
|
}); |
|
|
|
}; |
|
|
@@ -42,7 +135,7 @@ const КЛЮЧЕВОЙ_МОДУЛЬ = "https://git.opengamestudio.org/MAOH/CYMA/ |
|
|
|
мир.взять( |
|
|
|
АДРЕС_АРХИВА, |
|
|
|
function(содержимое) { |
|
|
|
мир.архивПриложения = содержимое; |
|
|
|
мир.архив = содержимое; |
|
|
|
мир.уведомить("скачали архив приложения"); |
|
|
|
}, |
|
|
|
function(ошибка) { |
|
|
|