Atlas-Config-Generator/src/app/models/atlasData/server.model.ts

77 lines
No EOL
2 KiB
TypeScript

import { Deserialize } from "../util/deserialize.model";
import { ServerSublevelModel } from "./serverSublevel.model";
import { IslandInstanceModel } from "./island-instance.model";
export class ServerModel implements Deserialize {
// General Settings
name: string;
gridX: number;
gridY: number;
isHomeServer: boolean;
utcOffset: number;
// Connection Settings
ip: string;
port: number;
gamePort: number;
seamlessDataPort: number;
// Gameplay Settings
floorZDist: number;
transitionMinZ: number;
serverIslandPointsMultiplier: number;
// Colour & Style Settings
waterColorR: number;
waterColorG: number;
waterColorB: number;
skyStyleIndex: number;
// Override Settings
OceanDinoDepthEntriesOverride: string;
oceanFloatsamCratesOverride: string;
treasureMapLootTablesOverride: string;
OverrideShooterGameModeDefaultGameIni: object;
//Dont render if default/empty
GlobalBiomeSeamlessServerGridPreOffsetValues: string;
GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater: string;
oceanEpicSpawnEntriesOverrideTemplateName: string;
NPCShipSpawnEntriesOverrideTemplateName: string;
regionOverrides: string;
lastImageOverride: string;
extraSublevels: string[];
totalExtraSublevels: string[];
islandInstances: IslandInstanceModel[];
discoZones;
spawnRegions;
// Dont render if default/empty
serverTemplateName: string;
sublevels: ServerSublevelModel[];
// Irrelevant, used internally by Grapeshot
//MachineIdTag: string;
// Probably also irrelevant
//AdditionalCmdLineParams: string;
// Used by ServerGridEditor
//islandLocked: boolean;
//discoLocked: boolean;
//pathsLocked: boolean;
// Editing time for ServerGridEditor
//lastModified: string;
deserialize(input: any): this {
Object.assign(this, input);
this.sublevels = this.sublevels.map(i => new ServerSublevelModel().deserialize(i));
this.islandInstances = this.islandInstances.map(i => new IslandInstanceModel().deserialize(i));
return this;
}
}