Fixed parsing issue and added spawners and ship parsing
This commit is contained in:
parent
2946e5f366
commit
89c3d26127
4 changed files with 182 additions and 2 deletions
135
index.html
135
index.html
|
|
@ -28,6 +28,9 @@
|
|||
<a id="nav-shared-log" class="nav-item nav-link" data-toggle="tab" href="#tab-shared-log">Shared Log</a>
|
||||
<a id="nav-databases" class="nav-item nav-link" data-toggle="tab" href="#tab-databases">Databases</a>
|
||||
<a id="nav-servers" class="nav-item nav-link" data-toggle="tab" href="#tab-servers">Servers</a>
|
||||
<a id="nav-spawners" class="nav-item nav-link" data-toggle="tab" href="#tab-spawners">Spawners</a>
|
||||
<a id="nav-ships" class="nav-item nav-link" data-toggle="tab" href="#tab-ships">Ships</a>
|
||||
|
||||
</div>
|
||||
<div class="tab-content" id="tab-content">
|
||||
<div class="tab-pane fade show active" id="tab-config">
|
||||
|
|
@ -1089,6 +1092,138 @@
|
|||
</div>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-spawners">
|
||||
<button class="btn btn-primary" data-bind="click: addSpawner">Add Spawner</button>
|
||||
<!-- ko foreach: spawnerOverrideTemplates -->
|
||||
<hr>
|
||||
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend><span data-bind="text: $data.Name"></span>
|
||||
<button class="btn btn-primary" data-bind="click: removeSpawner">Delete Spawner</button>
|
||||
</legend>
|
||||
<!-- ko template: { name: 'textInputTemplate', data: {
|
||||
id: 'Spawner-Name-' + $index(),
|
||||
value: $data.Name,
|
||||
key: 'Name',
|
||||
label: 'Name'
|
||||
} } --><!-- /ko -->
|
||||
<!-- ko template: { name: 'deparseInputTemplate', data: {
|
||||
id: 'Spawner-NPCSpawnEntries-' + $index(),
|
||||
value: $data.NPCSpawnEntries,
|
||||
key: 'NPCSpawnEntries',
|
||||
label: 'Spawn Entries'
|
||||
} } --><!-- /ko -->
|
||||
<!-- ko template: { name: 'deparseInputTemplate', data: {
|
||||
id: 'Spawner-NPCSpawnLimits-' + $index(),
|
||||
value: $data.NPCSpawnLimits,
|
||||
key: 'NPCSpawnLimits',
|
||||
label: 'Spawn Limits'
|
||||
} } --><!-- /ko -->
|
||||
<div class="form-group row">
|
||||
<label data-bind="attr: { for: 'Server-MaxDesiredNumEnemiesMultiplier-' + $index() }"
|
||||
class="col-sm-2 col-form-label">Multiplier</label>
|
||||
<div class="col-sm-10">
|
||||
<input data-bind="attr: { id: 'Server-MaxDesiredNumEnemiesMultiplier-' + $index() }, numericValue: $data.MaxDesiredNumEnemiesMultiplier"
|
||||
type="number" step="0.1"
|
||||
class="form-control">
|
||||
<small class="form-text text-muted">MaxDesiredNumEnemiesMultiplier</small>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-ships">
|
||||
<button class="btn btn-primary" data-bind="click: addShip">Add Ship</button>
|
||||
<!-- ko foreach: shipPaths -->
|
||||
<hr>
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend>
|
||||
<span data-bind="text: $data.PathName"></span>
|
||||
<button class="btn btn-warning" data-bind="click: removeShip">Delete Ship</button>
|
||||
</legend>
|
||||
<!-- ko template: { name: 'textInputTemplate', data: {
|
||||
id: 'Ship-PathName-' + $index(),
|
||||
value: $data.PathName,
|
||||
key: 'PathName',
|
||||
label: 'Name'
|
||||
} } --><!-- /ko -->
|
||||
<div class="form-group row">
|
||||
<label data-bind="attr: { for: 'Ship-PathId-' + $index() }"
|
||||
class="col-sm-2 col-form-label">ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input data-bind="attr: { id: 'Ship-PathId-' + $index() }, numericValue: $data.PathId"
|
||||
type="number" step="1"
|
||||
class="form-control">
|
||||
<small class="form-text text-muted">PathId</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label data-bind="attr: { for: 'Ship-AutoSpawnEveryUTCInterval-' + $index() }"
|
||||
class="col-sm-2 col-form-label">Spawn Interval</label>
|
||||
<div class="col-sm-10">
|
||||
<input data-bind="attr: { id: 'Ship-AutoSpawnEveryUTCInterval-' + $index() }, numericValue: $data.AutoSpawnEveryUTCInterval"
|
||||
type="number" step="1"
|
||||
class="form-control">
|
||||
<small class="form-text text-muted">AutoSpawnEveryUTCInterval</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label data-bind="attr: { for: 'Ship-autoSpawn-' + $index() }"
|
||||
class="col-sm-2 col-form-label">Auto Spawn</label>
|
||||
<div class="col-sm-2">
|
||||
<input data-bind="attr: { id: 'Ship-autoSpawn-' + $index() }, checked: $data.autoSpawn"
|
||||
type="checkbox"
|
||||
class="form-control">
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<small class="form-text text-muted">autoSpawn</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label data-bind="attr: { for: 'Ship-isLooping-' + $index() }"
|
||||
class="col-sm-2 col-form-label">Loop</label>
|
||||
<div class="col-sm-2">
|
||||
<input data-bind="attr: { id: 'Ship-isLooping-' + $index() }, checked: $data.isLooping"
|
||||
type="checkbox"
|
||||
class="form-control">
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<small class="form-text text-muted">isLooping</small>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ko template: { name: 'deparseInputTemplate', data: {
|
||||
id: 'Ship-AutoSpawnShipClass-' + $index(),
|
||||
value: $data.AutoSpawnShipClass,
|
||||
key: 'AutoSpawnShipClass',
|
||||
label: 'Ship Class'
|
||||
} } --><!-- /ko -->
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Distance</th>
|
||||
<th>X</th>
|
||||
<th>Y</th>
|
||||
<th>Rotation</th>
|
||||
<th><button class="btn btn-primary" data-bind="click: addShipNode">+</button></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-bind="foreach: $data.Nodes">
|
||||
<tr>
|
||||
<td><input class="form-control" type="number" step="0.1" data-bind="numericValue: $data.controlPointsDistance"></td>
|
||||
<td><input class="form-control" type="number" step="0.01" data-bind="numericValue: $data.worldX"></td>
|
||||
<td><input class="form-control" type="number" step="0.01" data-bind="numericValue: $data.worldY"></td>
|
||||
<td><input class="form-control" type="number" step="0.00000001" data-bind="numericValue: $data.rotation"></td>
|
||||
<td><button class="btn btn-warning" data-bind="click: removeShipNode">−</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ function deparseArray(input) {
|
|||
if (input[0] === "BlueprintGeneratedClass") {
|
||||
return "BlueprintGeneratedClass" + "'" + input[1] + "'";
|
||||
}
|
||||
if (input[0] === "Blueprint") {
|
||||
return "Blueprint" + "'" + input[1] + "'";
|
||||
}
|
||||
if (input[0] === "SoundWave") {
|
||||
return "SoundWave" + "'" + input[1] + "'"
|
||||
}
|
||||
|
|
|
|||
42
js/main.js
42
js/main.js
|
|
@ -455,3 +455,45 @@ function addTotalExtraSubLevels(obj) {
|
|||
}
|
||||
|
||||
function removeTotalExtraSubLevels(obj, e) { ko.contextFor(e.target).$parent.totalExtraSublevels.remove(obj) }
|
||||
|
||||
function addSpawner() {
|
||||
var newSpawner = {
|
||||
"Name": ko.observable("New Spawner"),
|
||||
"NPCSpawnEntries": ko.observable(""),
|
||||
"NPCSpawnLimits": ko.observable(""),
|
||||
"MaxDesiredNumEnemiesMultiplier": ko.observable(1)
|
||||
};
|
||||
viewmodel.spawnerOverrideTemplates.push(newSpawner);
|
||||
}
|
||||
|
||||
function removeSpawner(obj) {
|
||||
viewmodel.spawnerOverrideTemplates.remove(obj);
|
||||
}
|
||||
|
||||
function addShip() {
|
||||
var newShip = {
|
||||
"PathName": ko.observable("New Ship"),
|
||||
"PathId": ko.observable(1),
|
||||
"AutoSpawnShipClass": ko.observable(""),
|
||||
"AutoSpawnEveryUTCInterval": ko.observable(21600),
|
||||
"autoSpawn": ko.observable(true),
|
||||
"Nodes": ko.observableArray([])
|
||||
};
|
||||
viewmodel.shipPaths.push(newShip);
|
||||
}
|
||||
|
||||
function removeShip(obj) {
|
||||
viewmodel.shipPaths.remove(obj);
|
||||
}
|
||||
|
||||
function addShipNode(obj) {
|
||||
var newNode = {
|
||||
"controlPointsDistance": ko.observable(0),
|
||||
"worldX": ko.observable(0),
|
||||
"worldY": ko.observable(0),
|
||||
"rotation": ko.observable(0)
|
||||
}
|
||||
obj.Nodes.push(newNode);
|
||||
}
|
||||
|
||||
function removeShipNode(obj, e) { ko.contextFor(e.target).$parent.Nodes.remove(obj) }
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<div class="row">
|
||||
<div class="col">
|
||||
<span>Atlas Crazy Config</span>
|
||||
<div id="atlas-config-editor">(SoundOverrides=(NavalCombatMusicDay=SoundWave'/Game/Atlas/Music/ATL_SeaCombatArcticDay_v1.ATL_SeaCombatArcticDay_v1',NavalCombatMusicNight=SoundWave'/Game/Atlas/Music/ATL_SeaCombatArcticNight_v1.ATL_SeaCombatArcticNight_v1',CombatMusicDay=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticDay_v2.ATL_LandCombatArcticDay_v2',CombatMusicNight=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticNight_v1.ATL_LandCombatArcticNight_v1',CombatMusicDay_Heavy=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticDay_v2.ATL_LandCombatArcticDay_v2',CombatMusicNight_Heavy=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticNight_v1.ATL_LandCombatArcticNight_v1',Sound_TransitionToMorning=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticMorning.ATL_Sting_ArcticMorning',Sound_TransitionToMidDay=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticNoon.ATL_Sting_ArcticNoon',Sound_TransitionToNight=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticNight.ATL_Sting_ArcticNight',Sound_SetSail=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticSetSail.ATL_Sting_ArcticSetSail',Sound_Respawn=None,Sound_CreateNewCharacter=None),OceanHarvestEntriesOverrides=((RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Tall_35.OceanHarvestable_Seaweed_Tall_35_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/HerbHarvestComponent_RedAlgae.HerbHarvestComponent_RedAlgae_C',Weight=0.100000,RandomOffsetPercentageOfPlacementInterval=3.000000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Tall_36.OceanHarvestable_Seaweed_Tall_36_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/HerbHarvestComponent_RedAlgae.HerbHarvestComponent_RedAlgae_C',Weight=0.010000,RandomOffsetPercentageOfPlacementInterval=5.400000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Tall_37.OceanHarvestable_Seaweed_Tall_37_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.200000,RandomOffsetPercentageOfPlacementInterval=2.100000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_16.OceanHarvestable_Seaweed_Short_16_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.010000,RandomOffsetPercentageOfPlacementInterval=1.400000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_40.OceanHarvestable_Seaweed_Short_40_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.050000,RandomOffsetPercentageOfPlacementInterval=4.000000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_41.OceanHarvestable_Seaweed_Short_41_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.400000,RandomOffsetPercentageOfPlacementInterval=0.600000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_42.OceanHarvestable_Seaweed_Short_42_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.800000,RandomOffsetPercentageOfPlacementInterval=0.800000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_43.OceanHarvestable_Seaweed_Short_43_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.400000,RandomOffsetPercentageOfPlacementInterval=0.500000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Coral_Brain.OceanHarvestable_Coral_Brain_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/CoralHarvestComponent_Brain.CoralHarvestComponent_Brain_C',Weight=0.500000,RandomOffsetPercentageOfPlacementInterval=10.000000)),bDisableClaimFlags=False)</div>
|
||||
<div id="atlas-config-editor">Blueprint'/Game/Atlas/ShipPaths/PathFollowingGhostShip_BP.PathFollowingGhostShip_BP'</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue