diff --git a/src/Reactor/RoomHoleReactor.ts b/src/Reactor/RoomHoleReactor.ts index c631c2d14..8a06dcdaf 100644 --- a/src/Reactor/RoomHoleReactor.ts +++ b/src/Reactor/RoomHoleReactor.ts @@ -21,17 +21,12 @@ export async function UpdateRelevanceWallHole(ents: CADObject[]) if (updated.has(wall)) return; updated.add(wall);//避免重入 - if (wall.IsErase) - { - for (let hole of wall.RelevancyHoles) - hole.Object.Erase(); - return; - } - //先更新洞,因为洞可能会修复位置 for (let holeId of wall.RelevancyHoles)//更新关联的洞 { let hole = holeId.Object; + if (wall.IsErase) + hole.Erase(); UpdateHole(hole);//这里如果只更新洞,那么有可能关联的其他的墙会逃逸 } @@ -111,6 +106,8 @@ function UpdateWallHolesDataAndUpdateDraw(wall: RoomWallBase) */ function UpdateHoleFakerWallsAndUpdateDraw(hole: RoomHolePolyline) { + if (hole.IsErase) return; + let fakerWalls = hole.RelevancyWalls.map(w => w.Object.Clone()); let pts = hole.Points;