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
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; |
|
} |
|
} |