!1906 修复:开门开抽屉无模板时报错

Merge pull request !1906 from 林三/openCabinet_undefined-_bug
pull/1939/head
林三 2 years ago committed by ChenX
parent 137cb53cea
commit 5dd0fe90b6

@ -138,20 +138,21 @@ export class Command_OpenCabinet implements Command
{
for (let i = 0; i < drawerEns.length; i++)
{
let ens = drawerEns[i].Template.Object as TemplateRecord;
while (ens.Name !== "抽屉空间" && ens.Name !== "格子抽")
let drawerTemp = drawerEns[i].Template?.Object as TemplateRecord;
if (!drawerTemp) continue;
while (drawerTemp.Name !== "抽屉空间" && drawerTemp.Name !== "格子抽")
{
if (ens.Parent)
ens = ens.Parent.Object as TemplateRecord;
if (drawerTemp.Parent)
drawerTemp = drawerTemp.Parent.Object as TemplateRecord;
else
break;
}
if (!ens.Parent) continue;
if (!drawerTemp.Parent) continue;
let brBox = new Box3;
let ocsInv = ens.AllEntitys[0].SpaceOCSInv;
let drawGroup: Entity[] = ens.AllEntitys;
let ocsInv = drawerTemp.AllEntitys[0].SpaceOCSInv;
let drawGroup: Entity[] = drawerTemp.AllEntitys;
for (let en of ens.AllEntitys)
for (let en of drawerTemp.AllEntitys)
{
//删除重复节省资源
if (drawerEns.includes(en) && drawerEns[i] !== en)
@ -200,9 +201,10 @@ export class Command_OpenCabinet implements Command
{
for (let i = 0; i < doorEns.length; i++)
{
let ens = doorEns[i].Template.Object as TemplateRecord;
let doorGroup: Entity[] = ens.Entitys;
for (let en of ens.Entitys)
let doorTemp = doorEns[i].Template?.Object as TemplateRecord;
if (!doorTemp) continue;
let doorGroup: Entity[] = doorTemp.Entitys;
for (let en of doorTemp.Entitys)
{
//删除重复节省资源
if (doorEns.includes(en) && doorEns[i] !== en)
@ -211,7 +213,7 @@ export class Command_OpenCabinet implements Command
handles.splice(handles.indexOf(en), 1);
else if (holes.includes(en))
holes.splice(holes.indexOf(en), 1);
let ocsInv = ens.Entitys[0].SpaceOCSInv;
let ocsInv = doorTemp.Entitys[0].SpaceOCSInv;
let enBox = en.GetBoundingBoxInMtx(ocsInv);
//排钻跟随门板
arrayRemoveIf(holes, (hole) => IsEntityBelongToDoor(enBox, ocsInv, doorGroup, hole));

Loading…
Cancel
Save