fix(studio): кит «Конфетти» вылетает из позиции объекта, а не из центра сцены

Было: spawn кубиков в фикс. координатах (0,0.5,0) → конфетти сыпалось в
центре сцены, далеко от шара-источника (непонятно как связано). Стало:
кубики вылетают из game.self.position (позиции самого объекта-источника).
Описание кита уточнено: «фонтан конфетти из этого объекта».

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
min 2026-06-05 02:10:03 +03:00
parent df1647019d
commit 7242e80602

View File

@ -96,17 +96,21 @@ game.self.onInteract(() => {
{ {
id: 'confetti', id: 'confetti',
name: 'Конфетти', name: 'Конфетти',
desc: 'Праздничный взрыв конфетти из точки. Запускается сразу и периодически.', desc: 'Праздничный фонтан конфетти из этого объекта. Кубики разлетаются и падают. Запускается периодически.',
icon: 'sparkles', category: 'fx', icon: 'sparkles', category: 'fx',
prims: [{ type: 'sphere', x: 0, y: 3, z: 0, sx: 0.5, sy: 0.5, sz: 0.5, color: '#ff5ab0', material: 'neon', name: 'Конфетти-источник', canCollide: false }], prims: [{ type: 'sphere', x: 0, y: 1, z: 0, sx: 0.5, sy: 0.5, sz: 0.5, color: '#ff5ab0', material: 'neon', name: 'Конфетти-источник', canCollide: false }],
scripts: [{ attachTo: 'on-target', code: scripts: [{ attachTo: 'on-target', code:
`// Конфетти: периодический фейерверк примитивов `// Конфетти вылетает из ПОЗИЦИИ этого объекта (не из центра сцены).
function burst() { function burst() {
const p = game.self.position; // где стоит конфетти-источник
for (let k = 0; k < 16; k++) { for (let k = 0; k < 16; k++) {
const col = ['#ff5ab0','#ffd23a','#4d6bff','#36d57a','#ff7a3a'][k % 5]; const col = ['#ff5ab0','#ffd23a','#4d6bff','#36d57a','#ff7a3a'][k % 5];
const id = game.scene.spawn('primitive:cube', { game.scene.spawn('primitive:cube', {
x: (Math.random()-0.5)*1, y: 4, z: (Math.random()-0.5)*1, x: p.x + (Math.random()-0.5)*0.6,
sx: 0.25, sy: 0.25, sz: 0.25, color: col, anchored: false, canCollide: false, lifetime: 2.5, y: p.y + 0.5,
z: p.z + (Math.random()-0.5)*0.6,
sx: 0.22, sy: 0.22, sz: 0.22, color: col,
anchored: false, canCollide: false, lifetime: 2.5,
}); });
} }
} }