|
|
@@ -0,0 +1,100 @@ |
|
|
|
мж.задатьНейтральныйМатериал = 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]; |
|
|
|
}; |