中化加油站项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

92 lines
2.7 KiB

import { Vector3 } from "@babylonjs/core";
import { Type } from "class-transformer";
import { BuildingData_ChemicalPlant, BuildingData_Environment, BuildingData_Normal, BuildingType } from "./building/building-data";
//单位信息
export class InstitutionData {
/**
* 版本号
*/
version: string = "1.0";
@Type(() => NormalData)
normalData: NormalData = null;//常规信息
@Type(() => BuildingData_Normal)
normalBuildingDatas: BuildingData_Normal[] = [];//普通建筑列表
@Type(() => BuildingData_Environment)
environmentDatas: BuildingData_Environment[] = [];//环境信息
@Type(() => BuildingData_ChemicalPlant)
chemicalPlantData: BuildingData_ChemicalPlant[] = [];//化工厂信息
@Type(() => Vector3)
pos: Vector3 = new Vector3(0, 0, 0);
//获取一个最新的key(根据前一个同类建筑key,加一)
public getNewKey(buildingType: BuildingType): string {
let result = "";
let lastNormalData: NormalData = null;
let length = 0;
switch (buildingType) {
case BuildingType.Normal:
if (this.normalBuildingDatas != null && this.normalBuildingDatas.length > 0) {
length = this.normalBuildingDatas.length;
lastNormalData = this.normalBuildingDatas[length - 1].normalData;
}
break;
case BuildingType.Environment:
if (this.environmentDatas != null && this.environmentDatas.length > 0) {
length = this.environmentDatas.length;
lastNormalData = this.environmentDatas[length - 1].normalData;
}
break;
case BuildingType.ChemicalPlant:
if (this.chemicalPlantData != null && this.chemicalPlantData.length > 0) {
length = this.chemicalPlantData.length;
lastNormalData = this.chemicalPlantData[length - 1].normalData;
}
break;
}
let lastKey = 0;
if (lastNormalData != null) {
lastKey = Number.parseInt(lastNormalData.key);
lastKey++;
}
result += lastKey;
return result;
}
}
//常规、必有的信息
export class NormalData {
key: string;//唯一key
name: string;//给用户编辑、查看用的名称
constructor(key: string = "", name: string = "") {
this.key = key;
this.name = name;
}
clone(): NormalData {
let result = new NormalData(this.key, this.name);
return result;
}
getName() {
//console.log("getName==" + this.name);
return this.name;
}
}