fix(studio): Ctrl+D дублирует объект РОВНО на месте оригинала (не смещает +1 по X)
duplicateSelected для model/userModel/primitive ставил копию на sel.x+1 → визуальное смещение. Теперь копия появляется в той же точке (как Roblox Studio). Block остаётся с поиском свободной клетки (воксель нельзя в занятую). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e477d652f6
commit
6c0c3dc26e
@ -5380,7 +5380,8 @@ export class BabylonScene {
|
||||
const sx = sel.x, sy = sel.y, sz = sel.z;
|
||||
const rotY = sel.rotationY || 0;
|
||||
const srcId = sel.instanceId;
|
||||
this.modelManager.addInstance(typeId, sx + 1, sy, sz, rotY)
|
||||
// Дубль появляется РОВНО на месте оригинала (как в Roblox Studio).
|
||||
this.modelManager.addInstance(typeId, sx, sy, sz, rotY)
|
||||
.then(newId => {
|
||||
if (newId != null) {
|
||||
this._copyScriptsToNewObject('model', srcId, newId);
|
||||
@ -5396,7 +5397,7 @@ export class BabylonScene {
|
||||
const sx = sel.x, sy = sel.y, sz = sel.z;
|
||||
const rotY = sel.rotationY || 0;
|
||||
const srcUmId = sel.instanceId;
|
||||
this.userModelManager.addInstance(typeId, sx + 1, sy, sz, rotY, {
|
||||
this.userModelManager.addInstance(typeId, sx, sy, sz, rotY, {
|
||||
currentUserId: this._currentUserId || null,
|
||||
}).then(newId => {
|
||||
if (newId != null) {
|
||||
@ -5408,7 +5409,7 @@ export class BabylonScene {
|
||||
});
|
||||
} else if (sel.type === 'primitive') {
|
||||
const newId = this.primitiveManager.addInstance(sel.primitiveType, {
|
||||
x: sel.x + 1, y: sel.y, z: sel.z,
|
||||
x: sel.x, y: sel.y, z: sel.z,
|
||||
sx: sel.sx, sy: sel.sy, sz: sel.sz,
|
||||
// Сохраняем вращение копии (без этого сбрасывалось, баг 2026-06-04).
|
||||
rotationX: sel.rotationX || 0,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user