import { Type } from 'class-transformer'; import { ConfigManager } from 'src/assets/babylon/controller/config-manager'; import { DataManager } from 'src/assets/babylon/controller/data-manager'; import { FacilityPosType, FacilityType, ModelData_facility } from '../../model-data/model-data-facility'; import { TransformData } from '../../transform-data'; //所有设备数据 export class AllFacilityData { @Type(() => ModelData_facility) indoor: ModelData_facility[] = []; //室内 @Type(() => ModelData_facility) outdoor: ModelData_facility[] = []; //室外 /**捏造所有消防设施的源数据 */ static CreateAllFacilityData(): AllFacilityData { let result = new AllFacilityData(); AllFacilityData.newFacilityData(FacilityType.AQCK, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.DSXHS, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.DXXHS, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.SZDSXHS, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.SZDXXHS, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.DSSBJHQ, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.DXSBJHQ, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.QBSBJHQ, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.DGNSBJHQ, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.GD, FacilityPosType.Outdoor, result, false); AllFacilityData.newFacilityData(FacilityType.PL, FacilityPosType.Outdoor, result); AllFacilityData.newFacilityData(FacilityType.JTQ, FacilityPosType.Outdoor, result, false); AllFacilityData.newFacilityData(FacilityType.JJQ, FacilityPosType.Outdoor, result, false); AllFacilityData.newFacilityData(FacilityType.TPBZ, FacilityPosType.Outdoor, result, true); AllFacilityData.newFacilityData(FacilityType.XKS, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.BF, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.SX, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.LSXFB, FacilityPosType.Indoor, result); AllFacilityData.newFacilityData(FacilityType.WSXFB, FacilityPosType.Indoor, result); AllFacilityData.newFacilityData(FacilityType.CYXFB, FacilityPosType.Indoor, result); AllFacilityData.newFacilityData(FacilityType.FHFQ, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.SNXHS, FacilityPosType.Indoor, result); AllFacilityData.newFacilityData(FacilityType.FHM, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.FHJL, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.SSLT, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.XFDT, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.PTDT, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.HT, FacilityPosType.Indoor, result, false); AllFacilityData.newFacilityData(FacilityType.WXY, FacilityPosType.Public, result); AllFacilityData.newFacilityData(FacilityType.ZDQY, FacilityPosType.Public, result); AllFacilityData.newFacilityData(FacilityType.DWBZ, FacilityPosType.Public, result); return result; } //新建设备信息 static newFacilityData(type: FacilityType, posType: FacilityPosType, allFacilityData: AllFacilityData, isModel: boolean = true): ModelData_facility { let name = ConfigManager.getFacilityTypeName(type); let result = new ModelData_facility(type.toString(), type, name, DataManager.getResName_facility(type) + ".gltf", new TransformData(), posType, isModel); switch (posType) { case FacilityPosType.Outdoor: allFacilityData.outdoor.push(result); break; case FacilityPosType.Indoor: allFacilityData.indoor.push(result); break; case FacilityPosType.Public: allFacilityData.outdoor.push(result); allFacilityData.indoor.push(result); break; } return result; } }