Finished first pass of all things with raw editor for reaching in and breaking it

This commit is contained in:
Tom Bloor 2019-08-31 02:56:14 +01:00
parent 120ca8f9c9
commit 9a35b182a9
Signed by: TBSliver
GPG key ID: 4657C7EBE42CC5CC
5 changed files with 943 additions and 66 deletions

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="JavaScriptLibraryMappings"> <component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{@types/knockout, @types/knockout.mapping, ace, bootstrap, jquery-3.4.1, knockout, knockout.mapping, peg, popper}" /> <file url="PROJECT" libraries="{@types/knockout, @types/knockout.mapping, @types/pegjs, ace, bootstrap, jquery-3.4.1, knockout, knockout.mapping, peg, popper}" />
</component> </component>
</project> </project>

View file

@ -13,5 +13,6 @@
<orderEntry type="library" name="knockout.mapping" level="application" /> <orderEntry type="library" name="knockout.mapping" level="application" />
<orderEntry type="library" name="@types/knockout.mapping" level="application" /> <orderEntry type="library" name="@types/knockout.mapping" level="application" />
<orderEntry type="library" name="peg" level="application" /> <orderEntry type="library" name="peg" level="application" />
<orderEntry type="library" name="@types/pegjs" level="application" />
</component> </component>
</module> </module>

View file

@ -7,3 +7,8 @@
width: 100%; width: 100%;
height: 50vh; height: 50vh;
} }
#raw-editor {
width: 100%;
height: 50vh;
}

File diff suppressed because it is too large Load diff

View file

