From 74f17942e140ed2d17ae54767ecdabef6995ed58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=BB=D0=B0=D0=B2=D1=80=D0=B5=D0=B4=20=7C=20Glavred?= Date: Tue, 8 Sep 2020 15:13:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=93=D0=BB=D0=B0=D0=B2=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=20=D0=93=D0=B8=D1=82=D0=96=D0=A1=20|=20Chang?= =?UTF-8?q?es=20of=20GitJS=20Glavred?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 0000 | 6 +- раскладка|layout.js | 154 ------------------------- раскладка|layout.череда | 7 -- сцена|scene.js | 16 +++ сцена|scene.череда | 10 +- тема|theme.js | 93 +++++++++++++++ тема|theme.череда | 11 ++ 7 files changed, 131 insertions(+), 166 deletions(-) delete mode 100644 раскладка|layout.js delete mode 100644 раскладка|layout.череда create mode 100644 тема|theme.js create mode 100644 тема|theme.череда diff --git a/0000 b/0000 index a07303a..035a2ac 100644 --- a/0000 +++ b/0000 @@ -6,7 +6,7 @@ x /интерфейс|ui.js /интерфейс|ui.череда x /пуск|run.js /пуск|run.череда -x /раскладка|layout.js -/раскладка|layout.череда x /сцена|scene.js -/сцена|scene.череда \ No newline at end of file +/сцена|scene.череда +x /тема|theme.js +/тема|theme.череда \ No newline at end of file diff --git a/раскладка|layout.js b/раскладка|layout.js deleted file mode 100644 index 7c29035..0000000 --- a/раскладка|layout.js +++ /dev/null @@ -1,154 +0,0 @@ - - -// // // // - - -ВывестиПозицииРаскладкиKMahjongg = мир => -{ - console.debug("Позиции раскладки KMahjongg НАЧАЛО"); - const позиции = мир.раскладкаKMahjongg.позиции; - for (var номер in позиции) { - const позиция = позиции[номер]; - console.debug(позиция); - } - console.debug("Позиции раскладки KMahjongg КОНЕЦ"); -}; - - -// // // // - - -РазобратьПозицииЭлементовРаскладкиKMahjongg = мир => -{ - const параметры = мир.раскладкаKMahjongg.параметры; - const строки = мир.раскладкаKMahjongg.строки; - var позиции = []; - for (var номерСлоя = 0; номерСлоя < параметры.глубина; ++номерСлоя) - { - for (var ряд = 0; ряд < параметры.высота - 1; ++ряд) - { - for (var столбец = 0; столбец < параметры.ширина - 1; ++столбец) - { - const рядСлоя = ряд + (номерСлоя * параметры.высота); - if ( - (строки[рядСлоя][столбец] == '1') && - (строки[рядСлоя][столбец + 1] == '2') && - (строки[рядСлоя + 1][столбец] == '4') && - (строки[рядСлоя + 1][столбец + 1] == '3') - ) { - позиции.push([номерСлоя, ряд, столбец]); - } - } - } - } - мир.раскладкаKMahjongg.позиции = позиции; -}; - - -// // // // - - -ВывестиПараметрыРаскладкиKMahjongg = мир => -{ - console.debug("Параметры раскладки KMahjongg", JSON.stringify(мир.раскладкаKMahjongg.параметры)); -}; - - -// // // // - - -РазобратьПараметрыРаскладкиKMahjongg = мир => -{ - var параметры = { - "ширина": 32, - "высота": 16, - "глубина": 0, - "версия": "1.0", - }; - - var префиксы = { - "версия": "kmahjongg-layout-v", - "глубина": "d", - "ширина": "w", - "высота": "h", - }; - - var удалитьЭлементов = 0; - var строки = мир.раскладкаKMahjongg.строки; - for (var номер in строки) - { - var строка = строки[номер]; - // Версия. - if (строка.startsWith(префиксы.версия)) - { - параметры.версия = строка.substring(префиксы.версия.length); - } - // Глубина. - else if (строка.startsWith(префиксы.глубина)) - { - параметры.глубина = строка.substring(префиксы.глубина.length); - } - // Ширина. - else if (строка.startsWith(префиксы.ширина)) - { - параметры.ширина = строка.substring(префиксы.ширина.length); - } - // Высота. - else if (строка.startsWith(префиксы.высота)) - { - параметры.высота = строка.substring(префиксы.высота.length); - } - else - { - удалитьЭлементов = номер; - break; - } - } - - мир.раскладкаKMahjongg.строки.splice(0, удалитьЭлементов); - if (параметры.глубина == 0) - { - параметры.глубина = мир.раскладкаKMahjongg.строки.length / параметры.высота; - } - мир.раскладкаKMahjongg.параметры = параметры; - -}; - - -// // // // - - -ПодготовитьРаскладкуKMahjonggКРазбору = мир => -{ - var строки = мир.раскладкаKMahjongg.содержимое.split(/\n/); - мир.раскладкаKMahjongg.строки = []; - for (var номер in строки) - { - var строка = строки[номер].trim(); - // Пропускаем комментарии и пустые строки. - if (строка.startsWith("#") || !строка.length) - { - continue; - } - мир.раскладкаKMahjongg.строки.push(строка); - } -}; - - -// // // // - - -УведомитьОбОкончанииРазбораРаскладкиKMahjongg = мир => -{ - мир.уведомить("разобрали раскладку KMahjongg"); -}; - - -// // // // - - -РазобратьРаскладкуKMahjongg = мир => -{ - мир.уведомить("надо разобрать раскладку KMahjongg"); -}; - diff --git a/раскладка|layout.череда b/раскладка|layout.череда deleted file mode 100644 index 3156e5f..0000000 --- a/раскладка|layout.череда +++ /dev/null @@ -1,7 +0,0 @@ -надо разобрать раскладку KMahjongg - подготовить раскладку KMahjongg к разбору - разобрать параметры раскладки KMahjongg -# вывести параметры раскладки KMahjongg - разобрать позиции элементов раскладки KMahjongg -# вывести позиции раскладки KMahjongg - уведомить об окончании разбора раскладки KMahjongg \ No newline at end of file diff --git a/сцена|scene.js b/сцена|scene.js index d449e54..99907cd 100644 --- a/сцена|scene.js +++ b/сцена|scene.js @@ -1,6 +1,22 @@ const ИМЯ = "ОМ | MB"; const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга | Mahjong resources"; +// // // // + + +ВывестиФактЗагрузкиТемыФишекМаджонга = мир => +{ + console.debug("загрузили темы фишек маджонга"); +}; + + +// // // // + +ЗадатьТемуФишекДляЗагрузки = мир => +{ + мир.темаФишек = "отладочная|debug"; +}; + // // // // diff --git a/сцена|scene.череда b/сцена|scene.череда index 08c933e..66f732b 100644 --- a/сцена|scene.череда +++ b/сцена|scene.череда @@ -8,7 +8,14 @@ подготовить сцену загрузить фишку загрузили фишку - загрузить текстуру фишки из модуля + задать тему фишек для загрузки + загрузить тему фишек маджонга +загрузили тему фишек маджонга + вывести факт загрузки темы фишек маджонга + + + +# загрузить текстуру фишки из модуля загрузили текстуру фишки из модуля загрузить раскладку разобрать раскладку KMahjongg @@ -17,7 +24,6 @@ отобразить раскладку одной фишкой центрировать сцену запустить отрисовку -# запустить таймер поворота фишки изменили размер окна браузера изменить размер отрисовщика ThreeJS diff --git a/тема|theme.js b/тема|theme.js new file mode 100644 index 0000000..fb053ae --- /dev/null +++ b/тема|theme.js @@ -0,0 +1,93 @@ + + +// // // // + + +УведомитьОНеудачнойЗагрузкеТемыФишекМаджонга = мир => +{ + мир.уведомить("не загрузили тему фишек маджонга"); +}; + + +// // // // + + +УведомитьОбУспешнойЗагрузкеТемыФишекМаджонга = мир => +{ + мир.уведомить("загрузили тему фишек маджонга"); +}; + + +// // // // + + +ПроверитьНаличиеВсехЗагруженныхТекстурТемыФишекМаджонга = мир => +{ + if (мир.загрузкаТемыФишек.номер < мир.загрузкаТемыФишек.всего) + { + мир.загрузкаТемыФишек.номер += 1; + мир.уведомить("загружены не все текстуры темы фишек маджонга"); + } + else + { + мир.уведомить("загружены все текстуры темы фишек маджонга"); + } +}; + + +// // // // + + +ЗагрузитьСледующуюТекстуруТемыФишекМаджонга = мир => +{ + console.debug("загрузить следующую текстуру темы фишек маджонга"); + const загрузка = мир.загрузкаТемыФишек; + var тема = мир.темыФишек[загрузка.имя]; + var имяМодуляРесурсов = тема["🗿"]; + var модуль = мир.модули.модульПоИмени(имяМодуляРесурсов); + var ресурс = тема[загрузка.номер]; + var содержимое = модуль.содержимое[ресурс]; + var b64 = base64js.fromByteArray(new Uint8Array(содержимое)); + // Текстуры ожидаем в формате PNG. + var адрес = `data:image/png;base64,${b64}`; + мир.загрузчикТекстур.load( + адрес, + function(текстура) { + текстура.flipY = false; + мир.текстурыТемФишек[загрузка.имя][загрузка.номер] = текстура; + мир.уведомить("загрузили текстуру темы фишек маджонга"); + }, + null, + function(error) { + console.error("ОШИБКА | ERROR", error); + мир.уведомить("не загрузили текстуру темы фишек маджонга"); + } + ); +}; + + +// // // // + + +ПодготовитьсяКЗагрузкеТемыФишекМаджонга = мир => +{ + console.debug("ПодготовитьсяКЗагрузкеТемыФишекМаджонга"); + + мир.загрузкаТемыФишек = { + "номер": 1, + "всего": 42, + "имя": мир.темаФишек, + }; + мир.текстурыТемФишек = {}; + мир.текстурыТемФишек[мир.загрузкаТемыФишек.имя] = {}; +}; + + +// // // // + + +ЗагрузитьТемуФишекМаджонга = мир => +{ + мир.уведомить("надо загрузить тему фишек маджонга"); +}; + diff --git a/тема|theme.череда b/тема|theme.череда new file mode 100644 index 0000000..07e6369 --- /dev/null +++ b/тема|theme.череда @@ -0,0 +1,11 @@ +надо загрузить тему фишек маджонга + подготовиться к загрузке темы фишек маджонга + загрузить следующую текстуру темы фишек маджонга +загрузили текстуру темы фишек маджонга + проверить наличие всех загруженных текстур темы фишек маджонга +не загрузили текстуру темы фишек маджонга + уведомить о неудачной загрузке темы фишек маджонга +загружены не все текстуры темы фишек маджонга + загрузить следующую текстуру темы фишек маджонга +загружены все текстуры темы фишек маджонга + уведомить об успешной загрузке темы фишек маджонга \ No newline at end of file