Files
CEHMA/🎬.js

109 lines
3.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

СкрытьУбранныеФишкиВСцене = мир =>
{
for (var номер in мир.убранныеФишкиМаджонга)
{
var н = мир.убранныеФишкиМаджонга[номер];
// Перемещаем фишку на другой слой для исключения из отрисовки и выбора.
var ф = мир.фишкиСцены[н];
ф.layers.set(1);
}
}
// // // //
ВыделитьВыбранныеФишкиВСцене = мир =>
{
for (var номер in мир.выбранныеФишкиМаджонга)
{
var н = мир.выбранныеФишкиМаджонга[номер];
var ф = мир.фишкиСцены[н];
var г = мир.фишкиМаджонга[н]["🚩"];
var м = мир.выбранныеМатериалыФишекСцены[г];
ф.material = м;
}
};
// // // //
ЗадатьМатериалыФишкамСцены = мир =>
{
for (var н in мир.фишкиСцены)
{
var ф = мир.фишкиСцены[н];
var г = мир.фишкиМаджонга[н]["🚩"];
var м = мир.материалыФишекСцены[г];
ф.material = м;
}
};
// // // //
УбратьСтарыеФишкиСцены = мир =>
{
if (мир.сценаМаджонга.children.length)
{
мир.сценаМаджонга.remove(мир.кореньСценыМаджонга);
}
мир.кореньСценыМаджонга = new THREE.Group();
мир.сценаМаджонга.add(мир.кореньСценыМаджонга);
мир.фишкиСцены = [];
};
// // // //
СоздатьНовыеФишкиСцены = мир =>
{
var фишка = мир.модельФишкиСцены;
var границы = фишка.geometry.boundingBox;
var размеры = [
(границы.max.x - границы.min.x) / 2,
(границы.max.z - границы.min.z) / 2,
//границы.max.y - границы.min.y,
];
var отступ = мир.отступМеждуФишкамиСцены;
for (var номер in мир.фишкиМаджонга)
{
// Узел сцены.
var фм = мир.фишкиМаджонга[номер];
var ф = фишка.clone();
ф.userData = номер;
мир.фишкиСцены.push(ф);
мир.кореньСценыМаджонга.add(ф);
// Расположение.
var п = фм["📍"];
var слой = п[0];
var ряд = п[1];
var столбец = п[2];
ф.position.x = столбец * (размеры[0] + отступ);
ф.position.z = ряд * (размеры[1] + отступ);
ф.position.y = слой;
}
};
// // // //
СоздатьФишкиВСцене = мир =>
{
мир.уведомить("надо создать фишки в сцене");
};
// // // //
ПодготовитьСценуМаджонга = мир =>
{
мир.сценаМаджонга = new THREE.Group();
мир.отступМеждуФишкамиСцены = 0.02;
};