From dfc702992bce389d05e5fe00de0c832aea582ff6 Mon Sep 17 00:00:00 2001 From: Thomas Bloor Date: Fri, 27 Dec 2019 02:59:21 +0000 Subject: [PATCH] Started work on Server pages --- src/app/app-routing.module.ts | 4 ++ src/app/app.module.ts | 6 ++- src/app/models/atlasData/server.model.ts | 25 +++++++++---- src/app/pages/config/config.component.html | 1 + .../servers/server/server.component.html | 30 +++++++++++++++ .../config/servers/server/server.component.ts | 22 +++++++++++ .../config/servers/servers.component.html | 19 ++++++++++ .../pages/config/servers/servers.component.ts | 37 +++++++++++++++++++ 8 files changed, 136 insertions(+), 8 deletions(-) create mode 100644 src/app/pages/config/servers/server/server.component.html create mode 100644 src/app/pages/config/servers/server/server.component.ts create mode 100644 src/app/pages/config/servers/servers.component.html create mode 100644 src/app/pages/config/servers/servers.component.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 662b897..f45168c 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -5,6 +5,8 @@ import { ConfigComponent } from "./pages/config/config.component"; import { QuestsComponent } from "./pages/config/quests/quests.component"; import { GridComponent } from "./pages/config/grid/grid.component"; import { DbsComponent } from "./pages/config/dbs/dbs.component"; +import { ServersComponent } from "./pages/config/servers/servers.component"; +import { ServerComponent } from "./pages/config/servers/server/server.component"; const routes: Routes = [ @@ -16,6 +18,8 @@ const routes: Routes = [ {path: 'grid', component: GridComponent}, {path: 'dbs', component: DbsComponent}, {path: 'quests', component: QuestsComponent}, + {path: 'servers', component: ServersComponent}, + {path: 'server/:index', component: ServerComponent} ] } ]; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 22caf36..789188a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -17,6 +17,8 @@ import { TextComponent } from './components/form/text/text.component'; import { PasswordComponent } from './components/form/password/password.component'; import { DbsComponent } from './pages/config/dbs/dbs.component'; import { CheckboxComponent } from './components/form/checkbox/checkbox.component'; +import { ServersComponent } from './pages/config/servers/servers.component'; +import { ServerComponent } from './pages/config/servers/server/server.component'; @NgModule({ declarations: [ @@ -30,7 +32,9 @@ import { CheckboxComponent } from './components/form/checkbox/checkbox.component TextComponent, PasswordComponent, DbsComponent, - CheckboxComponent + CheckboxComponent, + ServersComponent, + ServerComponent ], imports: [ BrowserModule, diff --git a/src/app/models/atlasData/server.model.ts b/src/app/models/atlasData/server.model.ts index fc2b7c2..198476a 100644 --- a/src/app/models/atlasData/server.model.ts +++ b/src/app/models/atlasData/server.model.ts @@ -2,16 +2,18 @@ import { Deserialize } from "../util/deserialize.model"; import { ServerSublevelModel } from "./serverSublevel.model"; export class ServerModel implements Deserialize { + // General Settings + name: string; gridX: number; gridY: number; - MachineIdTag: string; + isHomeServer: boolean; + + // Connection Settings ip: string; - name: string; port: number; gamePort: number; seamlessDataPort: number; - isHomeServer: boolean; - AdditionalCmdLineParams: string; + OverrideShooterGameModeDefaultGameIni: object; floorZDist: number; utcOffset: number; @@ -31,9 +33,7 @@ export class ServerModel implements Deserialize { serverIslandPointsMultiplier: number; lastModified: string; lastImageOverride: string; - islandLocked: boolean; - discoLocked: boolean; - pathsLocked: boolean; + extraSublevels: string[]; totalExtraSublevels: string[]; islandInstances; @@ -43,6 +43,17 @@ export class ServerModel implements Deserialize { sublevels: ServerSublevelModel[]; + // Irrelevant, used internally by Grapeshot + //MachineIdTag: string; + // Probably also irrelevant + //AdditionalCmdLineParams: string; + + // Used by ServerGridEditor + //islandLocked: boolean; + //discoLocked: boolean; + //pathsLocked: boolean; + + deserialize(input: any): this { Object.assign(this, input); this.sublevels = this.sublevels.map(i => new ServerSublevelModel().deserialize(i)); diff --git a/src/app/pages/config/config.component.html b/src/app/pages/config/config.component.html index a00ef9c..2f5021a 100644 --- a/src/app/pages/config/config.component.html +++ b/src/app/pages/config/config.component.html @@ -3,6 +3,7 @@ +
\ No newline at end of file diff --git a/src/app/pages/config/servers/server/server.component.html b/src/app/pages/config/servers/server/server.component.html new file mode 100644 index 0000000..53d4fa8 --- /dev/null +++ b/src/app/pages/config/servers/server/server.component.html @@ -0,0 +1,30 @@ +
+

{{ cell.name }}No Name Set - ({{ cell.gridX }} + , {{ cell.gridY }})

+ + + + + + + + + + + + + + + + + + +

{{ cell | json }}

+
diff --git a/src/app/pages/config/servers/server/server.component.ts b/src/app/pages/config/servers/server/server.component.ts new file mode 100644 index 0000000..be4163c --- /dev/null +++ b/src/app/pages/config/servers/server/server.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, ParamMap } from "@angular/router"; +import { switchMap } from "rxjs/operators"; +import { Server } from "../../../../server"; +import { ServerModel } from "../../../../models/atlasData/server.model"; + +@Component({ + selector: 'app-server', + templateUrl: './server.component.html' +}) +export class ServerComponent implements OnInit { + private cell: ServerModel; + + constructor(private server: Server, private route: ActivatedRoute) { + } + + ngOnInit() { + let index = this.route.snapshot.paramMap.get('index'); + this.cell = this.server.serverGrid.servers[index]; + } + +} diff --git a/src/app/pages/config/servers/servers.component.html b/src/app/pages/config/servers/servers.component.html new file mode 100644 index 0000000..c8a8a25 --- /dev/null +++ b/src/app/pages/config/servers/servers.component.html @@ -0,0 +1,19 @@ +
+

Cell Grid

+ + + + + + + + + + + + + +
#{{ x }}
{{ y }}{{ serverLookup[x][y] }}
+

Cells Outside Grid

+ +
\ No newline at end of file diff --git a/src/app/pages/config/servers/servers.component.ts b/src/app/pages/config/servers/servers.component.ts new file mode 100644 index 0000000..3fd9c8d --- /dev/null +++ b/src/app/pages/config/servers/servers.component.ts @@ -0,0 +1,37 @@ +import { Component, OnInit } from '@angular/core'; +import { Server } from "../../../server"; +import { ServerGridModel } from "../../../models/serverGrid.model"; + +@Component({ + selector: 'app-servers', + templateUrl: './servers.component.html' +}) +export class ServersComponent implements OnInit { + private grid: ServerGridModel; + + private xArray: number[]; + private yArray: number[]; + + private serverLookup: number[][] = []; + private unknownServers: number[] = []; + + constructor(private server: Server) { + this.grid = server.serverGrid; + this.xArray = Array.from(Array(this.grid.totalGridsX).keys()); + this.yArray = Array.from(Array(this.grid.totalGridsY).keys()); + this.grid.servers.forEach((i, index) => { + if (i.gridX < this.grid.totalGridsX && i.gridY < this.grid.totalGridsY) { + if (this.serverLookup[i.gridX] === undefined) + this.serverLookup[i.gridX] = []; + this.serverLookup[i.gridX][i.gridY] = index; + } else { + this.unknownServers.push(index); + } + }); + console.log("Server Lookup", this.serverLookup); + console.log("Unknown Servers", this.unknownServers); + } + + ngOnInit() { + } +}