Browse Source

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

master
Главред | Glavred 3 years ago
parent
commit
033d123d7d
12 changed files with 324 additions and 140 deletions
  1. +4
    -5
      0000
  2. +0
    -33
      ⨐.js
  3. +16
    -30
      🎬.js
  4. +1
    -7
      🎬.череда
  5. +198
    -1
      🏁.js
  6. +25
    -2
      🏁.череда
  7. +4
    -2
      📦
  8. +69
    -0
      📦.js
  9. +7
    -0
      📦.череда
  10. +0
    -5
      🔄.js
  11. +0
    -31
      🙈.js
  12. +0
    -24
      🧱.js

+ 4
- 5
0000 View File

@@ -1,16 +1,15 @@
МАОН МАОН
0.2.5
0.2.6
https://git.opengamestudio.org/KH/MAOH https://git.opengamestudio.org/KH/MAOH


x /⨐.js
x /🎬.js x /🎬.js
/🎬.череда /🎬.череда
/🏁.js /🏁.js
/🏁.череда /🏁.череда
/📦 /📦
x /📦.js
/📦.череда
x /🔄.js x /🔄.js
/🔄.череда /🔄.череда
/🙈.css /🙈.css
/🙈.html
x /🙈.js
x /🧱.js
/🙈.html

+ 0
- 33
⨐.js View File

@@ -1,33 +0,0 @@
function сделатьПараллельно(мир, список, функция, откликУспех, откликПровал = null)
{
for (const номер in список)
{
функция(мир, список, номер, готово, провал);
}
var всего = 0;

function готово()
{
всего += 1;
if (всего == список.length)
{
откликУспех();
}
}
var провалУжеСообщили = false;
function провал()
{
if (провалУжеСообщили)
{
return;
}
провалУжеСообщили = true;
if (откликПровал)
{
откликПровал();
}
}
}

+ 16
- 30
🎬.js View File

@@ -1,40 +1,26 @@


// // // //


ОкончитьЗагрузкуМаджонга = мир =>
ЗадатьЗаголовок = мир =>
{ {
мир.уведомить("надо окончить загрузку маджонга");
document.title = "🀄 МАОН";
}; };




// // // // // // // //




ЗагрузитьЧередуОкончания = мир =>
ОтобразитьСтраницуЗагрузки = мир =>
{ {
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ); var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
var содержимое = м.содержимое["/🏁.js"];
eval(содержимое);
м.исполнитьЧереду(мир, "/🏁.череда");
};


// // // //


ПроверитьНаличиеОбновленийПриложения = мир =>
{
// Эта функция находится вне "/🔄.js", т.к. "/🔄.js" отключаем,
// отчего этой функции просто не будет в пространстве имён.
var событие = "надо обновить приложение при наличии обновлений";
if (событие in мир.события)
{
мир.уведомить(событие);
}
else
{
мир.уведомить("обновления приложения отсутствуют");
}
var вид = document.createElement("style");
document.head.appendChild(вид);
вид.innerHTML = м.содержимое["/🙈.css"];
var структура = м.содержимое["/🙈.html"]
.replace(/\${версия}/g, м.версия);
// Вставляем содержимое в рамку, чтобы применяемые стили UIkit не
// дёргали надписи.
// https://stackoverflow.com/a/8322025
var рамка = "<iframe id='экран-загрузки' class='фон-экрана' frameBorder='0'></iframe>";
document.body.insertAdjacentHTML("afterbegin", рамка);
document.getElementById("экран-загрузки").src = "data:text/html;charset=utf-8," + структура;
}; };

+ 1
- 7
🎬.череда View File

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

+ 198
- 1
🏁.js View File

@@ -1,9 +1,206 @@


const РЕСУРСЫ = "https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000";
const ФИШКА = "/фишка.gltf";
const ТЕМА_ОТЛАДОЧНАЯ = "https://git.opengamestudio.org/MAOH/MAOH_TEMA_OTAK/raw/branch/master/0000";


// // // //


