Browse Source

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

M-0.1.0
Главред | Glavred 3 years ago
parent
commit
74f17942e1
7 changed files with 131 additions and 166 deletions
  1. +3
    -3
      0000
  2. +0
    -154
      раскладка|layout.js
  3. +0
    -7
      раскладка|layout.череда
  4. +16
    -0
      сцена|scene.js
  5. +8
    -2
      сцена|scene.череда
  6. +93
    -0
      тема|theme.js
  7. +11
    -0
      тема|theme.череда

+ 3
- 3
0000 View File

@@ -6,7 +6,7 @@ x /интерфейс|ui.js
/интерфейс|ui.череда
x /пуск|run.js
/пуск|run.череда
x /раскладка|layout.js
/раскладка|layout.череда
x /сцена|scene.js
/сцена|scene.череда
/сцена|scene.череда
x /тема|theme.js
/тема|theme.череда

+ 0
- 154
раскладка|layout.js View File

@@ -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");
};


+ 0
- 7
раскладка|layout.череда View File

@@ -1,7 +0,0 @@
надо разобрать раскладку KMahjongg
подготовить раскладку KMahjongg к разбору
разобрать параметры раскладки KMahjongg
# вывести параметры раскладки KMahjongg
разобрать позиции элементов раскладки KMahjongg
# вывести позиции раскладки KMahjongg
уведомить об окончании разбора раскладки KMahjongg

+ 16
- 0
сцена|scene.js View File

@@ -1,6 +1,22 @@
const ИМЯ = "ОМ | MB";
const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга | Mahjong resources";

// // // //


ВывестиФактЗагрузкиТемыФишекМаджонга = мир =>
{
console.debug("загрузили темы фишек маджонга");
};


// // // //

ЗадатьТемуФишекДляЗагрузки = мир =>
{
мир.темаФишек = "отладочная|debug";
};


// // // //



+ 8
- 2
сцена|scene.череда View File

@@ -8,7 +8,14 @@
подготовить сцену
загрузить фишку
загрузили фишку
загрузить текстуру фишки из модуля
задать тему фишек для загрузки
загрузить тему фишек маджонга
загрузили тему фишек маджонга
вывести факт загрузки темы фишек маджонга



# загрузить текстуру фишки из модуля
загрузили текстуру фишки из модуля
загрузить раскладку
разобрать раскладку KMahjongg
@@ -17,7 +24,6 @@
отобразить раскладку одной фишкой
центрировать сцену
запустить отрисовку
# запустить таймер поворота фишки
изменили размер окна браузера
изменить размер отрисовщика ThreeJS



+ 93
- 0
тема|theme.js View File

@@ -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,
"имя": мир.темаФишек,
};
мир.текстурыТемФишек = {};
мир.текстурыТемФишек[мир.загрузкаТемыФишек.имя] = {};
};


// // // //


ЗагрузитьТемуФишекМаджонга = мир =>
{
мир.уведомить("надо загрузить тему фишек маджонга");
};


+ 11
- 0
тема|theme.череда View File

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

Loading…
Cancel
Save