Изменения от Главреда ГитЖС | Changes of GitJS Glavred

This commit is contained in:
Главред | Glavred
2020-11-16 18:41:11 +03:00
parent a62339f4f8
commit 0041f8eeee
9 changed files with 267 additions and 10 deletions

12
0000
View File

@@ -1,4 +1,10 @@
Рисователь / Примеры
Рисователь / Смотри
x /пуск|run.js
/пуск|run.череда
https://git.opengamestudio.org/PuCOBATEJlb/nPuMEPbl
x /🎬.js
/🎬.череда
/📦
x /🔄.js
/🔄.череда
x /🧱.js

View File

@@ -1,5 +0,0 @@
ПриветИзШаблона = мир =>
{
console.log("Привет из шаблона!");
console.log("Hello from the template!");
};

View File

@@ -1,2 +0,0 @@
пуск
привет из шаблона

85
🎬.js Normal file
View File

@@ -0,0 +1,85 @@
// // // //
СкрытьКрутилку = мир =>
{
document.getElementById("крутилка").style.display = "none";
};
// // // //
ОкончитьЗагрузкуПриложения = мир =>
{
мир.уведомить("надо окончить загрузку приложения");
};
// // // //
ПроверитьНаличиеОбновленийПриложения = мир =>
{
// Эта функция находится вне "/🔄.js", т.к. "/🔄.js" отключаем,
// отчего этой функции просто не будет в пространстве имён.
var событие = "надо обновить приложение при наличии обновлений";
if (событие in мир.события)
{
мир.уведомить(событие);
}
else
{
мир.уведомить("обновления приложения отсутствуют");
}
};
// // // //
СоздатьПримерСцены = мир =>
{
мир.сцена.background = new THREE.Color(0xFFFFFF);
var коэффициент = 2;
var расстояние = 14;
мир.камера.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(мир.свет);
мир.сцена.add(мир.фишка);
};
// // // //
ЗагрузитьРесурсыСцены = мир =>
{
загрузитьМодельЭтогоМодуля(
мир,
"/фишка.gltf",
function(модель) {
мир.фишка = модель;
мир.уведомить("загрузили ресурсы сцены");
}
);
};
// // // //
ВывестиНажатиеВРисователе = мир =>
{
console.debug("Нажатие в рисователе:", мир.позицияНажатияВРисователе);
};

15
🎬.череда Normal file
View File

@@ -0,0 +1,15 @@
#пуск
# настроить рисователя по умолчанию
# загрузить ресурсы сцены
#нажатие в рисователе
# вывести нажатие в рисователе
#загрузили ресурсы сцены
# создать пример сцены
пуск
проверить наличие обновлений приложения
обновления приложения отсутствуют
загрузить библиотеки приложения
загрузили библиотеки приложения
окончить загрузку приложения
скрыть крутилку

2
📦 Normal file
View File

@@ -0,0 +1,2 @@
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000

120
🔄.js Normal file
View File

@@ -0,0 +1,120 @@
// // // //
ПерезагрузитьПриложениеПослеОбновления = мир =>
{
window.location.reload(false);
};
// // // //
УдалитьМодулиПриложенияПередОбновлением = мир =>
{
var список = мир.списокМодулейПриложенияДляОбновления;
for (var номер in список)
{
var указатель = список[номер];
localStorage.removeItem(указатель);
}
};
// // // //
ПроверитьНаличиеМодулейПриложенияДляОбновления = мир =>
{
if (мир.списокМодулейПриложенияДляОбновления.length)
{
мир.уведомить("присутствуют модули приложения для обновления");
}
else
{
мир.уведомить("отсутствуют модули приложения для обновления");
}
}
// // // //
СоставитьСписокМодулейПриложенияДляОбновления = мир =>
{
var список = [];
var описания = мир.описанияМодулейПриложения;
for (var указатель in описания)
{
var описание = описания[указатель];
var модуль = мир.модули.модульПоУказателю(указатель);
if (
модуль &&
модуль.версия != описание.версия
) {
список.push(указатель);
}
}
мир.списокМодулейПриложенияДляОбновления = список;
};
// // // //
УведомитьОбОтсутствииОбновленийПриложения = мир =>
{
мир.уведомить("обновления приложения отсутствуют");
};
// // // //
ЗагрузитьОписаниеВсехМодулейПриложения = мир =>
{
var указатели = [УКАЗАТЕЛЬТОГО_МОДУЛЯ];
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var содержимое = м.содержимое["/📦"];
var строки = содержимое.split(/\n/);
for (var номер in строки)
{
var строка = строки[номер];
if (!строка.startsWith("#") && строка.length)
{
указатели.push(строка);
}
}
мир.описанияМодулейПриложения = [];
function загрузитьОписание(мир, список, номер, успех, провал)
{
const указатель = список[номер];
мир.взять(
указатель,
function(содержимое) {
var описание = мир.разобрать0000(содержимое);
мир.описанияМодулейПриложения[указатель] = описание;
успех();
},
function(ошибка) {
провал();
}
);
}
сделатьПараллельно(
мир,
указатели,
загрузитьОписание,
function() {
мир.уведомить("загрузили описание всех модулей приложения");
},
function() {
мир.уведомить("не загрузили описание всех модулей приложения");
}
);
};

12
🔄.череда Normal file
View File

@@ -0,0 +1,12 @@
надо обновить приложение при наличии обновлений
загрузить описание всех модулей приложения
не загрузили описание всех модулей приложения
уведомить об отсутствии обновлений приложения
загрузили описание всех модулей приложения
составить список модулей приложения для обновления
проверить наличие модулей приложения для обновления
отсутствуют модули приложения для обновления
уведомить об отсутствии обновлений приложения
присутствуют модули приложения для обновления
удалить модули приложения перед обновлением
перезагрузить приложение после обновления

24
🧱.js Normal file
View File

@@ -0,0 +1,24 @@
ЗагрузитьБиблиотекиПриложения = мир =>
{
var указатели = [];
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var содержимое = м.содержимое["/📦"];
var строки = содержимое.split(/\n/);
for (var номер in строки)
{
var строка = строки[номер];
if (!строка.startsWith("#") && строка.length)
{
указатели.push(строка);
}
}
var сообщение = "Загрузка библиотек ⚬ 加载库 ⚬ Loading libraries";
console.debug(сообщение, указатели);
мир.модули.использовали.подписатьРаз(function() {
мир.уведомить("ручной пуск");
мир.уведомить("загрузили библиотеки приложения");
});
мир.модули.использовать(указатели);
};