СкрытьУбранныеФишки = мир =>
{
for (var номер in мир.убранныеФишкиМаджонга)
{
var н = мир.убранныеФишкиМаджонга[номер];
// Перемещаем фишку на другой слой для исключения её из отрисовки и выбора.
var ф = мир.фишки[н];
ф.layers.set(1);
}
}


// // // //


ЗадатьФишкуДляВыбора = мир =>
{
var номер = мир.выбранныйУзел.userData;
мир.фишкаМаджонгаДляВыбора = номер;
}


// // // //


ПодготовитьФишкиКВыбору = мир =>
{
мир.выборныеУзлы = мир.фишки;
мир.задержкаОтображенияВыбранныхФишек = 0;
};


// // // //


ВыделитьВыбранныеФишки = мир =>
{
for (var номер in мир.выбранныеФишкиМаджонга)
{
var н = мир.выбранныеФишкиМаджонга[номер];
var ф = мир.фишки[н];
var г = мир.фишкиМаджонга[н]["🚩"];
var м = мир.выбранныеМатериалы[г];
ф.material = м;
}
};


// // // //


ЗадатьМатериалыФишкам = мир =>
{
for (var н in мир.фишки)
{
var ф = мир.фишки[н];
var г = мир.фишкиМаджонга[н]["🚩"];
var м = мир.материалы[г];
ф.material = м;
}
};


// // // //


СоздатьФишки = мир =>
{
var фишка = мир.полигональныеСетки[РЕСУРСЫ][ФИШКА];
var границы = фишка.geometry.boundingBox;
var размеры = [
(границы.max.x - границы.min.x) / 2,
(границы.max.z - границы.min.z) / 2,
//границы.max.y - границы.min.y,
];
var отступ = 0.02;

мир.фишки = [];
for (var номер in мир.фишкиМаджонга)
{
// Узел сцены.
var фм = мир.фишкиМаджонга[номер];
var ф = фишка.clone();
ф.userData = номер;
мир.фишки.push(ф);
мир.сцена.add(ф);
// Расположение.
var позиция = фм["📍"];
/*
var слой = позиция[0];
var ряд = позиция[1];
var столбец = позиция[2];
*/
var слой = 0;
var ряд = позиция[0];
var столбец = позиция[1];
ф.position.x = столбец * (размеры[0] + отступ);
ф.position.z = ряд * (размеры[1] + отступ);
ф.position.y = слой;
}
};


// // // //


ЗадатьФишки = мир =>
{
мир.фишкиМаджонга = [
{
"📍": [0, 0],
"🚩": 0,
},
{
"📍": [2, 0],
"🚩": 0,
},
{
"📍": [0, 2],
"🚩": 1,
},
];
};


// // // //


СоздатьПримерСцены = мир =>
{
мир.сцена.background = new THREE.Color(0xFFFFFF);
мир.камера.position.y = 10;
мир.камера.position.z = 5;
мир.камера.lookAt(new THREE.Vector3(0, 0, 0));
мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1);
мир.свет.position.set(-0.5, 1, 0.5).normalize();
мир.сцена.add(мир.свет);
};


// // // //


СоздатьМатериалыФишек = мир =>
{
мир.материалы = [];
мир.выбранныеМатериалы = [];
var текстуры = мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ];
for (var имя in текстуры)
{
var текстура = текстуры[имя];
var материал = new THREE.MeshLambertMaterial({
map: текстура,
color: new THREE.Color(0xAAAAAA),
});
мир.материалы.push(материал);
var выбранныйМатериал = new THREE.MeshLambertMaterial({
map: текстура,
color: new THREE.Color(0xFFFFFF),
});
мир.выбранныеМатериалы.push(выбранныйМатериал);
}
};

// // // //


ПодготовитьсяКЗагрузкеРесурсов = мир =>
{
мир.полигональныеСетки = {
[РЕСУРСЫ]: {
[ФИШКА]: null,
},
};

мир.текстуры = {
[ТЕМА_ОТЛАДОЧНАЯ]: { },
};
var м = мир.модули.модульПоУказателю(ТЕМА_ОТЛАДОЧНАЯ);
var файлы = Object.keys(м.структура).sort();
for (var номер in файлы)
{
var файл = файлы[номер];
мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ][файл] = null;
}
};



// // // // // // // //




