Compare commits
2 commits
8746c23518
...
5de3325dc5
| Author | SHA1 | Date | |
|---|---|---|---|
| 5de3325dc5 | |||
| 2c1ff2473d |
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "src/assets/server-grid-editor"]
|
||||||
|
path = src/assets/server-grid-editor
|
||||||
|
url = https://github.com/GrapeshotGames/ServerGridEditor.git
|
||||||
3
.idea/dictionaries/Tom.xml
generated
|
|
@ -4,6 +4,9 @@
|
||||||
<w>deparse</w>
|
<w>deparse</w>
|
||||||
<w>gameplay</w>
|
<w>gameplay</w>
|
||||||
<w>pegjs</w>
|
<w>pegjs</w>
|
||||||
|
<w>powerstones</w>
|
||||||
|
<w>sublevel</w>
|
||||||
|
<w>sublevels</w>
|
||||||
</words>
|
</words>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
</component>
|
</component>
|
||||||
1
.idea/vcs.xml
generated
|
|
@ -2,5 +2,6 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/src/assets/server-grid-editor" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
20
package-lock.json
generated
|
|
@ -1886,8 +1886,7 @@
|
||||||
"@types/geojson": {
|
"@types/geojson": {
|
||||||
"version": "7946.0.7",
|
"version": "7946.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz",
|
||||||
"integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==",
|
"integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"@types/glob": {
|
"@types/glob": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
|
|
@ -1919,11 +1918,18 @@
|
||||||
"version": "1.5.7",
|
"version": "1.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.5.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.5.7.tgz",
|
||||||
"integrity": "sha512-FiPU4NQwH+jQ2wc3IjD7+9hgNZ95m4ry8qILO+eS6L4eUUVSXr+472+k4SRVEW+8j18QwqY7PFqudDQzfpRXTQ==",
|
"integrity": "sha512-FiPU4NQwH+jQ2wc3IjD7+9hgNZ95m4ry8qILO+eS6L4eUUVSXr+472+k4SRVEW+8j18QwqY7PFqudDQzfpRXTQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/geojson": "*"
|
"@types/geojson": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/leaflet-imageoverlay-rotated": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/leaflet-imageoverlay-rotated/-/leaflet-imageoverlay-rotated-0.1.4.tgz",
|
||||||
|
"integrity": "sha512-b5Q2h1D4APy/hsYfqU1D1WGzsg7/jcxaezZk52R6V0VicqS9Lno72+ok0VNYTkdWmAWHhRFuwJOU1TldznYBqQ==",
|
||||||
|
"requires": {
|
||||||
|
"@types/leaflet": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/minimatch": {
|
"@types/minimatch": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
|
||||||
|
|
@ -7340,6 +7346,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz",
|
||||||
"integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ=="
|
"integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ=="
|
||||||
},
|
},
|
||||||
|
"leaflet-imageoverlay-rotated": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/leaflet-imageoverlay-rotated/-/leaflet-imageoverlay-rotated-0.2.1.tgz",
|
||||||
|
"integrity": "sha512-8MsrIuW/aXI0EjDXgJSJJ67nqVNQJsP/glmND9g6yc6t+zQgdPUbTRHC65jSs/IBwzwyhggnDgDuydalcEX+ew==",
|
||||||
|
"requires": {
|
||||||
|
"leaflet": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"less": {
|
"less": {
|
||||||
"version": "3.9.0",
|
"version": "3.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz",
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,12 @@
|
||||||
"@angular/router": "~8.2.11",
|
"@angular/router": "~8.2.11",
|
||||||
"@asymmetrik/ngx-leaflet": "^6.0.1",
|
"@asymmetrik/ngx-leaflet": "^6.0.1",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^5.1.1",
|
"@ng-bootstrap/ng-bootstrap": "^5.1.1",
|
||||||
|
"@types/leaflet-imageoverlay-rotated": "^0.1.4",
|
||||||
"@types/pegjs": "^0.10.1",
|
"@types/pegjs": "^0.10.1",
|
||||||
"ace-builds": "^1.4.7",
|
"ace-builds": "^1.4.7",
|
||||||
"bootstrap": "^4.3.1",
|
"bootstrap": "^4.3.1",
|
||||||
"leaflet": "^1.6.0",
|
"leaflet": "^1.6.0",
|
||||||
|
"leaflet-imageoverlay-rotated": "^0.2.1",
|
||||||
"rxjs": "~6.4.0",
|
"rxjs": "~6.4.0",
|
||||||
"ts-pegjs": "^0.2.6",
|
"ts-pegjs": "^0.2.6",
|
||||||
"tslib": "^1.10.0",
|
"tslib": "^1.10.0",
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import { ServersComponent } from "./pages/config/servers/servers.component";
|
||||||
import { ServerComponent } from "./pages/config/servers/server/server.component";
|
import { ServerComponent } from "./pages/config/servers/server/server.component";
|
||||||
import { IslandInstanceComponent } from "./pages/config/servers/island-instance/island-instance.component";
|
import { IslandInstanceComponent } from "./pages/config/servers/island-instance/island-instance.component";
|
||||||
import { MapComponent } from "./pages/config/map/map.component";
|
import { MapComponent } from "./pages/config/map/map.component";
|
||||||
|
import { DiscoveryZoneComponent } from "./pages/config/servers/discovery-zone/discovery-zone.component";
|
||||||
|
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
|
|
@ -22,6 +23,7 @@ const routes: Routes = [
|
||||||
{path: 'servers', component: ServersComponent},
|
{path: 'servers', component: ServersComponent},
|
||||||
{path: 'server/:index', component: ServerComponent},
|
{path: 'server/:index', component: ServerComponent},
|
||||||
{path: 'server/:index/island/:islandIndex', component: IslandInstanceComponent},
|
{path: 'server/:index/island/:islandIndex', component: IslandInstanceComponent},
|
||||||
|
{path: 'server/:index/discovery/:discoIndex', component: DiscoveryZoneComponent},
|
||||||
{path: 'map', component: MapComponent}
|
{path: 'map', component: MapComponent}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import { SelectObjectComponent } from './components/form/select-object/select-ob
|
||||||
import { IslandInstanceComponent } from './pages/config/servers/island-instance/island-instance.component';
|
import { IslandInstanceComponent } from './pages/config/servers/island-instance/island-instance.component';
|
||||||
import { LeafletModule } from "@asymmetrik/ngx-leaflet";
|
import { LeafletModule } from "@asymmetrik/ngx-leaflet";
|
||||||
import { MapComponent } from './pages/config/map/map.component';
|
import { MapComponent } from './pages/config/map/map.component';
|
||||||
|
import { DiscoveryZoneComponent } from './pages/config/servers/discovery-zone/discovery-zone.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
|
|
@ -45,7 +46,8 @@ import { MapComponent } from './pages/config/map/map.component';
|
||||||
SelectListComponent,
|
SelectListComponent,
|
||||||
SelectObjectComponent,
|
SelectObjectComponent,
|
||||||
IslandInstanceComponent,
|
IslandInstanceComponent,
|
||||||
MapComponent
|
MapComponent,
|
||||||
|
DiscoveryZoneComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
|
|
|
||||||
34
src/app/models/atlasData/discovery-zone.model.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
import { Deserialize } from "../util/deserialize.model";
|
||||||
|
|
||||||
|
export class DiscoveryZoneModel implements Deserialize {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
sizeX: number = 0;
|
||||||
|
sizeY: number = 0;
|
||||||
|
sizeZ: number = 0;
|
||||||
|
|
||||||
|
worldX: number = 0;
|
||||||
|
worldY: number = 0;
|
||||||
|
rotation: number = 0;
|
||||||
|
|
||||||
|
xp: number = 0;
|
||||||
|
|
||||||
|
allowSea: boolean = false;
|
||||||
|
explorerNoteIndex: number = 0;
|
||||||
|
|
||||||
|
bIsManuallyPlaced: boolean = false;
|
||||||
|
ManualVolumeName: string;
|
||||||
|
|
||||||
|
deserialize(input: any): this {
|
||||||
|
Object.assign(this, input);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
toJSON(): object {
|
||||||
|
let json = Object.assign({}, this);
|
||||||
|
// Key not shown at all if manually placed.
|
||||||
|
if (!json.bIsManuallyPlaced) delete json.ManualVolumeName;
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { Deserialize } from "../util/deserialize.model";
|
import { Deserialize } from "../util/deserialize.model";
|
||||||
import { ServerSublevelModel } from "./serverSublevel.model";
|
import { ServerSublevelModel } from "./serverSublevel.model";
|
||||||
import { IslandInstanceModel } from "./island-instance.model";
|
import { IslandInstanceModel } from "./island-instance.model";
|
||||||
|
import { DiscoveryZoneModel } from "./discovery-zone.model";
|
||||||
|
|
||||||
export class ServerModel implements Deserialize {
|
export class ServerModel implements Deserialize {
|
||||||
// General Settings
|
// General Settings
|
||||||
|
|
@ -46,7 +47,7 @@ export class ServerModel implements Deserialize {
|
||||||
extraSublevels: string[];
|
extraSublevels: string[];
|
||||||
totalExtraSublevels: string[];
|
totalExtraSublevels: string[];
|
||||||
islandInstances: IslandInstanceModel[];
|
islandInstances: IslandInstanceModel[];
|
||||||
discoZones;
|
discoZones: DiscoveryZoneModel[];
|
||||||
spawnRegions;
|
spawnRegions;
|
||||||
|
|
||||||
// Dont render if default/empty
|
// Dont render if default/empty
|
||||||
|
|
@ -72,6 +73,7 @@ export class ServerModel implements Deserialize {
|
||||||
Object.assign(this, input);
|
Object.assign(this, input);
|
||||||
this.sublevels = this.sublevels.map(i => new ServerSublevelModel().deserialize(i));
|
this.sublevels = this.sublevels.map(i => new ServerSublevelModel().deserialize(i));
|
||||||
this.islandInstances = this.islandInstances.map(i => new IslandInstanceModel().deserialize(i));
|
this.islandInstances = this.islandInstances.map(i => new IslandInstanceModel().deserialize(i));
|
||||||
|
this.discoZones = this.discoZones.map(i => new DiscoveryZoneModel().deserialize(i));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
<button class="btn btn-primary btn-block" [routerLink]="['dbs']">DB Settings</button>
|
<button class="btn btn-primary btn-block" [routerLink]="['dbs']">DB Settings</button>
|
||||||
<button class="btn btn-primary btn-block" [routerLink]="['quests']">Quest Settings</button>
|
<button class="btn btn-primary btn-block" [routerLink]="['quests']">Quest Settings</button>
|
||||||
<button class="btn btn-primary btn-block" [routerLink]="['servers']">Server Settings</button>
|
<button class="btn btn-primary btn-block" [routerLink]="['servers']">Server Settings</button>
|
||||||
|
<button class="btn btn-primary btn-block" [routerLink]="['map']">Map</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-10"><router-outlet></router-outlet></div>
|
<div class="col-10"><router-outlet></router-outlet></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
<div style="height: 400px;"
|
<div style="height: 600px;"
|
||||||
leaflet
|
leaflet
|
||||||
[leafletOptions]="options"
|
[leafletOptions]="options">
|
||||||
[(leafletCenter)]="center"
|
<div *ngFor="let s of serverLayers" [leafletLayer]="s"></div>
|
||||||
[(leafletZoom)]="zoom">
|
<div *ngFor="let i of islandLayers" [leafletLayer]="i"></div>
|
||||||
<div *ngFor="let l of layers" [leafletLayer]="l"></div>
|
<div *ngFor="let d of discoveryLayers" [leafletLayer]="d"></div>
|
||||||
</div>
|
</div>
|
||||||
<p>Zoom: {{ zoom }}</p>
|
|
||||||
<p>Center lat: {{ center.lat }} Center long: {{ center.lng }}</p>
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { CRS, LatLng, latLng, LatLngBounds, latLngBounds, Rectangle, tileLayer } from "leaflet";
|
import { Circle, CRS, ImageOverlay, LatLng, LatLngBounds, Rectangle } from "leaflet";
|
||||||
import { Server } from "../../../server";
|
import { Server } from "../../../server";
|
||||||
|
import { IslandInstanceModel } from "../../../models/atlasData/island-instance.model";
|
||||||
|
import * as L from 'leaflet';
|
||||||
|
import 'leaflet-imageoverlay-rotated';
|
||||||
|
|
||||||
const SIZE_SCALE = 100_000;
|
const RADIAN_RATIO = Math.PI / 180;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-map',
|
selector: 'app-map',
|
||||||
|
|
@ -13,16 +16,20 @@ export class MapComponent implements OnInit {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
crs: CRS.Simple,
|
crs: CRS.Simple,
|
||||||
zoom: 0,
|
zoom: -16,
|
||||||
maxBounds: undefined,
|
maxBounds: undefined,
|
||||||
maxBoundsViscosity: 0.5,
|
maxBoundsViscosity: 0.5,
|
||||||
center: undefined,
|
center: undefined,
|
||||||
layers: []
|
layers: [],
|
||||||
|
minZoom: -16,
|
||||||
};
|
};
|
||||||
|
|
||||||
center: LatLng;
|
serverLayers = [];
|
||||||
zoom: number;
|
islandLayers = [];
|
||||||
layers = [];
|
discoveryLayers = [];
|
||||||
|
|
||||||
|
maxX: number;
|
||||||
|
maxY: number;
|
||||||
|
|
||||||
constructor(private server: Server) {
|
constructor(private server: Server) {
|
||||||
}
|
}
|
||||||
|
|
@ -30,28 +37,83 @@ export class MapComponent implements OnInit {
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
// all in Y X format. Also, upside down! (0,0 is bottom left instead of top left)
|
// all in Y X format. Also, upside down! (0,0 is bottom left instead of top left)
|
||||||
// Also, due to insanely large sizes, divide by 100_000
|
// Also, due to insanely large sizes, divide by 100_000
|
||||||
const maxX = (this.server.serverGrid.gridSize * this.server.serverGrid.totalGridsX) / SIZE_SCALE;
|
this.maxX = this.server.serverGrid.gridSize * this.server.serverGrid.totalGridsX;
|
||||||
const maxY = (this.server.serverGrid.gridSize * this.server.serverGrid.totalGridsY) / SIZE_SCALE;
|
this.maxY = this.server.serverGrid.gridSize * this.server.serverGrid.totalGridsY;
|
||||||
const northEast = new LatLng(0, maxX);
|
const northEast = new LatLng(0, this.maxX);
|
||||||
const southWest = new LatLng(maxY, 0);
|
const southWest = new LatLng(this.maxY, 0);
|
||||||
this.options.maxBounds = new LatLngBounds(southWest, northEast);
|
this.options.maxBounds = new LatLngBounds(southWest, northEast);
|
||||||
this.options.center = new LatLng(0, 0);
|
this.options.center = new LatLng(0, 0);
|
||||||
this.options.layers[0] = new Rectangle(this.options.maxBounds, {
|
this.options.layers.push(new ImageOverlay('./assets/server-grid-editor/WaterTiles/instinctworld-autoscaling.png', this.options.maxBounds));
|
||||||
color: '#3c3c00',
|
|
||||||
weight: 5,
|
|
||||||
fillColor: 'lightblue',
|
|
||||||
fill: true
|
|
||||||
});
|
|
||||||
|
|
||||||
this.server.serverGrid.servers.forEach(i => {
|
this.server.serverGrid.servers.forEach(s => {
|
||||||
const servMinX = (this.server.serverGrid.gridSize * i.gridX) / SIZE_SCALE;
|
// Server Layer
|
||||||
const servMaxX = servMinX + (this.server.serverGrid.gridSize / SIZE_SCALE);
|
const servMinX = this.server.serverGrid.gridSize * s.gridX;
|
||||||
const servMinY = (this.server.serverGrid.gridSize * i.gridY) / SIZE_SCALE;
|
const servMaxX = servMinX + this.server.serverGrid.gridSize;
|
||||||
const servMaxY = servMinY + (this.server.serverGrid.gridSize / SIZE_SCALE);
|
const servMinY = this.server.serverGrid.gridSize * s.gridY;
|
||||||
|
const servMaxY = servMinY + this.server.serverGrid.gridSize;
|
||||||
const servNE = new LatLng(servMinY, servMaxX);
|
const servNE = new LatLng(servMinY, servMaxX);
|
||||||
const servSW = new LatLng(servMaxY, servMinX);
|
const servSW = new LatLng(servMaxY, servMinX);
|
||||||
const servBounds = new LatLngBounds(servSW, servNE);
|
const servBounds = new LatLngBounds(servSW, servNE);
|
||||||
this.layers.push(new Rectangle(servBounds,{color: 'pink', weight: 5}));
|
this.serverLayers.push(new Rectangle(servBounds,{color: 'black', weight: 1}));
|
||||||
|
|
||||||
|
s.islandInstances.forEach(i => {
|
||||||
|
const imgUrl = this.server.islands.islandData[i.name].imagePath;
|
||||||
|
const islandLocation = this.islandToImageRotation(i);
|
||||||
|
this.islandLayers.push(L.imageOverlay.rotated(imgUrl, islandLocation[0], islandLocation[1], islandLocation[2]));
|
||||||
|
});
|
||||||
|
|
||||||
|
s.discoZones.forEach(d => {
|
||||||
|
if (d.ManualVolumeName !== undefined) return;
|
||||||
|
const imgUrl = './assets/server-grid-editor/Resources/discoZoneBox.png';
|
||||||
|
const discoLocation = this.discoveryZoneToImageRotation(d);
|
||||||
|
this.discoveryLayers.push(L.imageOverlay.rotated(imgUrl, discoLocation[0], discoLocation[1], discoLocation[2]));
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gridCoordinateToMapLatLng(gridX: number, gridY: number): LatLng {
|
||||||
|
// Need to invert gridY for the Latitude.
|
||||||
|
const newY = this.maxY - gridY;
|
||||||
|
return new LatLng(newY, gridX);
|
||||||
|
}
|
||||||
|
|
||||||
|
islandToImageRotation(island: IslandInstanceModel): LatLng[] {
|
||||||
|
return this.gridCoordinateToImageRotation(island.worldX, island.worldY, island.rotation, island.islandWidth, island.islandHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
discoveryZoneToImageRotation(disco): LatLng[] {
|
||||||
|
return this.gridCoordinateToImageRotation(disco.worldX, disco.worldY, disco.rotation, disco.sizeX, disco.sizeY);
|
||||||
|
}
|
||||||
|
|
||||||
|
gridCoordinateToImageRotation(worldX, worldY, rotation, width, height): LatLng[] {
|
||||||
|
const halfWidth = width / 2;
|
||||||
|
const halfHeight = height / 2;
|
||||||
|
|
||||||
|
const radians = (rotation + 90) * RADIAN_RATIO;
|
||||||
|
|
||||||
|
const cosR = Math.cos(radians);
|
||||||
|
const sinR = Math.sin(radians);
|
||||||
|
|
||||||
|
// https://gamedev.stackexchange.com/questions/86755/how-to-calculate-corner-positions-marks-of-a-rotated-tilted-rectangle
|
||||||
|
// Rotate any point around
|
||||||
|
// Nx = x * cos(a) - y * sin(a)
|
||||||
|
// Ny = x * sin(a) + y * cos(a)
|
||||||
|
|
||||||
|
// REMEMBER everything is upside down
|
||||||
|
// Top Left -1, 1
|
||||||
|
const topLeftX = worldX + (-halfWidth * cosR) - (halfHeight * sinR);
|
||||||
|
const topLeftY = worldY + (-halfWidth * sinR) + (halfHeight * cosR);
|
||||||
|
// Bottom Left -1, -1 BUT mirrored for some reason so 1, 1
|
||||||
|
const botLeftX = worldX + (halfWidth * cosR) - (halfHeight * sinR);
|
||||||
|
const botLeftY = worldY + (halfWidth * sinR) + (halfHeight * cosR);
|
||||||
|
// Top Right 1, 1 BUT mirrored for some reason so -1, -1
|
||||||
|
const topRightX = worldX + (-halfWidth * cosR) - (-halfHeight * sinR);
|
||||||
|
const topRightY = worldY + (-halfWidth * sinR) + (-halfHeight * cosR);
|
||||||
|
|
||||||
|
return [
|
||||||
|
this.gridCoordinateToMapLatLng(topLeftX, topLeftY),
|
||||||
|
this.gridCoordinateToMapLatLng(topRightX, topRightY),
|
||||||
|
this.gridCoordinateToMapLatLng(botLeftX, botLeftY)
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
<div class="mt-3">
|
||||||
|
<h2>{{ discovery.name }}
|
||||||
|
<button class="btn btn-primary btn-sm" [routerLink]="['/config', 'server', cellIndex]">Back to Cell</button>
|
||||||
|
</h2>
|
||||||
|
<p>{{ discovery.sizeX }} by {{ discovery.sizeY }} by {{ discovery.sizeZ }}</p>
|
||||||
|
<ngb-accordion>
|
||||||
|
<ngb-panel title="General Settings">
|
||||||
|
<ng-template ngbPanelContent>
|
||||||
|
<app-text id="name" label="Name" [(text)]="discovery.name"></app-text>
|
||||||
|
<app-number id="worldX" label="World X" [(number)]="discovery.worldX"></app-number>
|
||||||
|
<app-number id="worldY" label="World Y" [(number)]="discovery.worldY"></app-number>
|
||||||
|
<app-number id="rotation" label="Rotation" [(number)]="discovery.rotation" step="0.000001"
|
||||||
|
min="{{ minRot }}" max="{{ maxRot }}"></app-number>
|
||||||
|
<h4>Zone Size</h4>
|
||||||
|
<app-number id="sizeX" label="Size X" [(number)]="discovery.sizeX"></app-number>
|
||||||
|
<app-number id="sizeY" label="Size Y" [(number)]="discovery.sizeY"></app-number>
|
||||||
|
<app-number id="sizeZ" label="Size Z" [(number)]="discovery.sizeZ"
|
||||||
|
help="If the discovery zone has any size, this is normally 40,000"></app-number>
|
||||||
|
</ng-template>
|
||||||
|
</ngb-panel>
|
||||||
|
<ngb-panel title="Discovery Settings">
|
||||||
|
<ng-template ngbPanelContent>
|
||||||
|
<app-number id="xp" label="XP" [(number)]="discovery.xp"
|
||||||
|
help="XP Gained for discovering this zone. Note this also alters the max XP you can gain by levelling"></app-number>
|
||||||
|
<app-checkbox id="allowSea" label="Allow Sea Discovery" [(checkbox)]="discovery.allowSea"
|
||||||
|
help="May not do what you think - Always false on Official Server"></app-checkbox>
|
||||||
|
<app-select-object id="explorerNoteIndex" label="Explorer Note" [optionObject]="explorerNotes"
|
||||||
|
[option]="discovery.explorerNoteIndex" (optionChange)="setExplorerNote($event)"
|
||||||
|
help="Opens a page in the players Discoveries menu on unlocking"></app-select-object>
|
||||||
|
</ng-template>
|
||||||
|
</ngb-panel>
|
||||||
|
<ngb-panel title="Manual Volumes">
|
||||||
|
<ng-template ngbPanelContent>
|
||||||
|
<p>Manual Volumes are either specific points on a map, or a particular 'discovery' available in a
|
||||||
|
cell. For example, certain Forests and Pools on an island are discovery zones in the official
|
||||||
|
server. Also the Powerstone locations are a discovery point, however the names for these aren't tied
|
||||||
|
to a specific island.</p>
|
||||||
|
<p>When a player enters the area of the 'Volume' or otherwise triggers it (in the case of Powerstones),
|
||||||
|
the discovery zone will be unlocked. This happens whether the player is on land, gliding, or
|
||||||
|
swimming. This only happens with these Manual Volume Discoveries - Normal discovery zones require
|
||||||
|
you to set foot on the area.</p>
|
||||||
|
<p>If the Zone size (under general settings) is set to 0 for XYZ, then no shimmer will show around the
|
||||||
|
discovery. Any other size will show a shimmer of that set size, and location, in game.</p>
|
||||||
|
<p>Note as well, the location of a Manual Volume discovery doesnt really matter, however it defaults to
|
||||||
|
the center of the cell.</p>
|
||||||
|
<app-checkbox id="bIsManuallyPlaced" label="Enable Manual Volume"
|
||||||
|
[(checkbox)]="discovery.bIsManuallyPlaced"></app-checkbox>
|
||||||
|
<app-select-list id="ManualVolumeName" label="Manual Volume Name" *ngIf="discovery.bIsManuallyPlaced"
|
||||||
|
[optionList]="discoveryVolumeNameOptionKeys"
|
||||||
|
[option]="discovery.ManualVolumeName" (optionChange)="setDiscoveryVolumeName($event)"></app-select-list>
|
||||||
|
<button class="btn btn-warning" (click)="setLocationCenterOfCell()">Set Center to Cell Center</button>
|
||||||
|
</ng-template>
|
||||||
|
</ngb-panel>
|
||||||
|
</ngb-accordion>
|
||||||
|
</div>
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { ActivatedRoute } from "@angular/router";
|
||||||
|
import { Server } from "../../../../server";
|
||||||
|
import { ServerModel } from "../../../../models/atlasData/server.model";
|
||||||
|
import { DiscoveryZoneModel } from "../../../../models/atlasData/discovery-zone.model";
|
||||||
|
import * as ExplorerNotes from '../../../../../data/explorer-notes.json';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-discovery-zone',
|
||||||
|
templateUrl: './discovery-zone.component.html'
|
||||||
|
})
|
||||||
|
export class DiscoveryZoneComponent implements OnInit {
|
||||||
|
private cell: ServerModel;
|
||||||
|
private cellIndex;
|
||||||
|
private discovery: DiscoveryZoneModel;
|
||||||
|
private discoIndex;
|
||||||
|
|
||||||
|
private minX: number;
|
||||||
|
private maxX: number;
|
||||||
|
private minY: number;
|
||||||
|
private maxY: number;
|
||||||
|
private minRot: number = 0;
|
||||||
|
private maxRot: number = 360;
|
||||||
|
|
||||||
|
private explorerNotes;
|
||||||
|
|
||||||
|
private discoveryVolumeNameOptions: object = {};
|
||||||
|
private discoveryVolumeNameOptionKeys: string[] = [];
|
||||||
|
|
||||||
|
constructor(private server: Server, private route: ActivatedRoute) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.cellIndex = this.route.snapshot.paramMap.get('index');
|
||||||
|
this.discoIndex = this.route.snapshot.paramMap.get('discoIndex');
|
||||||
|
this.cell = this.server.serverGrid.servers[this.cellIndex];
|
||||||
|
this.discovery = this.cell.discoZones[this.discoIndex];
|
||||||
|
this.minX = this.cell.gridX * this.server.serverGrid.gridSize;
|
||||||
|
this.maxX = this.minX + this.server.serverGrid.gridSize;
|
||||||
|
this.minY = this.cell.gridY * this.server.serverGrid.gridSize;
|
||||||
|
this.maxY = this.minY + this.server.serverGrid.gridSize;
|
||||||
|
this.explorerNotes = (ExplorerNotes as any).default;
|
||||||
|
|
||||||
|
this.cell.islandInstances.forEach(i => {
|
||||||
|
const islandData = this.server.islands.islandData[i.name];
|
||||||
|
if (islandData.discoveryVolumeNames.length === 0 ) return;
|
||||||
|
islandData.discoveryVolumeNames.forEach(
|
||||||
|
i => {
|
||||||
|
this.discoveryVolumeNameOptions[i.name] = i;
|
||||||
|
this.discoveryVolumeNameOptionKeys.push(i.name);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
});
|
||||||
|
this.discoveryVolumeNameOptionKeys = this.discoveryVolumeNameOptionKeys.sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
private setExplorerNote(option: string) {
|
||||||
|
this.discovery.explorerNoteIndex = parseInt(option);
|
||||||
|
}
|
||||||
|
|
||||||
|
private setDiscoveryVolumeName(option: string) {
|
||||||
|
console.log(this.discoveryVolumeNameOptions[option]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private setLocationCenterOfCell() {
|
||||||
|
this.discovery.worldX = this.minX + ( this.server.serverGrid.gridSize / 2 );
|
||||||
|
this.discovery.worldY = this.minY + ( this.server.serverGrid.gridSize / 2 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -34,6 +34,7 @@ export class IslandInstanceComponent implements OnInit {
|
||||||
this.minY = this.cell.gridY * this.server.serverGrid.gridSize;
|
this.minY = this.cell.gridY * this.server.serverGrid.gridSize;
|
||||||
this.maxY = this.minY + this.server.serverGrid.gridSize;
|
this.maxY = this.minY + this.server.serverGrid.gridSize;
|
||||||
}
|
}
|
||||||
|
// TODO Need to update subLevels in parent Cell when updating X and Y...
|
||||||
|
|
||||||
// Issue with text arrays and editing jumps on each change.
|
// Issue with text arrays and editing jumps on each change.
|
||||||
trackByFn(index: any, item: any) {
|
trackByFn(index: any, item: any) {
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,55 @@
|
||||||
<ngb-panel title="Island Settings">
|
<ngb-panel title="Island Settings">
|
||||||
<ng-template ngbPanelContent>
|
<ng-template ngbPanelContent>
|
||||||
<p><em>Note that Sublevel settings are sorted in the background</em></p>
|
<p><em>Note that Sublevel settings are sorted in the background</em></p>
|
||||||
<div *ngFor="let island of cell.islandInstances; let i = index">
|
|
||||||
<h4>Island Instance {{ i }} - ID {{ island.id }} <button class="btn btn-sm btn-primary" [routerLink]="['island', i]">Edit</button></h4>
|
<table class="table table-hover">
|
||||||
<app-select-object id="{{ i }}-island-name" label="Island Model" [optionObject]="islandOptions"
|
<thead>
|
||||||
[option]="island.name" (optionChange)="changeIslandModel(i, $event)"></app-select-object>
|
<tr>
|
||||||
</div>
|
<th>Name & Model</th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<app-select-object id="new-island" label="New Island" [optionObject]="islandOptions" [withEmptyOption]="true"
|
||||||
|
[(option)]="newIslandName"></app-select-object>
|
||||||
|
</td>
|
||||||
|
<td><button class="btn btn-warning" (click)="addNewIsland()" [disabled]="!newIslandName">Add</button></td>
|
||||||
|
</tr>
|
||||||
|
<tr *ngFor="let island of cell.islandInstances; let i = index">
|
||||||
|
<td>
|
||||||
|
<app-select-object id="{{ i }}-island-name" label="{{ island.name }}" [optionObject]="islandOptions"
|
||||||
|
[option]="island.name" (optionChange)="changeIslandModel(i, $event)"></app-select-object>
|
||||||
|
</td>
|
||||||
|
<td><button class="btn btn-primary" [routerLink]="['island', i]">Edit</button></td>
|
||||||
|
<td><button class="btn btn-danger" (click)="deleteIsland(i)">Delete</button></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</ng-template>
|
||||||
|
</ngb-panel>
|
||||||
|
<ngb-panel title="Discovery Zone Settings">
|
||||||
|
<ng-template ngbPanelContent>
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Discovery Type</th>
|
||||||
|
<th><button class="btn btn-sm btn-warning" (click)="addNewDiscovery()">Add</button></th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr *ngFor="let disco of cell.discoZones; let i = index">
|
||||||
|
<th>{{ disco.name }}</th>
|
||||||
|
<td>{{ disco.bIsManuallyPlaced ? "Location" : "Island" }}</td>
|
||||||
|
<td><button class="btn btn-sm btn-primary" [routerLink]="['discovery', i]">Edit</button></td>
|
||||||
|
<td><button class="btn btn-sm btn-danger" (click)="deleteDiscovery(i)">Delete</button></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-panel>
|
</ngb-panel>
|
||||||
</ngb-accordion>
|
</ngb-accordion>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { ServerModel } from "../../../../models/atlasData/server.model";
|
||||||
import { IslandDataModel } from "../../../../../data/models/island-data.model";
|
import { IslandDataModel } from "../../../../../data/models/island-data.model";
|
||||||
import { IslandInstanceModel } from "../../../../models/atlasData/island-instance.model";
|
import { IslandInstanceModel } from "../../../../models/atlasData/island-instance.model";
|
||||||
import { ServerSublevelModel } from "../../../../models/atlasData/serverSublevel.model";
|
import { ServerSublevelModel } from "../../../../models/atlasData/serverSublevel.model";
|
||||||
|
import { DiscoveryZoneModel } from "../../../../models/atlasData/discovery-zone.model";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-server',
|
selector: 'app-server',
|
||||||
|
|
@ -14,6 +15,7 @@ export class ServerComponent implements OnInit {
|
||||||
private cell: ServerModel;
|
private cell: ServerModel;
|
||||||
private templateOptions: string[];
|
private templateOptions: string[];
|
||||||
private islandOptions: object = {};
|
private islandOptions: object = {};
|
||||||
|
private newIslandName: string;
|
||||||
|
|
||||||
constructor(private server: Server, private route: ActivatedRoute) {
|
constructor(private server: Server, private route: ActivatedRoute) {
|
||||||
}
|
}
|
||||||
|
|
@ -22,43 +24,43 @@ export class ServerComponent implements OnInit {
|
||||||
let index = this.route.snapshot.paramMap.get('index');
|
let index = this.route.snapshot.paramMap.get('index');
|
||||||
this.cell = this.server.serverGrid.servers[index];
|
this.cell = this.server.serverGrid.servers[index];
|
||||||
this.templateOptions = this.server.serverGrid.serverTemplates.map(i => i.name);
|
this.templateOptions = this.server.serverGrid.serverTemplates.map(i => i.name);
|
||||||
Object.values(this.server.islands).forEach((i: IslandDataModel) => this.islandOptions[i.name] = i.customDisplayName());
|
Object.values(this.server.islands.islandData).forEach((i: IslandDataModel) => {this.islandOptions[i.name] = i.customDisplayName()});
|
||||||
}
|
}
|
||||||
|
|
||||||
private changeIslandModel(index: number, name: string) {
|
private changeIslandModel(index: number, name: string) {
|
||||||
let oldIsland = this.cell.islandInstances[index];
|
let oldIsland = this.cell.islandInstances[index];
|
||||||
const newIslandData = this.server.islands[name];
|
let newIsland = IslandInstanceModel.fromIslandData(this.server.islands[name]);
|
||||||
const oldIslandData = this.server.islands[oldIsland.name];
|
newIsland.id = this.server.serverGrid.getNextId();
|
||||||
|
|
||||||
let newIsland = IslandInstanceModel.fromIslandData(newIslandData);
|
|
||||||
|
|
||||||
// keep X, Y and Rotation the same
|
// keep X, Y and Rotation the same
|
||||||
newIsland.worldX = oldIsland.worldX;
|
newIsland.worldX = oldIsland.worldX;
|
||||||
newIsland.worldY = oldIsland.worldY;
|
newIsland.worldY = oldIsland.worldY;
|
||||||
newIsland.rotation = oldIsland.rotation;
|
newIsland.rotation = oldIsland.rotation;
|
||||||
|
|
||||||
// Remove old Sublevels
|
this.removeSublevelsForIsland(oldIsland);
|
||||||
oldIslandData.sublevelNames.forEach(i => {
|
this.addSublevelsForIsland(newIsland);
|
||||||
|
this.cell.islandInstances[index] = newIsland;
|
||||||
|
this.updateExtraSublevels();
|
||||||
|
}
|
||||||
|
|
||||||
|
private removeSublevelsForIsland(island: IslandInstanceModel) {
|
||||||
|
const islandData = this.server.islands[island.name];
|
||||||
|
islandData.sublevelNames.forEach(i => {
|
||||||
const j = this.cell.sublevels.findIndex(sublevel => sublevel.name === i);
|
const j = this.cell.sublevels.findIndex(sublevel => sublevel.name === i);
|
||||||
if (j > -1) {
|
if (j > -1) {
|
||||||
this.cell.sublevels.splice(j, 1);
|
this.cell.sublevels.splice(j, 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Get new unique ID
|
private addSublevelsForIsland(island: IslandInstanceModel) {
|
||||||
newIsland.id = this.server.serverGrid.getNextId();
|
const islandData = this.server.islands[island.name];
|
||||||
|
islandData.sublevelNames.forEach(i => {
|
||||||
// Add new Sublevels
|
|
||||||
newIslandData.sublevelNames.forEach(i => {
|
|
||||||
let newSublevel = new ServerSublevelModel();
|
let newSublevel = new ServerSublevelModel();
|
||||||
newSublevel.name = i;
|
newSublevel.name = i;
|
||||||
newSublevel.setupFromIsland(newIsland, newIslandData, this.cell, this.server.serverGrid);
|
newSublevel.setupFromIsland(island, islandData, this.cell, this.server.serverGrid);
|
||||||
this.cell.sublevels.push(newSublevel);
|
this.cell.sublevels.push(newSublevel);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.cell.islandInstances[index] = newIsland;
|
|
||||||
|
|
||||||
this.updateExtraSublevels();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private updateExtraSublevels() {
|
private updateExtraSublevels() {
|
||||||
|
|
@ -75,4 +77,30 @@ export class ServerComponent implements OnInit {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addNewIsland() {
|
||||||
|
const newIslandData = this.server.islands[this.newIslandName];
|
||||||
|
let newIsland = IslandInstanceModel.fromIslandData(newIslandData);
|
||||||
|
newIsland.id = this.server.serverGrid.getNextId();
|
||||||
|
this.addSublevelsForIsland(newIsland);
|
||||||
|
this.cell.islandInstances.push(newIsland);
|
||||||
|
this.updateExtraSublevels();
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteIsland(index: number) {
|
||||||
|
let oldIsland = this.cell.islandInstances[index];
|
||||||
|
this.removeSublevelsForIsland(oldIsland);
|
||||||
|
this.cell.islandInstances.splice(index, 1);
|
||||||
|
this.updateExtraSublevels();
|
||||||
|
}
|
||||||
|
|
||||||
|
addNewDiscovery() {
|
||||||
|
let newDisco = new DiscoveryZoneModel();
|
||||||
|
newDisco.id = this.server.serverGrid.getNextId();
|
||||||
|
this.cell.discoZones.push(newDisco);
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteDiscovery(index: number) {
|
||||||
|
this.cell.discoZones.splice(index, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,16 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { ServerGridModel } from "./models/serverGrid.model";
|
import { ServerGridModel } from "./models/serverGrid.model";
|
||||||
import * as islandData from '../data/islands.json';
|
import { Islands } from "../data/models/islands.model";
|
||||||
import { IslandDataModel } from "../data/models/island-data.model";
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class Server {
|
export class Server {
|
||||||
private rawData: string = "";
|
private rawData: string = "";
|
||||||
private jsonData: object = {};
|
private jsonData: object = {};
|
||||||
public serverGrid: ServerGridModel = new ServerGridModel();
|
public serverGrid: ServerGridModel = new ServerGridModel();
|
||||||
public islands;
|
public islands: Islands;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.islands = (islandData as any).default;
|
this.islands = new Islands();
|
||||||
Object.keys(this.islands).forEach(i => {
|
|
||||||
this.islands[i] = new IslandDataModel().deserialize(this.islands[i])
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public load(raw) {
|
public load(raw) {
|
||||||
|
|
|
||||||
BIN
src/assets/mnt/a/Mnt_A_CH.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
src/assets/mnt/a/Mnt_A_CH_B.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
src/assets/mnt/a/Mnt_A_CL.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
src/assets/mnt/a/Mnt_A_ET.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
src/assets/mnt/a/Mnt_A_TR.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
src/assets/mnt/a/Mnt_A_WF.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
src/assets/mnt/a/Mnt_A_WR.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
src/assets/mnt/a/Mnt_A_WU.png
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
src/assets/mnt/a/Mnt_A_WU_B.png
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
src/assets/mnt/a/Mnt_A_WU_C.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
src/assets/mnt/a/Mnt_A_WU_D.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
src/assets/mnt/a/Mnt_A_WU_E.png
Normal file
|
After Width: | Height: | Size: 136 KiB |
1
src/assets/server-grid-editor
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit cffac3d0dff6391908bde5d2180efb6bbc76a101
|
||||||
30
src/data/explorer-notes.json
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"0": "None Set",
|
||||||
|
"1": "The Ladle of Life",
|
||||||
|
"2": "Gorgon's Perch",
|
||||||
|
"3": "The Fish's Mouth",
|
||||||
|
"4": "The Slender Gate",
|
||||||
|
"5": "Widowmaker's Claw",
|
||||||
|
"6": "Faceplant!",
|
||||||
|
"8": "Horseshoe of Eternity",
|
||||||
|
"9": "The Rainless Reef",
|
||||||
|
"11": "Hawthorn's Trap",
|
||||||
|
"12": "Giant's Crown",
|
||||||
|
"13": "Eagle's Eye",
|
||||||
|
"14": "Twin Tales",
|
||||||
|
"15": "Unknown Temple",
|
||||||
|
"16": "The Prancing Lady",
|
||||||
|
"17": "The Great and Angry Warrior",
|
||||||
|
"18": "Shattered Castle",
|
||||||
|
"19": "Eye of the Wolf",
|
||||||
|
"20": "The Demon of the Deep",
|
||||||
|
"21": "PowerStone 1",
|
||||||
|
"22": "PowerStone 2",
|
||||||
|
"23": "PowerStone 3",
|
||||||
|
"24": "PowerStone 4",
|
||||||
|
"25": "PowerStone 5",
|
||||||
|
"26": "PowerStone 6",
|
||||||
|
"27": "PowerStone 7",
|
||||||
|
"28": "PowerStone 8",
|
||||||
|
"29": "PowerStone 9"
|
||||||
|
}
|
||||||
|
|
@ -1,67 +1,4 @@
|
||||||
{
|
{
|
||||||
"Mnt_A_WF": {
|
|
||||||
"name": "Mnt_A_WF",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WF_img.png",
|
|
||||||
"landscapeMaterialOverride": 5,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_02",
|
|
||||||
"Mnt_A_Farthest_02",
|
|
||||||
"Mnt_A_Near_02",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_Temperate",
|
|
||||||
"MasterIBL_Temperate_Canopy",
|
|
||||||
"MasterIBL_Temperate_Canopy_B"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"8921.124023 30547.748047 4917.777832",
|
|
||||||
"7230.389160 25989.990234 6905.658203",
|
|
||||||
"15830.124023 13777.124023 11607.922852",
|
|
||||||
"21957.662109 13347.965820 7677.936523",
|
|
||||||
"22628.544922 22246.619141 5067.901367",
|
|
||||||
"23745.550781 30948.507813 2846.626221",
|
|
||||||
"-2828.437500 36882.769531 5152.625488",
|
|
||||||
"-9656.533203 33648.035156 5198.667480",
|
|
||||||
"-16213.519531 29116.818359 4618.129883",
|
|
||||||
"-19528.693359 18594.833984 3985.249756",
|
|
||||||
"-22234.255859 7789.173828 4094.790771",
|
|
||||||
"-25453.400391 -1344.499390 4357.291016",
|
|
||||||
"-24248.972656 -8108.288086 5597.098633",
|
|
||||||
"-19519.425781 -11615.983398 6905.234375",
|
|
||||||
"-14811.935547 -15212.053711 9463.232422",
|
|
||||||
"-12189.482422 -20796.500000 10144.284180",
|
|
||||||
"-6501.245117 -28727.552734 8514.227539",
|
|
||||||
"-3497.902344 -35701.308594 7281.631348",
|
|
||||||
"1774.628418 -34117.937500 6986.360840",
|
|
||||||
"-19502.822266 -30072.041016 2784.364746",
|
|
||||||
"6085.345215 -24932.974609 22098.029297",
|
|
||||||
"5755.739258 3202.950928 8290.310547",
|
|
||||||
"1151.750977 11569.606445 5687.476563",
|
|
||||||
"-5535.373047 20782.283203 5767.212402"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"3686.645020 9962.317383 9225.774414",
|
|
||||||
"-10708.725586 -12305.980469 13985.858398",
|
|
||||||
"-4720.640625 -36073.984375 9840.366211",
|
|
||||||
"-9154.465820 29647.667969 8465.973633",
|
|
||||||
"26829.423828 27281.474609 4649.251465"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Cay_A_TR": {
|
"Cay_A_TR": {
|
||||||
"name": "Cay_A_TR",
|
"name": "Cay_A_TR",
|
||||||
"x": 305000.0,
|
"x": 305000.0,
|
||||||
|
|
@ -127,7 +64,7 @@
|
||||||
"name": "Mnt_B_WF",
|
"name": "Mnt_B_WF",
|
||||||
"x": 306000.0,
|
"x": 306000.0,
|
||||||
"y": 306000.0,
|
"y": 306000.0,
|
||||||
"imagePath": "./IslandImages/Mnt_B_WF_img.png",
|
"imagePath": "./IslandImages/MNT_B_WF_img.png",
|
||||||
"landscapeMaterialOverride": 5,
|
"landscapeMaterialOverride": 5,
|
||||||
"sublevelNames": [
|
"sublevelNames": [
|
||||||
"Mnt_B",
|
"Mnt_B",
|
||||||
|
|
@ -1773,65 +1710,6 @@
|
||||||
"singleSpawnPointY": -48244.0,
|
"singleSpawnPointY": -48244.0,
|
||||||
"singleSpawnPointZ": 800.0
|
"singleSpawnPointZ": 800.0
|
||||||
},
|
},
|
||||||
"Mnt_A_TR": {
|
|
||||||
"name": "Mnt_A_TR",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_TR_img.png",
|
|
||||||
"landscapeMaterialOverride": 8,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_01",
|
|
||||||
"Mnt_A_Farthest_01",
|
|
||||||
"Mnt_A_Near_01",
|
|
||||||
"Mnt_A_Marine_Warm_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_Tropical",
|
|
||||||
"MasterIBL_Tropical_Canopy_Oak",
|
|
||||||
"MasterIBL_Tropical_Canopy_RE"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-39221.386719 -2427.513672 4113.858398",
|
|
||||||
"-36525.812500 7716.993652 4346.002441",
|
|
||||||
"-32196.333984 22036.154297 5042.043457",
|
|
||||||
"-20721.113281 19188.937500 4917.281738",
|
|
||||||
"-11334.916992 20511.111328 5002.015625",
|
|
||||||
"-453.383392 20052.134766 6783.128418",
|
|
||||||
"4050.586670 7264.685059 6988.692871",
|
|
||||||
"9271.979492 -3435.085938 7016.474609",
|
|
||||||
"16039.641602 11123.782227 6749.042480",
|
|
||||||
"22026.318359 28821.359375 5097.370605",
|
|
||||||
"-2880.620361 -37306.265625 10351.495117",
|
|
||||||
"-12037.959961 -33522.984375 7496.958008",
|
|
||||||
"-16083.880859 -25581.726563 6762.905762",
|
|
||||||
"-24370.158203 -22847.683594 5835.610840",
|
|
||||||
"-37383.593750 -18054.251953 4680.374023",
|
|
||||||
"-25427.869141 1104.235962 4883.775879",
|
|
||||||
"-14331.927734 7869.374512 11785.143555",
|
|
||||||
"-10475.956055 32285.230469 7317.989746",
|
|
||||||
"2209.369629 37153.433594 4755.005859",
|
|
||||||
"10320.745117 31029.701172 4569.124023"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-3266.309326 -13798.226563 16354.730469",
|
|
||||||
"-15192.075195 -31771.974609 8421.763672",
|
|
||||||
"-27027.603516 868.178040 4108.173340",
|
|
||||||
"-12488.033203 26870.892578 11347.929688",
|
|
||||||
"12383.118164 20897.154297 16061.109375"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Cay_K_TR_E": {
|
"Cay_K_TR_E": {
|
||||||
"name": "Cay_K_TR_E",
|
"name": "Cay_K_TR_E",
|
||||||
"x": 254000.0,
|
"x": 254000.0,
|
||||||
|
|
@ -4309,241 +4187,6 @@
|
||||||
"singleSpawnPointY": 25566.0,
|
"singleSpawnPointY": 25566.0,
|
||||||
"singleSpawnPointZ": 1750.0
|
"singleSpawnPointZ": 1750.0
|
||||||
},
|
},
|
||||||
"Mnt_A_ET": {
|
|
||||||
"name": "Mnt_A_ET",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_ET_img.png",
|
|
||||||
"landscapeMaterialOverride": 4,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_03",
|
|
||||||
"Mnt_A_Farthest_03",
|
|
||||||
"Mnt_A_Near_03",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_EasternTemperate",
|
|
||||||
"MasterIBL_EasternTemperate_Canopy_RedMaple"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"23300.851563 19066.119141 5886.382813",
|
|
||||||
"15616.995117 26994.703125 6035.875977",
|
|
||||||
"4328.860840 34889.828125 4599.498535",
|
|
||||||
"-3051.374512 33028.808594 5540.892578",
|
|
||||||
"-12426.577148 32739.037109 5723.621094",
|
|
||||||
"-17251.091797 28556.269531 3580.928223",
|
|
||||||
"-18415.175781 20434.296875 4213.995605",
|
|
||||||
"-20363.949219 10388.594727 4097.361816",
|
|
||||||
"-22712.511719 1823.869263 4356.798340",
|
|
||||||
"-30041.662109 -7305.967285 4167.445313",
|
|
||||||
"-32877.289063 -18283.722656 4239.025879",
|
|
||||||
"-20280.568359 -12611.360352 12148.539063",
|
|
||||||
"-12825.218750 -13884.480469 12373.512695",
|
|
||||||
"-13856.831055 -5348.271484 10833.792969",
|
|
||||||
"-15554.403320 1644.106201 9738.410156",
|
|
||||||
"-15276.648438 9918.864258 8757.969727",
|
|
||||||
"-32423.572266 22293.447266 4434.692871",
|
|
||||||
"-33245.796875 1627.237427 3484.802979",
|
|
||||||
"-31736.296875 -8026.277344 3813.484131",
|
|
||||||
"-34100.050781 -16449.515625 3974.248535"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-14442.728516 -27578.666016 15104.608398",
|
|
||||||
"-22133.792969 -8607.928711 13782.070313",
|
|
||||||
"-11161.720703 20822.830078 8124.202637",
|
|
||||||
"17319.625000 26353.490234 11589.660156",
|
|
||||||
"-1529.395752 -9384.915039 12556.161133"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 27992.0,
|
|
||||||
"singleSpawnPointY": 25147.0,
|
|
||||||
"singleSpawnPointZ": 1550.0
|
|
||||||
},
|
|
||||||
"Mnt_A_WR": {
|
|
||||||
"name": "Mnt_A_WR",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WR_img.png",
|
|
||||||
"landscapeMaterialOverride": 8,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_04",
|
|
||||||
"Mnt_A_Farthest_04",
|
|
||||||
"Mnt_A_Near_04",
|
|
||||||
"Mnt_A_Marine_Warm_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_Tropical",
|
|
||||||
"MasterIBL_Tropical_Canopy_Oak",
|
|
||||||
"MasterIBL_Tropical_Canopy_RE"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-16319.966797 19310.255859 5196.956543",
|
|
||||||
"-19781.716797 12174.086914 6540.497559",
|
|
||||||
"-25604.515625 730.787048 9503.510742",
|
|
||||||
"-35903.437500 6640.364746 10179.867188",
|
|
||||||
"-38640.113281 -1389.074707 6281.706543",
|
|
||||||
"-40731.691406 -8948.490234 9149.079102",
|
|
||||||
"-34410.695313 -19055.984375 5384.916016",
|
|
||||||
"-13043.833008 -1079.698486 12232.010742",
|
|
||||||
"57.451523 -4843.188965 13067.989258",
|
|
||||||
"7558.433594 -5478.813965 8258.023438",
|
|
||||||
"8802.402344 3227.071777 8584.834961",
|
|
||||||
"964.915283 10208.411133 7034.237305",
|
|
||||||
"-614.771912 21159.304688 5082.153809",
|
|
||||||
"-30.795099 33272.714844 5389.859863",
|
|
||||||
"-7718.686035 32698.550781 4900.445801",
|
|
||||||
"-11238.574219 26925.666016 4586.316406",
|
|
||||||
"-19416.068359 25745.462891 4055.743408",
|
|
||||||
"1694.893555 7357.131836 15986.680664",
|
|
||||||
"-1565.773682 -31170.025391 10273.754883",
|
|
||||||
"-15868.557617 -31048.855469 4615.850098"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"20706.734375 25303.759766 6627.017090",
|
|
||||||
"-5884.183105 20850.359375 9037.580078",
|
|
||||||
"-16820.082031 -12121.963867 17184.175781",
|
|
||||||
"8048.974609 3369.842285 7099.167969",
|
|
||||||
"-2541.370361 -29156.621094 11817.947266"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Mnt_A_WU": {
|
|
||||||
"name": "Mnt_A_WU",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WU_img.png",
|
|
||||||
"landscapeMaterialOverride": 9,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_06",
|
|
||||||
"Mnt_A_Farthest_06",
|
|
||||||
"Mnt_A_Near_06",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_WesternTundra",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-18042.894531 -29979.585938 3075.684814",
|
|
||||||
"-11214.928711 -29678.425781 6187.490723",
|
|
||||||
"-4681.496094 -33013.539063 8289.916016",
|
|
||||||
"2222.194824 -33966.558594 6984.114258",
|
|
||||||
"2548.885254 -20686.343750 18359.154297",
|
|
||||||
"9073.424805 -6774.549316 7991.787109",
|
|
||||||
"5975.436523 1440.155029 4623.303223",
|
|
||||||
"4609.000000 5029.975586 4257.562012",
|
|
||||||
"1584.336792 12084.308594 5932.004395",
|
|
||||||
"-4704.628906 19997.816406 4756.916016",
|
|
||||||
"-7327.812012 31067.732422 5721.006348",
|
|
||||||
"-13953.450195 33286.617188 4039.494873",
|
|
||||||
"-17655.982422 39035.269531 3244.038086",
|
|
||||||
"-20342.855469 21448.156250 3037.118164",
|
|
||||||
"-19121.525391 18318.718750 3862.701172",
|
|
||||||
"-21522.505859 9254.354492 4223.569824",
|
|
||||||
"-25618.996094 -960.561340 4143.033203",
|
|
||||||
"-37046.531250 3711.564941 2729.034424",
|
|
||||||
"-33623.039063 29229.640625 11026.258789",
|
|
||||||
"-32581.525391 -10203.798828 14291.716797"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-10671.178711 -6897.952148 16074.672852",
|
|
||||||
"-10086.010742 28760.408203 10429.531250",
|
|
||||||
"22435.064453 25148.003906 5556.701660",
|
|
||||||
"7433.569336 -1776.115601 6984.225586",
|
|
||||||
"-6267.743164 -31590.962891 10015.768555"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Mnt_A_CL": {
|
|
||||||
"name": "Mnt_A_CL",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_CL_img.png",
|
|
||||||
"landscapeMaterialOverride": 3,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_10",
|
|
||||||
"Mnt_A_Farthest_10",
|
|
||||||
"Mnt_A_Near_10",
|
|
||||||
"Mnt_A_Marine_Warm_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_LowDesert",
|
|
||||||
"MasterIBL_LowDesert_Canopy_DatePalm"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-6775.080078 33581.414063 5339.703613",
|
|
||||||
"-3901.758789 26557.550781 5036.619629",
|
|
||||||
"-1034.917114 27727.207031 5472.959473",
|
|
||||||
"-1069.415405 18667.478516 5209.427246",
|
|
||||||
"-6988.755859 3783.157471 16516.882813",
|
|
||||||
"-24003.324219 -1625.404785 6612.399902",
|
|
||||||
"-23734.455078 -9008.786133 5206.272949",
|
|
||||||
"-21897.666016 -14717.655273 7264.745117",
|
|
||||||
"-16229.936523 -33361.425781 3882.633301",
|
|
||||||
"-5932.629395 -29586.519531 6184.830078",
|
|
||||||
"2185.764404 -22713.724609 8536.102539",
|
|
||||||
"8451.831055 -9422.732422 6245.456055",
|
|
||||||
"4935.706055 4293.772461 5396.137695",
|
|
||||||
"8808.493164 12974.325195 6313.133789",
|
|
||||||
"8405.929688 17747.066406 13092.387695",
|
|
||||||
"-1716.658203 20650.845703 5096.760742",
|
|
||||||
"-36420.730469 27674.109375 6618.101074",
|
|
||||||
"-22928.410156 32069.351563 4629.217285",
|
|
||||||
"-17762.628906 21170.199219 4249.635254",
|
|
||||||
"13734.286133 12914.721680 6900.388184",
|
|
||||||
"24451.494141 27750.486328 4196.981934"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-14474.885742 -28859.289063 8563.893555",
|
|
||||||
"-23080.291016 -10062.727539 9972.525391",
|
|
||||||
"-8437.710938 20721.583984 6368.823730",
|
|
||||||
"21296.687500 28393.369141 6572.314941",
|
|
||||||
"-4203.813477 -22654.722656 24002.294922"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 26732.0,
|
|
||||||
"singleSpawnPointY": 27966.0,
|
|
||||||
"singleSpawnPointZ": 1500.0
|
|
||||||
},
|
|
||||||
"Mnt_B_ET": {
|
"Mnt_B_ET": {
|
||||||
"name": "Mnt_B_ET",
|
"name": "Mnt_B_ET",
|
||||||
"x": 306000.0,
|
"x": 306000.0,
|
||||||
|
|
@ -9975,69 +9618,6 @@
|
||||||
"singleSpawnPointY": -8476.0,
|
"singleSpawnPointY": -8476.0,
|
||||||
"singleSpawnPointZ": 1200.0
|
"singleSpawnPointZ": 1200.0
|
||||||
},
|
},
|
||||||
"Mnt_A_WU_E": {
|
|
||||||
"name": "Mnt_A_WU_E",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WU_E_img.jpg",
|
|
||||||
"landscapeMaterialOverride": 9,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_06_E",
|
|
||||||
"Mnt_A_Farthest_06_E",
|
|
||||||
"Mnt_A_Near_06_E",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_WesternTundra",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"23304.650391 28357.632813 7346.293945",
|
|
||||||
"15110.938477 29136.640625 8008.031250",
|
|
||||||
"6607.625000 26615.041016 9184.242188",
|
|
||||||
"-2768.143066 23299.013672 9114.582031",
|
|
||||||
"-8902.627930 28147.964844 8328.683594",
|
|
||||||
"-12841.750000 36599.148438 6526.341797",
|
|
||||||
"-22669.263672 33300.867188 9685.276367",
|
|
||||||
"-20255.564453 18168.187500 4107.428711",
|
|
||||||
"-23983.101563 10709.409180 3648.567383",
|
|
||||||
"-25220.861328 2398.911133 3460.032471",
|
|
||||||
"-28877.457031 -4479.493652 2926.621826",
|
|
||||||
"-31086.761719 -12862.573242 14216.467773",
|
|
||||||
"-14207.977539 -18643.226563 12399.709961",
|
|
||||||
"-8331.723633 -14284.345703 11795.544922",
|
|
||||||
"-428.522675 -35068.523438 11686.916016",
|
|
||||||
"26425.808594 -13047.953125 5241.231445",
|
|
||||||
"34385.734375 5239.154785 4710.686523",
|
|
||||||
"25333.580078 16428.525391 5913.722168",
|
|
||||||
"22267.259766 23878.593750 5478.328613",
|
|
||||||
"21888.523438 31238.580078 4791.255859",
|
|
||||||
"11120.199219 20744.664063 11486.977539",
|
|
||||||
"1315.605713 12455.618164 5493.397949",
|
|
||||||
"3368.548584 7416.109375 4310.032227",
|
|
||||||
"5884.703613 712.244507 4426.167480"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-8427.049805 -7669.066406 13551.295898",
|
|
||||||
"-6309.895996 -35013.363281 10702.545898",
|
|
||||||
"29640.363281 -13378.908203 4185.428711",
|
|
||||||
"35348.511719 5021.483887 5416.140137",
|
|
||||||
"21901.765625 25632.488281 9391.201172"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": -1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Mnt_F_ET_E": {
|
"Mnt_F_ET_E": {
|
||||||
"name": "Mnt_F_ET_E",
|
"name": "Mnt_F_ET_E",
|
||||||
"x": 101600.0,
|
"x": 101600.0,
|
||||||
|
|
@ -10346,63 +9926,6 @@
|
||||||
"singleSpawnPointY": -74676.0,
|
"singleSpawnPointY": -74676.0,
|
||||||
"singleSpawnPointZ": 800.0
|
"singleSpawnPointZ": 800.0
|
||||||
},
|
},
|
||||||
"Mnt_A_CH": {
|
|
||||||
"name": "Mnt_A_CH",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_CH_img.jpg",
|
|
||||||
"landscapeMaterialOverride": 2,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_09",
|
|
||||||
"Mnt_A_Farthest_09",
|
|
||||||
"Mnt_A_Near_09",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_HighDesert",
|
|
||||||
"MasterIBL_HighDesert_Canopy"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-35740.875000 -18374.009766 5510.986328",
|
|
||||||
"-26410.099609 -11890.727539 6531.834961",
|
|
||||||
"-20267.736328 -15241.211914 8124.222168",
|
|
||||||
"-6991.263672 -14632.373047 19557.578125",
|
|
||||||
"-8319.404297 -986.505005 16732.705078",
|
|
||||||
"3332.029053 2170.399902 10244.501953",
|
|
||||||
"8830.062500 -6753.045898 6961.143555",
|
|
||||||
"11401.590820 4022.376953 9775.975586",
|
|
||||||
"15010.574219 12336.619141 9868.496094",
|
|
||||||
"18275.900391 22467.449219 8554.437500",
|
|
||||||
"25304.644531 28179.339844 6661.007324",
|
|
||||||
"22029.359375 35649.312500 7216.578125",
|
|
||||||
"13324.855469 33483.398438 4842.224609",
|
|
||||||
"5143.525391 29133.242188 6373.472656",
|
|
||||||
"-2341.235596 27369.232422 5644.958496",
|
|
||||||
"-9594.993164 24409.031250 4721.160645",
|
|
||||||
"-18869.082031 18516.554688 4615.711426",
|
|
||||||
"-22776.205078 6753.891602 4367.715820",
|
|
||||||
"-23685.408203 -4728.526855 5238.054199"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"13604.176758 16290.165039 10947.601563",
|
|
||||||
"-17216.478516 18744.845703 7128.184082",
|
|
||||||
"-6878.863770 -10676.119141 21317.347656",
|
|
||||||
"-13862.058594 -30055.144531 6369.392090",
|
|
||||||
"-22821.218750 -12690.331055 10530.900391"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 27225.0,
|
|
||||||
"singleSpawnPointY": 27937.0,
|
|
||||||
"singleSpawnPointZ": 1400.0
|
|
||||||
},
|
|
||||||
"Mnt_R_CL_PVE": {
|
"Mnt_R_CL_PVE": {
|
||||||
"name": "Mnt_R_CL_PVE",
|
"name": "Mnt_R_CL_PVE",
|
||||||
"x": 306000.0,
|
"x": 306000.0,
|
||||||
|
|
@ -12472,6 +11995,9 @@
|
||||||
"Mnt_H_Marine_Cold_Near",
|
"Mnt_H_Marine_Cold_Near",
|
||||||
"Mnt_H_PO"
|
"Mnt_H_PO"
|
||||||
],
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
"Mnt_H_Near_08B-BarricadeofIce"
|
||||||
|
],
|
||||||
"spawnerOverrides": {},
|
"spawnerOverrides": {},
|
||||||
"extraSublevels": [
|
"extraSublevels": [
|
||||||
"MasterIBL_CaveEntrance_Polar",
|
"MasterIBL_CaveEntrance_Polar",
|
||||||
|
|
@ -12702,61 +12228,6 @@
|
||||||
"singleSpawnPointY": 56574.0,
|
"singleSpawnPointY": 56574.0,
|
||||||
"singleSpawnPointZ": 1800.0
|
"singleSpawnPointZ": 1800.0
|
||||||
},
|
},
|
||||||
"Mnt_A_CH_B": {
|
|
||||||
"name": "Mnt_A_CH_B",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_CH_B_img.jpg",
|
|
||||||
"landscapeMaterialOverride": 2,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_09B",
|
|
||||||
"Mnt_A_Farthest_09B",
|
|
||||||
"Mnt_A_Near_09B",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_HighDesert",
|
|
||||||
"MasterIBL_HighDesert_Canopy"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-32108.099609 -12808.000000 5895.708008",
|
|
||||||
"-24836.136719 -11438.191406 6578.490234",
|
|
||||||
"-16014.962891 -13316.976563 11002.657227",
|
|
||||||
"-14065.828125 -26226.058594 7175.365234",
|
|
||||||
"-4803.361816 -27816.361328 7803.044922",
|
|
||||||
"-1564.247437 -21659.277344 10546.609375",
|
|
||||||
"5731.886719 -14321.405273 10060.417969",
|
|
||||||
"4640.200684 -1670.797974 7279.479980",
|
|
||||||
"3004.115967 7380.430176 5711.780762",
|
|
||||||
"1654.062256 14502.811523 5189.428711",
|
|
||||||
"-3939.256592 22920.544922 5187.621582",
|
|
||||||
"-10331.433594 26403.435547 5782.427246",
|
|
||||||
"-19307.488281 27800.859375 5347.322754",
|
|
||||||
"-21057.939453 18143.000000 3544.948730",
|
|
||||||
"-21476.578125 6260.457031 5651.628418",
|
|
||||||
"-25290.320313 -4412.205078 5554.392090",
|
|
||||||
"-9781.649414 32662.320313 8686.000977"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-28295.781250 -7800.558105 10004.723633",
|
|
||||||
"-15288.873047 21442.154297 7521.703125",
|
|
||||||
"2837.685059 11135.558594 8887.337891",
|
|
||||||
"-11564.146484 -7089.494141 22536.314453",
|
|
||||||
"-5637.882813 -30638.125000 10387.915039"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 26732.0,
|
|
||||||
"singleSpawnPointY": 27966.0,
|
|
||||||
"singleSpawnPointZ": 1500.0
|
|
||||||
},
|
|
||||||
"Mnt_C_CH_B": {
|
"Mnt_C_CH_B": {
|
||||||
"name": "Mnt_C_CH_B",
|
"name": "Mnt_C_CH_B",
|
||||||
"x": 101600.0,
|
"x": 101600.0,
|
||||||
|
|
@ -13473,126 +12944,6 @@
|
||||||
"singleSpawnPointY": -81047.0,
|
"singleSpawnPointY": -81047.0,
|
||||||
"singleSpawnPointZ": 1650.0
|
"singleSpawnPointZ": 1650.0
|
||||||
},
|
},
|
||||||
"Mnt_A_WU_B": {
|
|
||||||
"name": "Mnt_A_WU_B",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WU_B_img.jpg",
|
|
||||||
"landscapeMaterialOverride": 9,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_06B",
|
|
||||||
"Mnt_A_Farthest_06B",
|
|
||||||
"Mnt_A_Near_06B",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_WesternTundra",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-35388.078125 -23165.611328 6390.755859",
|
|
||||||
"-35450.695313 -10049.711914 5251.254883",
|
|
||||||
"-24899.007813 550.957336 4795.335938",
|
|
||||||
"-23991.230469 15574.333984 3425.397461",
|
|
||||||
"-19343.474609 27255.800781 3856.504883",
|
|
||||||
"-17586.117188 37536.781250 4569.224609",
|
|
||||||
"-7789.189941 35650.808594 5478.009277",
|
|
||||||
"-10763.719727 28955.986328 5299.406738",
|
|
||||||
"-10056.610352 20469.708984 6286.781250",
|
|
||||||
"-2489.498535 18165.636719 5280.645508",
|
|
||||||
"523.259644 9338.525391 5067.944824",
|
|
||||||
"6053.696289 2926.221436 5350.270020",
|
|
||||||
"13118.771484 6138.366211 7769.156250",
|
|
||||||
"11357.637695 13101.028320 10808.270508",
|
|
||||||
"10094.054688 22086.470703 12265.933594",
|
|
||||||
"3121.832275 27809.265625 13000.363281",
|
|
||||||
"-3897.670654 -210.781204 13779.238281",
|
|
||||||
"-6369.445313 -11102.523438 12841.676758",
|
|
||||||
"-7269.771484 -20814.730469 11369.663086",
|
|
||||||
"2908.048340 -25487.294922 11604.296875",
|
|
||||||
"6657.367676 -17592.033203 12439.599609"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-14898.756836 -18859.867188 13575.396484",
|
|
||||||
"7948.134277 2770.275146 9633.106445",
|
|
||||||
"11089.072266 22548.535156 10310.013672",
|
|
||||||
"-13794.674805 24534.058594 8345.067383",
|
|
||||||
"-6794.797363 -2446.077881 15465.110352"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Mnt_A_WU_C": {
|
|
||||||
"name": "Mnt_A_WU_C",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WU_C_img.jpg",
|
|
||||||
"landscapeMaterialOverride": 9,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Far_06B",
|
|
||||||
"Mnt_A_Farthest_06B",
|
|
||||||
"Mnt_A_Near_06B",
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_WesternTundra",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-35388.078125 -23165.611328 6390.755859",
|
|
||||||
"-35450.695313 -10049.711914 5251.254883",
|
|
||||||
"-24899.007813 550.957336 4795.335938",
|
|
||||||
"-23991.230469 15574.333984 3425.397461",
|
|
||||||
"-19343.474609 27255.800781 3856.504883",
|
|
||||||
"-17586.117188 37536.781250 4569.224609",
|
|
||||||
"-7789.189941 35650.808594 5478.009277",
|
|
||||||
"-10763.719727 28955.986328 5299.406738",
|
|
||||||
"-10056.610352 20469.708984 6286.781250",
|
|
||||||
"-2489.498535 18165.636719 5280.645508",
|
|
||||||
"523.259644 9338.525391 5067.944824",
|
|
||||||
"6053.696289 2926.221436 5350.270020",
|
|
||||||
"13118.771484 6138.366211 7769.156250",
|
|
||||||
"11357.637695 13101.028320 10808.270508",
|
|
||||||
"10094.054688 22086.470703 12265.933594",
|
|
||||||
"3121.832275 27809.265625 13000.363281",
|
|
||||||
"-3897.670654 -210.781204 13779.238281",
|
|
||||||
"-6369.445313 -11102.523438 12841.676758",
|
|
||||||
"-7269.771484 -20814.730469 11369.663086",
|
|
||||||
"2908.048340 -25487.294922 11604.296875",
|
|
||||||
"6657.367676 -17592.033203 12439.599609"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-14898.756836 -18859.867188 13575.396484",
|
|
||||||
"7948.134277 2770.275146 9633.106445",
|
|
||||||
"11089.072266 22548.535156 10310.013672",
|
|
||||||
"-13794.674805 24534.058594 8345.067383",
|
|
||||||
"-6794.797363 -2446.077881 15465.110352"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Mnt_J_WU": {
|
"Mnt_J_WU": {
|
||||||
"name": "Mnt_J_WU",
|
"name": "Mnt_J_WU",
|
||||||
"x": 204000.0,
|
"x": 204000.0,
|
||||||
|
|
@ -19908,64 +19259,6 @@
|
||||||
"singleSpawnPointY": 0.0,
|
"singleSpawnPointY": 0.0,
|
||||||
"singleSpawnPointZ": 0.0
|
"singleSpawnPointZ": 0.0
|
||||||
},
|
},
|
||||||
"Mnt_A_WU_D": {
|
|
||||||
"name": "Mnt_A_WU_D",
|
|
||||||
"x": 152000.0,
|
|
||||||
"y": 152000.0,
|
|
||||||
"imagePath": "./IslandImages/Mnt_A_WU_D_img.jpg",
|
|
||||||
"landscapeMaterialOverride": 9,
|
|
||||||
"sublevelNames": [
|
|
||||||
"Mnt_A_Marine_Cold_Near",
|
|
||||||
"Mnt_A_TU",
|
|
||||||
"Mnt_A_Near_06D",
|
|
||||||
"Mnt_A_Farthest_06D",
|
|
||||||
"Mnt_A_Far_06D"
|
|
||||||
],
|
|
||||||
"spawnerOverrides": {},
|
|
||||||
"extraSublevels": [
|
|
||||||
"MasterIBL_WesternTundra",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
|
||||||
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
|
||||||
],
|
|
||||||
"treasureMapSpawnPoints": [
|
|
||||||
"-38698.117188 -7910.122559 6970.310547",
|
|
||||||
"-36162.929688 15789.360352 8173.864746",
|
|
||||||
"-35365.847656 25305.294922 9875.699219",
|
|
||||||
"-15362.139648 33499.007813 5020.332031",
|
|
||||||
"-13457.119141 26561.998047 5125.049805",
|
|
||||||
"-8361.398438 12461.761719 9154.880859",
|
|
||||||
"-7721.176270 553.670898 18257.652344",
|
|
||||||
"-5502.931152 -17865.792969 21040.931641",
|
|
||||||
"-17256.367188 -21958.599609 8194.637695",
|
|
||||||
"-6019.041504 -37349.304688 13991.281250",
|
|
||||||
"-5090.549316 -48616.093750 14836.836914",
|
|
||||||
"5783.769531 -1886.086304 7190.939453",
|
|
||||||
"5099.058105 8737.717773 8166.959473",
|
|
||||||
"12067.832031 4474.467285 12688.034180",
|
|
||||||
"12160.580078 20791.974609 10282.052734",
|
|
||||||
"7164.411621 23532.482422 9806.642578",
|
|
||||||
"-1489.868652 27648.523438 5197.384766",
|
|
||||||
"-7317.666016 27735.687500 6491.034180",
|
|
||||||
"-4251.575684 36425.417969 6953.914063"
|
|
||||||
],
|
|
||||||
"wildPirateCampSpawnPoints": [
|
|
||||||
"-8939.093750 -14080.763672 13484.836914",
|
|
||||||
"3931.334473 7910.164551 7602.589355",
|
|
||||||
"-7784.326660 20821.330078 8117.607422",
|
|
||||||
"-12162.979492 35787.468750 7057.665527",
|
|
||||||
"-38065.082031 29156.400391 9562.736328"
|
|
||||||
],
|
|
||||||
"minTreasureQuality": -1.0,
|
|
||||||
"maxTreasureQuality": -1.0,
|
|
||||||
"useNpcVolumesForTreasures": false,
|
|
||||||
"useLevelBoundsForTreasures": true,
|
|
||||||
"prioritizeVolumesForTreasures": false,
|
|
||||||
"islandTreasureBottleSupplyCrateOverrides": "",
|
|
||||||
"islandPoints": 1,
|
|
||||||
"singleSpawnPointX": 28008.0,
|
|
||||||
"singleSpawnPointY": 31219.0,
|
|
||||||
"singleSpawnPointZ": 1000.0
|
|
||||||
},
|
|
||||||
"Cay_C_EE_B": {
|
"Cay_C_EE_B": {
|
||||||
"name": "Cay_C_EE_B",
|
"name": "Cay_C_EE_B",
|
||||||
"x": 532000.0,
|
"x": 532000.0,
|
||||||
|
|
|
||||||
854
src/data/mnt/a/islands.json
Normal file
|
|
@ -0,0 +1,854 @@
|
||||||
|
{
|
||||||
|
"Mnt_A_CH": {
|
||||||
|
"name": "Mnt_A_CH",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_CH.png",
|
||||||
|
"landscapeMaterialOverride": 2,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_09",
|
||||||
|
"Mnt_A_Farthest_09",
|
||||||
|
"Mnt_A_Near_09",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_09-FishesMouth",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 17500.0,
|
||||||
|
"sizeY": 10000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_HighDesert",
|
||||||
|
"MasterIBL_HighDesert_Canopy"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-35740.875000 -18374.009766 5510.986328",
|
||||||
|
"-26410.099609 -11890.727539 6531.834961",
|
||||||
|
"-20267.736328 -15241.211914 8124.222168",
|
||||||
|
"-6991.263672 -14632.373047 19557.578125",
|
||||||
|
"-8319.404297 -986.505005 16732.705078",
|
||||||
|
"3332.029053 2170.399902 10244.501953",
|
||||||
|
"8830.062500 -6753.045898 6961.143555",
|
||||||
|
"11401.590820 4022.376953 9775.975586",
|
||||||
|
"15010.574219 12336.619141 9868.496094",
|
||||||
|
"18275.900391 22467.449219 8554.437500",
|
||||||
|
"25304.644531 28179.339844 6661.007324",
|
||||||
|
"22029.359375 35649.312500 7216.578125",
|
||||||
|
"13324.855469 33483.398438 4842.224609",
|
||||||
|
"5143.525391 29133.242188 6373.472656",
|
||||||
|
"-2341.235596 27369.232422 5644.958496",
|
||||||
|
"-9594.993164 24409.031250 4721.160645",
|
||||||
|
"-18869.082031 18516.554688 4615.711426",
|
||||||
|
"-22776.205078 6753.891602 4367.715820",
|
||||||
|
"-23685.408203 -4728.526855 5238.054199"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"13604.176758 16290.165039 10947.601563",
|
||||||
|
"-17216.478516 18744.845703 7128.184082",
|
||||||
|
"-6878.863770 -10676.119141 21317.347656",
|
||||||
|
"-13862.058594 -30055.144531 6369.392090",
|
||||||
|
"-22821.218750 -12690.331055 10530.900391"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 27225.0,
|
||||||
|
"singleSpawnPointY": 27937.0,
|
||||||
|
"singleSpawnPointZ": 1400.0
|
||||||
|
},
|
||||||
|
"Mnt_A_CH_B": {
|
||||||
|
"name": "Mnt_A_CH_B",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_CH_B.png",
|
||||||
|
"landscapeMaterialOverride": 2,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_09B",
|
||||||
|
"Mnt_A_Farthest_09B",
|
||||||
|
"Mnt_A_Near_09B",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_09B-ABeautifulVista",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 15000.0,
|
||||||
|
"sizeY": 12500.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_HighDesert",
|
||||||
|
"MasterIBL_HighDesert_Canopy"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-32108.099609 -12808.000000 5895.708008",
|
||||||
|
"-24836.136719 -11438.191406 6578.490234",
|
||||||
|
"-16014.962891 -13316.976563 11002.657227",
|
||||||
|
"-14065.828125 -26226.058594 7175.365234",
|
||||||
|
"-4803.361816 -27816.361328 7803.044922",
|
||||||
|
"-1564.247437 -21659.277344 10546.609375",
|
||||||
|
"5731.886719 -14321.405273 10060.417969",
|
||||||
|
"4640.200684 -1670.797974 7279.479980",
|
||||||
|
"3004.115967 7380.430176 5711.780762",
|
||||||
|
"1654.062256 14502.811523 5189.428711",
|
||||||
|
"-3939.256592 22920.544922 5187.621582",
|
||||||
|
"-10331.433594 26403.435547 5782.427246",
|
||||||
|
"-19307.488281 27800.859375 5347.322754",
|
||||||
|
"-21057.939453 18143.000000 3544.948730",
|
||||||
|
"-21476.578125 6260.457031 5651.628418",
|
||||||
|
"-25290.320313 -4412.205078 5554.392090",
|
||||||
|
"-9781.649414 32662.320313 8686.000977"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-28295.781250 -7800.558105 10004.723633",
|
||||||
|
"-15288.873047 21442.154297 7521.703125",
|
||||||
|
"2837.685059 11135.558594 8887.337891",
|
||||||
|
"-11564.146484 -7089.494141 22536.314453",
|
||||||
|
"-5637.882813 -30638.125000 10387.915039"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 26732.0,
|
||||||
|
"singleSpawnPointY": 27966.0,
|
||||||
|
"singleSpawnPointZ": 1500.0
|
||||||
|
},
|
||||||
|
"Mnt_A_CL": {
|
||||||
|
"name": "Mnt_A_CL",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_CL.png",
|
||||||
|
"landscapeMaterialOverride": 3,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_10",
|
||||||
|
"Mnt_A_Farthest_10",
|
||||||
|
"Mnt_A_Near_10",
|
||||||
|
"Mnt_A_Marine_Warm_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_10-CrumblingRuinsoftheDawn",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 80000.0,
|
||||||
|
"sizeY": 67500.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_10-RuinsoftheDawn",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 75000.0,
|
||||||
|
"sizeY": 57500.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_LowDesert",
|
||||||
|
"MasterIBL_LowDesert_Canopy_DatePalm"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-6775.080078 33581.414063 5339.703613",
|
||||||
|
"-3901.758789 26557.550781 5036.619629",
|
||||||
|
"-1034.917114 27727.207031 5472.959473",
|
||||||
|
"-1069.415405 18667.478516 5209.427246",
|
||||||
|
"-6988.755859 3783.157471 16516.882813",
|
||||||
|
"-24003.324219 -1625.404785 6612.399902",
|
||||||
|
"-23734.455078 -9008.786133 5206.272949",
|
||||||
|
"-21897.666016 -14717.655273 7264.745117",
|
||||||
|
"-16229.936523 -33361.425781 3882.633301",
|
||||||
|
"-5932.629395 -29586.519531 6184.830078",
|
||||||
|
"2185.764404 -22713.724609 8536.102539",
|
||||||
|
"8451.831055 -9422.732422 6245.456055",
|
||||||
|
"4935.706055 4293.772461 5396.137695",
|
||||||
|
"8808.493164 12974.325195 6313.133789",
|
||||||
|
"8405.929688 17747.066406 13092.387695",
|
||||||
|
"-1716.658203 20650.845703 5096.760742",
|
||||||
|
"-36420.730469 27674.109375 6618.101074",
|
||||||
|
"-22928.410156 32069.351563 4629.217285",
|
||||||
|
"-17762.628906 21170.199219 4249.635254",
|
||||||
|
"13734.286133 12914.721680 6900.388184",
|
||||||
|
"24451.494141 27750.486328 4196.981934"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-14474.885742 -28859.289063 8563.893555",
|
||||||
|
"-23080.291016 -10062.727539 9972.525391",
|
||||||
|
"-8437.710938 20721.583984 6368.823730",
|
||||||
|
"21296.687500 28393.369141 6572.314941",
|
||||||
|
"-4203.813477 -22654.722656 24002.294922"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 26732.0,
|
||||||
|
"singleSpawnPointY": 27966.0,
|
||||||
|
"singleSpawnPointZ": 1500.0
|
||||||
|
},
|
||||||
|
"Mnt_A_ET": {
|
||||||
|
"name": "Mnt_A_ET",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_ET.png",
|
||||||
|
"landscapeMaterialOverride": 4,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_03",
|
||||||
|
"Mnt_A_Farthest_03",
|
||||||
|
"Mnt_A_Near_03",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_03-RazerbackRidge",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 42500.0,
|
||||||
|
"sizeY": 45000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_EasternTemperate",
|
||||||
|
"MasterIBL_EasternTemperate_Canopy_RedMaple"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"23300.851563 19066.119141 5886.382813",
|
||||||
|
"15616.995117 26994.703125 6035.875977",
|
||||||
|
"4328.860840 34889.828125 4599.498535",
|
||||||
|
"-3051.374512 33028.808594 5540.892578",
|
||||||
|
"-12426.577148 32739.037109 5723.621094",
|
||||||
|
"-17251.091797 28556.269531 3580.928223",
|
||||||
|
"-18415.175781 20434.296875 4213.995605",
|
||||||
|
"-20363.949219 10388.594727 4097.361816",
|
||||||
|
"-22712.511719 1823.869263 4356.798340",
|
||||||
|
"-30041.662109 -7305.967285 4167.445313",
|
||||||
|
"-32877.289063 -18283.722656 4239.025879",
|
||||||
|
"-20280.568359 -12611.360352 12148.539063",
|
||||||
|
"-12825.218750 -13884.480469 12373.512695",
|
||||||
|
"-13856.831055 -5348.271484 10833.792969",
|
||||||
|
"-15554.403320 1644.106201 9738.410156",
|
||||||
|
"-15276.648438 9918.864258 8757.969727",
|
||||||
|
"-32423.572266 22293.447266 4434.692871",
|
||||||
|
"-33245.796875 1627.237427 3484.802979",
|
||||||
|
"-31736.296875 -8026.277344 3813.484131",
|
||||||
|
"-34100.050781 -16449.515625 3974.248535"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-14442.728516 -27578.666016 15104.608398",
|
||||||
|
"-22133.792969 -8607.928711 13782.070313",
|
||||||
|
"-11161.720703 20822.830078 8124.202637",
|
||||||
|
"17319.625000 26353.490234 11589.660156",
|
||||||
|
"-1529.395752 -9384.915039 12556.161133"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 27992.0,
|
||||||
|
"singleSpawnPointY": 25147.0,
|
||||||
|
"singleSpawnPointZ": 1550.0
|
||||||
|
},
|
||||||
|
"Mnt_A_TR": {
|
||||||
|
"name": "Mnt_A_TR",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_TR.png",
|
||||||
|
"landscapeMaterialOverride": 8,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_01",
|
||||||
|
"Mnt_A_Farthest_01",
|
||||||
|
"Mnt_A_Near_01",
|
||||||
|
"Mnt_A_Marine_Warm_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_01-TheStoneShark",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 97500.0,
|
||||||
|
"sizeY": 65000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_Tropical",
|
||||||
|
"MasterIBL_Tropical_Canopy_Oak",
|
||||||
|
"MasterIBL_Tropical_Canopy_RE"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-39221.386719 -2427.513672 4113.858398",
|
||||||
|
"-36525.812500 7716.993652 4346.002441",
|
||||||
|
"-32196.333984 22036.154297 5042.043457",
|
||||||
|
"-20721.113281 19188.937500 4917.281738",
|
||||||
|
"-11334.916992 20511.111328 5002.015625",
|
||||||
|
"-453.383392 20052.134766 6783.128418",
|
||||||
|
"4050.586670 7264.685059 6988.692871",
|
||||||
|
"9271.979492 -3435.085938 7016.474609",
|
||||||
|
"16039.641602 11123.782227 6749.042480",
|
||||||
|
"22026.318359 28821.359375 5097.370605",
|
||||||
|
"-2880.620361 -37306.265625 10351.495117",
|
||||||
|
"-12037.959961 -33522.984375 7496.958008",
|
||||||
|
"-16083.880859 -25581.726563 6762.905762",
|
||||||
|
"-24370.158203 -22847.683594 5835.610840",
|
||||||
|
"-37383.593750 -18054.251953 4680.374023",
|
||||||
|
"-25427.869141 1104.235962 4883.775879",
|
||||||
|
"-14331.927734 7869.374512 11785.143555",
|
||||||
|
"-10475.956055 32285.230469 7317.989746",
|
||||||
|
"2209.369629 37153.433594 4755.005859",
|
||||||
|
"10320.745117 31029.701172 4569.124023"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-3266.309326 -13798.226563 16354.730469",
|
||||||
|
"-15192.075195 -31771.974609 8421.763672",
|
||||||
|
"-27027.603516 868.178040 4108.173340",
|
||||||
|
"-12488.033203 26870.892578 11347.929688",
|
||||||
|
"12383.118164 20897.154297 16061.109375"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WF": {
|
||||||
|
"name": "Mnt_A_WF",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WF.png",
|
||||||
|
"landscapeMaterialOverride": 5,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_02",
|
||||||
|
"Mnt_A_Farthest_02",
|
||||||
|
"Mnt_A_Near_02",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_02-ATinyDock",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 30000.0,
|
||||||
|
"sizeY": 17500.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_02-EagleDive",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 35000.0,
|
||||||
|
"sizeY": 25000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_Temperate",
|
||||||
|
"MasterIBL_Temperate_Canopy",
|
||||||
|
"MasterIBL_Temperate_Canopy_B"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"8921.124023 30547.748047 4917.777832",
|
||||||
|
"7230.389160 25989.990234 6905.658203",
|
||||||
|
"15830.124023 13777.124023 11607.922852",
|
||||||
|
"21957.662109 13347.965820 7677.936523",
|
||||||
|
"22628.544922 22246.619141 5067.901367",
|
||||||
|
"23745.550781 30948.507813 2846.626221",
|
||||||
|
"-2828.437500 36882.769531 5152.625488",
|
||||||
|
"-9656.533203 33648.035156 5198.667480",
|
||||||
|
"-16213.519531 29116.818359 4618.129883",
|
||||||
|
"-19528.693359 18594.833984 3985.249756",
|
||||||
|
"-22234.255859 7789.173828 4094.790771",
|
||||||
|
"-25453.400391 -1344.499390 4357.291016",
|
||||||
|
"-24248.972656 -8108.288086 5597.098633",
|
||||||
|
"-19519.425781 -11615.983398 6905.234375",
|
||||||
|
"-14811.935547 -15212.053711 9463.232422",
|
||||||
|
"-12189.482422 -20796.500000 10144.284180",
|
||||||
|
"-6501.245117 -28727.552734 8514.227539",
|
||||||
|
"-3497.902344 -35701.308594 7281.631348",
|
||||||
|
"1774.628418 -34117.937500 6986.360840",
|
||||||
|
"-19502.822266 -30072.041016 2784.364746",
|
||||||
|
"6085.345215 -24932.974609 22098.029297",
|
||||||
|
"5755.739258 3202.950928 8290.310547",
|
||||||
|
"1151.750977 11569.606445 5687.476563",
|
||||||
|
"-5535.373047 20782.283203 5767.212402"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"3686.645020 9962.317383 9225.774414",
|
||||||
|
"-10708.725586 -12305.980469 13985.858398",
|
||||||
|
"-4720.640625 -36073.984375 9840.366211",
|
||||||
|
"-9154.465820 29647.667969 8465.973633",
|
||||||
|
"26829.423828 27281.474609 4649.251465"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WR": {
|
||||||
|
"name": "Mnt_A_WR",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WR.png",
|
||||||
|
"landscapeMaterialOverride": 8,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_04",
|
||||||
|
"Mnt_A_Farthest_04",
|
||||||
|
"Mnt_A_Near_04",
|
||||||
|
"Mnt_A_Marine_Warm_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_04-ANaturalWaterfall",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 60000.0,
|
||||||
|
"sizeY": 50000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_04-CircleofTheFlowStones",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 42500.0,
|
||||||
|
"sizeY": 47500.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_Tropical",
|
||||||
|
"MasterIBL_Tropical_Canopy_Oak",
|
||||||
|
"MasterIBL_Tropical_Canopy_RE"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-16319.966797 19310.255859 5196.956543",
|
||||||
|
"-19781.716797 12174.086914 6540.497559",
|
||||||
|
"-25604.515625 730.787048 9503.510742",
|
||||||
|
"-35903.437500 6640.364746 10179.867188",
|
||||||
|
"-38640.113281 -1389.074707 6281.706543",
|
||||||
|
"-40731.691406 -8948.490234 9149.079102",
|
||||||
|
"-34410.695313 -19055.984375 5384.916016",
|
||||||
|
"-13043.833008 -1079.698486 12232.010742",
|
||||||
|
"57.451523 -4843.188965 13067.989258",
|
||||||
|
"7558.433594 -5478.813965 8258.023438",
|
||||||
|
"8802.402344 3227.071777 8584.834961",
|
||||||
|
"964.915283 10208.411133 7034.237305",
|
||||||
|
"-614.771912 21159.304688 5082.153809",
|
||||||
|
"-30.795099 33272.714844 5389.859863",
|
||||||
|
"-7718.686035 32698.550781 4900.445801",
|
||||||
|
"-11238.574219 26925.666016 4586.316406",
|
||||||
|
"-19416.068359 25745.462891 4055.743408",
|
||||||
|
"1694.893555 7357.131836 15986.680664",
|
||||||
|
"-1565.773682 -31170.025391 10273.754883",
|
||||||
|
"-15868.557617 -31048.855469 4615.850098"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"20706.734375 25303.759766 6627.017090",
|
||||||
|
"-5884.183105 20850.359375 9037.580078",
|
||||||
|
"-16820.082031 -12121.963867 17184.175781",
|
||||||
|
"8048.974609 3369.842285 7099.167969",
|
||||||
|
"-2541.370361 -29156.621094 11817.947266"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WU": {
|
||||||
|
"name": "Mnt_A_WU",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WU.png",
|
||||||
|
"landscapeMaterialOverride": 9,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_06",
|
||||||
|
"Mnt_A_Farthest_06",
|
||||||
|
"Mnt_A_Near_06",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_06-TotemofLife",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 65000.0,
|
||||||
|
"sizeY": 30000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_WesternTundra",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-18042.894531 -29979.585938 3075.684814",
|
||||||
|
"-11214.928711 -29678.425781 6187.490723",
|
||||||
|
"-4681.496094 -33013.539063 8289.916016",
|
||||||
|
"2222.194824 -33966.558594 6984.114258",
|
||||||
|
"2548.885254 -20686.343750 18359.154297",
|
||||||
|
"9073.424805 -6774.549316 7991.787109",
|
||||||
|
"5975.436523 1440.155029 4623.303223",
|
||||||
|
"4609.000000 5029.975586 4257.562012",
|
||||||
|
"1584.336792 12084.308594 5932.004395",
|
||||||
|
"-4704.628906 19997.816406 4756.916016",
|
||||||
|
"-7327.812012 31067.732422 5721.006348",
|
||||||
|
"-13953.450195 33286.617188 4039.494873",
|
||||||
|
"-17655.982422 39035.269531 3244.038086",
|
||||||
|
"-20342.855469 21448.156250 3037.118164",
|
||||||
|
"-19121.525391 18318.718750 3862.701172",
|
||||||
|
"-21522.505859 9254.354492 4223.569824",
|
||||||
|
"-25618.996094 -960.561340 4143.033203",
|
||||||
|
"-37046.531250 3711.564941 2729.034424",
|
||||||
|
"-33623.039063 29229.640625 11026.258789",
|
||||||
|
"-32581.525391 -10203.798828 14291.716797"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-10671.178711 -6897.952148 16074.672852",
|
||||||
|
"-10086.010742 28760.408203 10429.531250",
|
||||||
|
"22435.064453 25148.003906 5556.701660",
|
||||||
|
"7433.569336 -1776.115601 6984.225586",
|
||||||
|
"-6267.743164 -31590.962891 10015.768555"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WU_B": {
|
||||||
|
"name": "Mnt_A_WU_B",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WU_B.png",
|
||||||
|
"landscapeMaterialOverride": 9,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_06B",
|
||||||
|
"Mnt_A_Farthest_06B",
|
||||||
|
"Mnt_A_Near_06B",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_06B-MaraudersBeach",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 47500.0,
|
||||||
|
"sizeY": 35000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_06B-TheStoneBridge",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 22500.0,
|
||||||
|
"sizeY": 25000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_WesternTundra",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-35388.078125 -23165.611328 6390.755859",
|
||||||
|
"-35450.695313 -10049.711914 5251.254883",
|
||||||
|
"-24899.007813 550.957336 4795.335938",
|
||||||
|
"-23991.230469 15574.333984 3425.397461",
|
||||||
|
"-19343.474609 27255.800781 3856.504883",
|
||||||
|
"-17586.117188 37536.781250 4569.224609",
|
||||||
|
"-7789.189941 35650.808594 5478.009277",
|
||||||
|
"-10763.719727 28955.986328 5299.406738",
|
||||||
|
"-10056.610352 20469.708984 6286.781250",
|
||||||
|
"-2489.498535 18165.636719 5280.645508",
|
||||||
|
"523.259644 9338.525391 5067.944824",
|
||||||
|
"6053.696289 2926.221436 5350.270020",
|
||||||
|
"13118.771484 6138.366211 7769.156250",
|
||||||
|
"11357.637695 13101.028320 10808.270508",
|
||||||
|
"10094.054688 22086.470703 12265.933594",
|
||||||
|
"3121.832275 27809.265625 13000.363281",
|
||||||
|
"-3897.670654 -210.781204 13779.238281",
|
||||||
|
"-6369.445313 -11102.523438 12841.676758",
|
||||||
|
"-7269.771484 -20814.730469 11369.663086",
|
||||||
|
"2908.048340 -25487.294922 11604.296875",
|
||||||
|
"6657.367676 -17592.033203 12439.599609"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-14898.756836 -18859.867188 13575.396484",
|
||||||
|
"7948.134277 2770.275146 9633.106445",
|
||||||
|
"11089.072266 22548.535156 10310.013672",
|
||||||
|
"-13794.674805 24534.058594 8345.067383",
|
||||||
|
"-6794.797363 -2446.077881 15465.110352"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WU_C": {
|
||||||
|
"name": "Mnt_A_WU_C",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WU_C.png",
|
||||||
|
"landscapeMaterialOverride": 9,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_06B",
|
||||||
|
"Mnt_A_Farthest_06B",
|
||||||
|
"Mnt_A_Near_06B",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_06B-MaraudersBeach",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 47500.0,
|
||||||
|
"sizeY": 35000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mnt_A_Near_06B-TheStoneBridge",
|
||||||
|
"size": {
|
||||||
|
"sizeX": 22500.0,
|
||||||
|
"sizeY": 25000.0,
|
||||||
|
"sizeZ": 40000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_WesternTundra",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-35388.078125 -23165.611328 6390.755859",
|
||||||
|
"-35450.695313 -10049.711914 5251.254883",
|
||||||
|
"-24899.007813 550.957336 4795.335938",
|
||||||
|
"-23991.230469 15574.333984 3425.397461",
|
||||||
|
"-19343.474609 27255.800781 3856.504883",
|
||||||
|
"-17586.117188 37536.781250 4569.224609",
|
||||||
|
"-7789.189941 35650.808594 5478.009277",
|
||||||
|
"-10763.719727 28955.986328 5299.406738",
|
||||||
|
"-10056.610352 20469.708984 6286.781250",
|
||||||
|
"-2489.498535 18165.636719 5280.645508",
|
||||||
|
"523.259644 9338.525391 5067.944824",
|
||||||
|
"6053.696289 2926.221436 5350.270020",
|
||||||
|
"13118.771484 6138.366211 7769.156250",
|
||||||
|
"11357.637695 13101.028320 10808.270508",
|
||||||
|
"10094.054688 22086.470703 12265.933594",
|
||||||
|
"3121.832275 27809.265625 13000.363281",
|
||||||
|
"-3897.670654 -210.781204 13779.238281",
|
||||||
|
"-6369.445313 -11102.523438 12841.676758",
|
||||||
|
"-7269.771484 -20814.730469 11369.663086",
|
||||||
|
"2908.048340 -25487.294922 11604.296875",
|
||||||
|
"6657.367676 -17592.033203 12439.599609"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-14898.756836 -18859.867188 13575.396484",
|
||||||
|
"7948.134277 2770.275146 9633.106445",
|
||||||
|
"11089.072266 22548.535156 10310.013672",
|
||||||
|
"-13794.674805 24534.058594 8345.067383",
|
||||||
|
"-6794.797363 -2446.077881 15465.110352"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WU_D": {
|
||||||
|
"name": "Mnt_A_WU_D",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WU_D.png",
|
||||||
|
"landscapeMaterialOverride": 9,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU",
|
||||||
|
"Mnt_A_Near_06D",
|
||||||
|
"Mnt_A_Farthest_06D",
|
||||||
|
"Mnt_A_Far_06D"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_WesternTundra",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"-38698.117188 -7910.122559 6970.310547",
|
||||||
|
"-36162.929688 15789.360352 8173.864746",
|
||||||
|
"-35365.847656 25305.294922 9875.699219",
|
||||||
|
"-15362.139648 33499.007813 5020.332031",
|
||||||
|
"-13457.119141 26561.998047 5125.049805",
|
||||||
|
"-8361.398438 12461.761719 9154.880859",
|
||||||
|
"-7721.176270 553.670898 18257.652344",
|
||||||
|
"-5502.931152 -17865.792969 21040.931641",
|
||||||
|
"-17256.367188 -21958.599609 8194.637695",
|
||||||
|
"-6019.041504 -37349.304688 13991.281250",
|
||||||
|
"-5090.549316 -48616.093750 14836.836914",
|
||||||
|
"5783.769531 -1886.086304 7190.939453",
|
||||||
|
"5099.058105 8737.717773 8166.959473",
|
||||||
|
"12067.832031 4474.467285 12688.034180",
|
||||||
|
"12160.580078 20791.974609 10282.052734",
|
||||||
|
"7164.411621 23532.482422 9806.642578",
|
||||||
|
"-1489.868652 27648.523438 5197.384766",
|
||||||
|
"-7317.666016 27735.687500 6491.034180",
|
||||||
|
"-4251.575684 36425.417969 6953.914063"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-8939.093750 -14080.763672 13484.836914",
|
||||||
|
"3931.334473 7910.164551 7602.589355",
|
||||||
|
"-7784.326660 20821.330078 8117.607422",
|
||||||
|
"-12162.979492 35787.468750 7057.665527",
|
||||||
|
"-38065.082031 29156.400391 9562.736328"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": 1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
},
|
||||||
|
"Mnt_A_WU_E": {
|
||||||
|
"name": "Mnt_A_WU_E",
|
||||||
|
"x": 152000.0,
|
||||||
|
"y": 152000.0,
|
||||||
|
"imagePath": "./assets/mnt/a/Mnt_A_WU_E.png",
|
||||||
|
"landscapeMaterialOverride": 9,
|
||||||
|
"sublevelNames": [
|
||||||
|
"Mnt_A_Far_06_E",
|
||||||
|
"Mnt_A_Farthest_06_E",
|
||||||
|
"Mnt_A_Near_06_E",
|
||||||
|
"Mnt_A_Marine_Cold_Near",
|
||||||
|
"Mnt_A_TU"
|
||||||
|
],
|
||||||
|
"discoveryVolumeNames": [],
|
||||||
|
"spawnerOverrides": {},
|
||||||
|
"extraSublevels": [
|
||||||
|
"MasterIBL_WesternTundra",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Evergreen",
|
||||||
|
"MasterIBL_WesternTundra_Canopy_Tamarack"
|
||||||
|
],
|
||||||
|
"treasureMapSpawnPoints": [
|
||||||
|
"23304.650391 28357.632813 7346.293945",
|
||||||
|
"15110.938477 29136.640625 8008.031250",
|
||||||
|
"6607.625000 26615.041016 9184.242188",
|
||||||
|
"-2768.143066 23299.013672 9114.582031",
|
||||||
|
"-8902.627930 28147.964844 8328.683594",
|
||||||
|
"-12841.750000 36599.148438 6526.341797",
|
||||||
|
"-22669.263672 33300.867188 9685.276367",
|
||||||
|
"-20255.564453 18168.187500 4107.428711",
|
||||||
|
"-23983.101563 10709.409180 3648.567383",
|
||||||
|
"-25220.861328 2398.911133 3460.032471",
|
||||||
|
"-28877.457031 -4479.493652 2926.621826",
|
||||||
|
"-31086.761719 -12862.573242 14216.467773",
|
||||||
|
"-14207.977539 -18643.226563 12399.709961",
|
||||||
|
"-8331.723633 -14284.345703 11795.544922",
|
||||||
|
"-428.522675 -35068.523438 11686.916016",
|
||||||
|
"26425.808594 -13047.953125 5241.231445",
|
||||||
|
"34385.734375 5239.154785 4710.686523",
|
||||||
|
"25333.580078 16428.525391 5913.722168",
|
||||||
|
"22267.259766 23878.593750 5478.328613",
|
||||||
|
"21888.523438 31238.580078 4791.255859",
|
||||||
|
"11120.199219 20744.664063 11486.977539",
|
||||||
|
"1315.605713 12455.618164 5493.397949",
|
||||||
|
"3368.548584 7416.109375 4310.032227",
|
||||||
|
"5884.703613 712.244507 4426.167480"
|
||||||
|
],
|
||||||
|
"wildPirateCampSpawnPoints": [
|
||||||
|
"-8427.049805 -7669.066406 13551.295898",
|
||||||
|
"-6309.895996 -35013.363281 10702.545898",
|
||||||
|
"29640.363281 -13378.908203 4185.428711",
|
||||||
|
"35348.511719 5021.483887 5416.140137",
|
||||||
|
"21901.765625 25632.488281 9391.201172"
|
||||||
|
],
|
||||||
|
"minTreasureQuality": -1.0,
|
||||||
|
"maxTreasureQuality": -1.0,
|
||||||
|
"useNpcVolumesForTreasures": false,
|
||||||
|
"useLevelBoundsForTreasures": true,
|
||||||
|
"prioritizeVolumesForTreasures": false,
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": "",
|
||||||
|
"islandPoints": -1,
|
||||||
|
"singleSpawnPointX": 28008.0,
|
||||||
|
"singleSpawnPointY": 31219.0,
|
||||||
|
"singleSpawnPointZ": 1000.0
|
||||||
|
}
|
||||||
|
}
|
||||||
23
src/data/models/DiscoveryVolumeNames.model.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { Deserialize } from "../../app/models/util/deserialize.model";
|
||||||
|
|
||||||
|
class Size implements Deserialize {
|
||||||
|
sizeX: number;
|
||||||
|
sizeY: number;
|
||||||
|
sizeZ: number;
|
||||||
|
|
||||||
|
deserialize(input: any): this {
|
||||||
|
Object.assign(this, input);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DiscoveryVolumeNamesModel implements Deserialize {
|
||||||
|
name: string;
|
||||||
|
size: Size;
|
||||||
|
|
||||||
|
deserialize(input: any): this {
|
||||||
|
Object.assign(this, input);
|
||||||
|
this.size = new Size().deserialize(this.size);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Deserialize } from "../../app/models/util/deserialize.model";
|
import { Deserialize } from "../../app/models/util/deserialize.model";
|
||||||
import { IslandInstanceModel } from "../../app/models/atlasData/island-instance.model";
|
import { DiscoveryVolumeNamesModel } from "./DiscoveryVolumeNames.model";
|
||||||
|
|
||||||
export class IslandDataModel implements Deserialize {
|
export class IslandDataModel implements Deserialize {
|
||||||
name: string;
|
name: string;
|
||||||
|
|
@ -8,6 +8,7 @@ export class IslandDataModel implements Deserialize {
|
||||||
imagePath: string;
|
imagePath: string;
|
||||||
landscapeMaterialOverride: number;
|
landscapeMaterialOverride: number;
|
||||||
sublevelNames: string[];
|
sublevelNames: string[];
|
||||||
|
discoveryVolumeNames: DiscoveryVolumeNamesModel[] = [];
|
||||||
spawnerOverrides: object;
|
spawnerOverrides: object;
|
||||||
extraSublevels: string[];
|
extraSublevels: string[];
|
||||||
treasureMapSpawnPoints: string[];
|
treasureMapSpawnPoints: string[];
|
||||||
|
|
@ -34,6 +35,7 @@ export class IslandDataModel implements Deserialize {
|
||||||
CL: "Low Desert",
|
CL: "Low Desert",
|
||||||
CP: "Polar",
|
CP: "Polar",
|
||||||
EE: "Equatorial",
|
EE: "Equatorial",
|
||||||
|
EQ: "Equatorial Tropical",
|
||||||
ET: "Eastern Temperate",
|
ET: "Eastern Temperate",
|
||||||
PO: "Polar",
|
PO: "Polar",
|
||||||
TR: "Tropical",
|
TR: "Tropical",
|
||||||
|
|
@ -54,6 +56,7 @@ export class IslandDataModel implements Deserialize {
|
||||||
|
|
||||||
deserialize(input: any): this {
|
deserialize(input: any): this {
|
||||||
Object.assign(this, input);
|
Object.assign(this, input);
|
||||||
|
console.log(input);
|
||||||
|
|
||||||
const parsedName = this.name.split('_');
|
const parsedName = this.name.split('_');
|
||||||
|
|
||||||
|
|
@ -66,6 +69,15 @@ export class IslandDataModel implements Deserialize {
|
||||||
? parsedName[3]
|
? parsedName[3]
|
||||||
: this._variantLookup[parsedName[3]];
|
: this._variantLookup[parsedName[3]];
|
||||||
|
|
||||||
|
// Override image paths from server grid editor to included code
|
||||||
|
if (this.imagePath.substr(2, 6) === 'Island') {
|
||||||
|
this.imagePath = './assets/server-grid-editor/' + this.imagePath.substr(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.discoveryVolumeNames = this.discoveryVolumeNames.map(
|
||||||
|
i => new DiscoveryVolumeNamesModel().deserialize(i)
|
||||||
|
);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
26
src/data/models/islands.model.ts
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { IslandDataModel } from "./island-data.model";
|
||||||
|
// Original from Grapeshot
|
||||||
|
import * as rawIslandData from '../islands.json';
|
||||||
|
// Split down files with updates
|
||||||
|
import * as rawMntAData from '../mnt/a/islands.json';
|
||||||
|
|
||||||
|
interface IslandDataMap {
|
||||||
|
[name: string]: IslandDataModel
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Islands {
|
||||||
|
islandData: IslandDataMap = {};
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
// Split down so easier to maintain each type
|
||||||
|
[
|
||||||
|
rawIslandData,
|
||||||
|
rawMntAData
|
||||||
|
].forEach(r => {
|
||||||
|
const data = (r as any).default;
|
||||||
|
Object.keys(data).forEach(i => {
|
||||||
|
this.islandData[i] = new IslandDataModel().deserialize(data[i]);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
144
src/data/schemas/islands.schema.json
Normal file
|
|
@ -0,0 +1,144 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
|
"$id": "https://atlasconfig.tbsliver.me/schemas/island.schema.json",
|
||||||
|
"title": "Islands",
|
||||||
|
"description": "Base Island data for the Atlas Config",
|
||||||
|
"type": "object",
|
||||||
|
"patternProperties": {
|
||||||
|
"^(Mnt|Isl|Cay)_[A-Z]{1,2}_[A-Z]{1,2}(_[A-Z]{1,2})?$": {
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"pattern": "^(Mnt|Isl|Cay)_[A-Z]{1,2}_[A-Z]{1,2}(_[A-Z]{1,2})?$"
|
||||||
|
},
|
||||||
|
"x": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"y": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"imagePath": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"landscapeMaterialOverride": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"sublevelNames": {
|
||||||
|
"$ref": "#stringArray"
|
||||||
|
},
|
||||||
|
"discoveryVolumeNames": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"size": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"sizeX": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"sizeY": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"sizeZ": {
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
"sizeX",
|
||||||
|
"sizeY",
|
||||||
|
"sizeZ"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spawnerOverrides": {
|
||||||
|
"type": "object",
|
||||||
|
"patternProperties": {
|
||||||
|
"^.*$": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"extraSublevels": {
|
||||||
|
"$ref": "#stringArray"
|
||||||
|
},
|
||||||
|
"treasureMapSpawnPoints": {
|
||||||
|
"$ref": "#stringArray"
|
||||||
|
},
|
||||||
|
"wildPirateCampSpawnPoints": {
|
||||||
|
"$ref": "#stringArray"
|
||||||
|
},
|
||||||
|
"minTreasureQuality": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"maxTreasureQuality": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"useNpcVolumesForTreasures": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"useLevelBoundsForTreasures": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"prioritizeVolumesForTreasures": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"islandPoints": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"singleSpawnPointX": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"singleSpawnPointY": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"singleSpawnPointZ": {
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"x",
|
||||||
|
"y",
|
||||||
|
"imagePath",
|
||||||
|
"landscapeMaterialOverride",
|
||||||
|
"sublevelNames",
|
||||||
|
"discoveryVolumeNames",
|
||||||
|
"spawnerOverrides",
|
||||||
|
"extraSublevels",
|
||||||
|
"treasureMapSpawnPoints",
|
||||||
|
"wildPirateCampSpawnPoints",
|
||||||
|
"minTreasureQuality",
|
||||||
|
"maxTreasureQuality",
|
||||||
|
"useLevelBoundsForTreasures",
|
||||||
|
"useNpcVolumesForTreasures",
|
||||||
|
"prioritizeVolumesForTreasures",
|
||||||
|
"islandPoints",
|
||||||
|
"islandTreasureBottleSupplyCrateOverrides",
|
||||||
|
"singleSpawnPointX",
|
||||||
|
"singleSpawnPointY",
|
||||||
|
"singleSpawnPointZ"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"definitions": {
|
||||||
|
"stringArray": {
|
||||||
|
"$id": "#stringArray",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
6
src/data/spawns/03-east-temperate.json
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"beaches": {
|
||||||
|
"NPCSpawnEntries": "",
|
||||||
|
"NPCSpawnLimits": ""
|
||||||
|
}
|
||||||
|
}
|
||||||