|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- мж.задатьНейтральныйМатериал = function()
- {
- var мат = муром.материалы.создатьМатериал("N");
- var изо = муром.ресурсы.ресурс("tex.stub");
- мат.задатьТекстуру("image", изо);
- var вер = муром.ресурсы.ресурс("ver").содержимое;
- var фра = муром.ресурсы.ресурс("fra").содержимое;
- мат.задатьШейдеры(вер, фра);
- мж.сцена.задатьМатериал(мат);
- };
-
- мж.разобратьРаскладку = function()
- {
- eval(муром.ресурсы.ресурс("Layout").содержимое);
-
- var содержимое = муром.ресурсы.ресурс("lay").содержимое;
- мж.раскладка = new Раскладка();
- мж.раскладка.разобрать(содержимое);
- };
-
- мж.фишки = [];
- мж.создатьФишки = function()
- {
- eval(муром.ресурсы.ресурс("Tile").содержимое);
-
- for (var номер in мж.раскладка.позиции)
- {
- var ф = new Фишка();
- ф.позиция = мж.раскладка.позиции[номер];
- мж.фишки.push(ф);
- }
- };
-
- мж.размерФишки = {
- "ширина": 2.0,
- "высота": 3.0,
- "глубина": 1.0,
- };
- мж.создатьУзлыФишек = function()
- {
- const шагФишки = 2.0;
- const коэффициенты = {
- "x": мж.размерФишки.ширина / шагФишки,
- "y": -мж.размерФишки.высота / шагФишки,
- "z": мж.размерФишки.глубина,
- };
- var мод = муром.ресурсы.ресурс("mod");
-
- for (var номер in мж.фишки)
- {
- var имя = номер.toString();
- var узел = муром.узлы.создатьУзел(имя, мод);
- мж.сцена.добавитьДитя(узел);
-
- var ф = мж.фишки[номер];
- var п = ф.позиция;
- узел.позиция = [
- п[2] * коэффициенты.x,
- п[1] * коэффициенты.y,
- п[0] * коэффициенты.z,
- ];
- ф.узел = узел;
- }
- };
-
- мж.центрироватьСцену = function()
- {
- var границы = {
- "лево": 1000,
- "право": -1000,
- "верх": -1000,
- "низ": 1000,
- };
- for (var номер in мж.фишки)
- {
- const ф = мж.фишки[номер];
- const x = ф.узел.позиция[0];
- const y = ф.узел.позиция[1];
- if (x < границы.лево)
- {
- границы.лево = x;
- }
- if (x > границы.право)
- {
- границы.право = x;
- }
- if (y < границы.низ)
- {
- границы.низ = y;
- }
- if (y > границы.верх)
- {
- границы.верх = y;
- }
- }
-
- const ширина = границы.право - границы.лево + мж.размерФишки.ширина;
- const высота = границы.верх - границы.низ + мж.размерФишки.высота;
- мж.сцена.позиция = [-ширина / 2.0, 0, высота / 2.0];
- };
|