ПлавноУбратьСтраницуЗагрузкиМаджонгаИСкрытьКрутилку = мир =>
ПлавноУбратьСтраницуЗагрузкиИСкрытьКрутилку = мир =>
{ {
плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 }); плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 });
плавноСкрыть("крутилка", { "задержка": 0.4 }); плавноСкрыть("крутилка", { "задержка": 0.4 });

+ 25
- 2
🏁.череда View File

@@ -1,2 +1,25 @@
надо окончить загрузку маджонга
плавно убрать страницу загрузки маджонга и скрыть крутилку
надо окончить загрузку приложения
плавно убрать страницу загрузки и скрыть крутилку
подготовиться к загрузке ресурсов
загрузить полигональные сетки
загрузили полигональные сетки
загрузить текстуры
загрузили текстуры
создать материалы фишек
создать пример сцены
подготовить механику маджонга
задать фишки
создать фишки
задать материалы фишкам
подготовить фишки к выбору
нажатие в рисователе
выбрать узел сцены
выбрали узел сцены
задать фишку для выбора
выбрать фишку маджонга
изменили выбранные фишки маджонга
задать материалы фишкам
выделить выбранные фишки
убрали фишки маджонга
скрыть убранные фишки

+ 4
- 2
📦 View File

@@ -4,7 +4,9 @@


https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000 https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000
https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000 https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000
https://git.opengamestudio.org/mahjong/base64/raw/branch/master/0000
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000 https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000
https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000 https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000
https://git.opengamestudio.org/KH/PuCOBATEJlb-renderer/raw/branch/master/0000
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000
https://git.opengamestudio.org/MAOH/MAOH_TEMA_OTAK/raw/branch/master/0000
https://git.opengamestudio.org/MAOH/MEXMA/raw/branch/master/0000

+ 69
- 0
📦.js View File

@@ -0,0 +1,69 @@
ОкончитьЗагрузкуПриложения = мир =>
{
мир.уведомить("надо окончить загрузку приложения");
};


// // // //


ЗагрузитьОкончание = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
eval(м.содержимое["/🏁.js"]);
мир.разобрать(м.содержимое["/🏁.череда"]);
};


// // // //


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


// // // //


ПроверитьНаличиеОбновленийПриложения = мир =>
{
// Эта функция находится вне "/🔄.js", т.к. "/🔄.js" отключаем,
// отчего этой функции просто не будет в пространстве имён.
var событие = "надо обновить приложение при наличии обновлений";
if (событие in мир.события)
{
мир.уведомить(событие);
}
else
{
мир.уведомить("обновления приложения отсутствуют");
}
};

+ 7
- 0
📦.череда View File

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

+ 0
- 5
🔄.js View File

@@ -1,8 +1,3 @@


// // // //


ПерезагрузитьПриложениеПослеОбновления = мир => ПерезагрузитьПриложениеПослеОбновления = мир =>
{ {
window.location.reload(false); window.location.reload(false);


+ 0
- 31
🙈.js View File

@@ -1,31 +0,0 @@


// // // //


ЗадатьЗаголовок = мир =>
{
document.title = "🀄 МАОН";
};


// // // //


ОтобразитьСтраницуЗагрузкиМаджонга = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
var вид = document.createElement("style");
document.head.appendChild(вид);
вид.innerHTML = м.содержимое["/🙈.css"];
var структура = м.содержимое["/🙈.html"]
.replace(/\${версия}/g, м.версия);
// Вставляем содержимое в рамку, чтобы применяемые стили UIkit не
// дёргали надписи.
// https://stackoverflow.com/a/8322025
var рамка = "<iframe id='экран-загрузки' class='фон-экрана' frameBorder='0'></iframe>";
document.body.insertAdjacentHTML("afterbegin", рамка);
document.getElementById("экран-загрузки").src = "data:text/html;charset=utf-8," + структура;
};

+ 0
- 24
🧱.js View File

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

мир.модули.использовали.подписатьРаз(function() {
мир.уведомить("ручной пуск");
мир.уведомить("загрузили библиотеки приложения");
});
мир.модули.использовать(указатели);
};

Loading…
Cancel
Save