состояние

This commit is contained in:
2021-09-14 14:34:34 +03:00
parent 4f2ab349c2
commit 186bd312bb
6 changed files with 31 additions and 26 deletions

View File

@@ -44,18 +44,18 @@ function Состояние()
}; };
this.разобрать = function(словарь) { this.разобрать = function(словарь) {
/**/console.debug("01");
var значения = this.лишьНовыеЗначения(this.выпрямить(словарь)); var значения = this.лишьНовыеЗначения(this.выпрямить(словарь));
/**/console.debug("02");
for (var ключ in значения) for (var ключ in значения)
{ {
var путь = ключ.split("."); var путь = ключ.split(".");
var значение = значения[ключ]; var значение = значения[ключ];
if (this.обработчик)
{
this.обработчик(ключ, путь, значение); this.обработчик(ключ, путь, значение);
} }
}
}; };
// Конструктор. // Конструктор.
this.создать(); this.создать();
} }

View File

@@ -1,5 +1,18 @@
var мир = {}; var мир = {};
мир.uuid = function()
{
// https://stackoverflow.com/a/2117523
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
/[xy]/g,
function(c)
{
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}
);
};
мир.вZ64 = function(строка) мир.вZ64 = function(строка)
{ {
var байты = new TextEncoder("utf-8").encode(строка); var байты = new TextEncoder("utf-8").encode(строка);
@@ -14,19 +27,6 @@ var мир = {};
return new TextDecoder("utf-8").decode(байты); return new TextDecoder("utf-8").decode(байты);
}; };
мир.uuid = function()
{
// https://stackoverflow.com/a/2117523
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
/[xy]/g,
function(c)
{
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}
);
};
мир.назначитьКнопкамСобытия = function(события, список) мир.назначитьКнопкамСобытия = function(события, список)
{ {
for (var номер in список) for (var номер in список)
@@ -66,3 +66,8 @@ var мир = {};
} }
return параметры; return параметры;
}; };
мир.разобрать = function(словарь)
{
мир.состояние.разобрать(словарь);
};

View File

@@ -2,11 +2,9 @@ function Игра()
{ {
this.создать = function() this.создать = function()
{ {
this.состояние = new Состояние(); мир.события = new События();
this.состояние.обработчик = this.обработатьКлюч; мир.состояние = new Состояние();
var тут = this; мир.состояние.обработчик = this.обработатьКлюч;
мир.разобрать = function(словарь) { тут.состояние.разобрать(словарь); };
this.события = new События();
var z64 = мир.параметрыЗапуска()["z64"]; var z64 = мир.параметрыЗапуска()["z64"];
this.исполнитьКод(z64); this.исполнитьКод(z64);
this.отслеживатьОбновленияКода(); this.отслеживатьОбновленияКода();

View File

@@ -14,8 +14,8 @@
<div id="отладка"></div> <div id="отладка"></div>
<script src="../общее/100.События.js"></script> <script src="../общее/100.События.js"></script>
<script src="../общее/150.Состояние.js"></script>
<script src="../общее/200.функции.js"></script> <script src="../общее/200.функции.js"></script>
<script src="100.Состояние.js"></script>
<script src="700.Игра.js"></script> <script src="700.Игра.js"></script>
<script> <script>
var игра = new Игра(); var игра = new Игра();

View File

@@ -2,9 +2,10 @@ function Муром()
{ {
this.создать = function() this.создать = function()
{ {
this.события = new События(); мир.события = new События();
this.редактор = new Редактор(this.события, "редактор"); мир.состояние = new Состояние();
this.пульт = new Пульт(this.события, "ошибка", "перезапустить", "отдельно", "ссылка"); мир.редактор = new Редактор(мир.события, "редактор");
мир.пульт = new Пульт(мир.события, "ошибка", "перезапустить", "отдельно", "ссылка");
}; };
// Конструктор. // Конструктор.

View File

@@ -80,6 +80,7 @@
<iframe id="проигрыватель" name="проигрыватель"></iframe> <iframe id="проигрыватель" name="проигрыватель"></iframe>
<script src="../общее/100.События.js"></script> <script src="../общее/100.События.js"></script>
<script src="../общее/150.Состояние.js"></script>
<script src="../общее/200.функции.js"></script> <script src="../общее/200.функции.js"></script>
<script src="100.Редактор.js"></script> <script src="100.Редактор.js"></script>
<script src="200.Пульт.js"></script> <script src="200.Пульт.js"></script>