@ -234,7 +234,80 @@ var viewmodel = ko.mapping.fromJS({
], ],
"spawnerOverrideTemplates": [], "spawnerOverrideTemplates": [],
"shipPaths": [], "shipPaths": [],
"serverTemplates": [], "serverTemplates": [
{
// Basic Data
"name": "No Build PVE",
"ip": "127.0.0.1",
"port": 50000,
"gamePort": 6666,
"seamlessDataPort": 27000,
"gridX": 0,
"gridY": 0,
"MachineIdTag": "",
"isHomeServer": false,
"AdditionalCmdLineParams": "",
// Biome Options
"GlobalBiomeSeamlessServerGridPreOffsetValues": "(BiomeZoneName=\"Tundra At Land\",PreOffsetMaxDistanceFromShore=100000.000000,PreOffsetTemperatureMultiplier=0.800000,PreOffsetTemperatureMultiplierMaxDistanceFromShore=0.800000,PreOffsetTemperatureAdditionMaxDistanceFromShore=-18.000000,PreOffsetTemperatureAddition=-12.000000,PreOffsetTemperatureExponent=1.000000,PreOffsetTemperatureExponentMaxDistanceFromShore=1.000000,BiomeZoneNameAltDistanceName=\"Tundra Open Water\",BiomeZoneNameAltDistanceAmount=0.000000)",
"GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater": "(BiomeZoneName=\"Tundra Ocean Water\",PreOffsetMaxDistanceFromShore=17500.000000,PreOffsetTemperatureMultiplier=0.750000,PreOffsetTemperatureMultiplierMaxDistanceFromShore=0.750000,PreOffsetTemperatureAdditionMaxDistanceFromShore=-45.000000,PreOffsetTemperatureAddition=-20.000000,PreOffsetTemperatureExponent=1.000000,PreOffsetTemperatureExponentMaxDistanceFromShore=1.000000,BiomeZoneNameAltDistanceName=\"Tundra Deep Ocean\",BiomeZoneNameAltDistanceAmount=0.500000)",
// Override Options
"OceanDinoDepthEntriesOverride": "",
"OceanEpicSpawnEntriesOverrideValues": "\"(NPCSpawnEntries=((NPCsToSpawn=(BlueprintGeneratedClass'/Game/Atlas/Creatures/MeanWhale/MeanWhale_Character_BP.MeanWhale_Character_BP_C'),NPCsSpawnOffsets=((X=0.000000,Y=0.000000,Z=-700.000000)),NPCsToSpawnPercentageChance=(1.000000)),(NPCsToSpawn=(BlueprintGeneratedClass'/Game/Atlas/Creatures/MeanWhale/MeanWhale_SeaMonster_Character_BP.MeanWhale_SeaMonster_Character_BP_C'),NPCsSpawnOffsets=((X=0.000000,Y=0.000000,Z=-700.000000)),NPCsToSpawnPercentageChance=(1.000000))),NPCSpawnLimits=,MaxDesiredNumEnemiesMultiplier=4.000000)\",",
"oceanFloatsamCratesOverride": "",
"treasureMapLootTablesOverride": "",
"oceanEpicSpawnEntriesOverrideTemplateName": "",
"NPCShipSpawnEntriesOverrideTemplateName": "",
"regionOverrides": "",
// Style Options
"templateColorR": 0.0,
"templateColorG": 0.0,
"templateColorB": 0.0,
"waterColorR": 0.5,
"waterColorG": 0.1,
"waterColorB": 0.1,
"skyStyleIndex": 2,
// Misc Options
"floorZDist": 0,
"utcOffset": 0,
"transitionMinZ": 0,
"serverIslandPointsMultiplier": 1.0,
// Date Options
"lastModified": "0001-01-01T00:00:00",
"lastImageOverride": "0001-01-01T00:00:00",
// Boolean Options
"islandLocked": false,
"discoLocked": false,
"pathsLocked": false,
// Long Tables
"sublevels": [],
"islandInstances": [],
"discoZones": [],
// Mini Tables
"spawnRegions": [],
"extraSublevels": [],
"totalExtraSublevels": [],
// Custom Data - Ignored!
"ServerCustomDatas1": "NPCShipDifficultyMult,NPCShipDifficultyLerp,NPCShipNumMult,FloatsamQualityMultiplier",
"ServerCustomDatas2": "2.0,0.5,1.6,5",
"ClientCustomDatas1": ",OceanDepthFadeExponent,OceanWaterScatterIntensity,",
"ClientCustomDatas2": ",-1,0.015,",
// ???? Will just have to have a custom JSON editor...
"OverrideShooterGameModeDefaultGameIni": {
"bDontUseClaimFlags": "1",
"NoClaimFlagPeriodDecayMultiplier": "4"
}
}
],
// ?!?! // ?!?!
"OverrideShooterGameModeDefaultGameIni": {} "OverrideShooterGameModeDefaultGameIni": {}
@ -365,6 +438,34 @@ function saveDeparseEdit() {
activeDeparseEdit = undefined; activeDeparseEdit = undefined;
} }
var rawEditor = ace.edit("raw-editor");
rawEditor.setTheme("ace/theme/monokai");
rawEditor.session.setMode("ace/mode/json");
var activeRawEdit;
function rawEdit(data) {
activeRawEdit = data;
$('#raw-modal').on('hide.bs.modal', function () {
cancelRawEdit();
});
$('#raw-modal').modal('show');
rawEditor.setValue(ko.toJSON(ko.mapping.toJS(activeRawEdit), null, 2));
}
function cancelRawEdit() {
activeDeparseEdit = undefined;
$('#raw-modal').off('hide.bs.modal');
$('#raw-modal').modal('hide');
}
function saveRawEdit() {
$('#raw-modal').off('hide.bs.modal');
$('#raw-modal').modal('hide');
ko.mapping.fromJSON(rawEditor.getValue(), {}, activeRawEdit);
activeRawEdit = undefined;
}
function addServerSubLevel(obj) { function addServerSubLevel(obj) {
var newSubLevel = { var newSubLevel = {
"id": ko.observable(0), "id": ko.observable(0),
@ -492,8 +593,19 @@ function addShipNode(obj) {
"worldX": ko.observable(0), "worldX": ko.observable(0),
"worldY": ko.observable(0), "worldY": ko.observable(0),
"rotation": ko.observable(0) "rotation": ko.observable(0)
} };
obj.Nodes.push(newNode); obj.Nodes.push(newNode);
} }
function removeShipNode(obj, e) { ko.contextFor(e.target).$parent.Nodes.remove(obj) } function removeShipNode(obj, e) { ko.contextFor(e.target).$parent.Nodes.remove(obj) }
function addTemplate() {
var newTemplate = {
};
viewmodel.serverTemplates.push(newTemplate);
}
function removeTemplate(obj) {
viewmodel.serverTemplates.remove(obj);
}