/// <summary> /// Collects and condenses the list of server settings that belong /// in GameUserSettings.ini /// </summary> /// /// <returns>The finalized list of server settings ready for writing to file</returns> private List <String> generateGameUserIni() { List <String> settings = new List <string>(); Boolean[] defaultFalse = { (Boolean)joinNotify.IsChecked, (Boolean)thirdPerson.IsChecked, (Boolean)mapLocation.IsChecked, (Boolean)tributeDownloads.IsChecked, (Boolean)proximityChat.IsChecked, (Boolean)serverPve.IsChecked, (Boolean)serverHardcore.IsChecked, (Boolean)allowHud.IsChecked, (Boolean)flyerCarryPve.IsChecked, (Boolean)caveBuildPve.IsChecked, (Boolean)dinosaurDecay.IsChecked }; Boolean[] defaultTrue = { (Boolean)leaveNotify.IsChecked, (Boolean)globalChat.IsChecked, (Boolean)structureDecayPve.IsChecked, (Boolean)structureDecayPvp.IsChecked, }; float[] floatValues = { // Default 1.0 float.Parse(structureDistance.Text), float.Parse(daySpeed.Text), float.Parse(nightSpeed.Text), float.Parse(dayCycle.Text), float.Parse(playerDamage.Text), float.Parse(dinoDamage.Text), float.Parse(structureDamage.Text), float.Parse(playerResist.Text), float.Parse(dinoResist.Text), float.Parse(structureResist.Text), float.Parse(structureDecayMultiplier.Text), float.Parse(dinoCount.Text), float.Parse(xpMultiplier.Text), float.Parse(pveStructureDecayMultiplier.Text), float.Parse(pveStructureDestructionPeriod.Text), float.Parse(saddleStructureLimit.Text), float.Parse(perPlatformStructureMultiplier.Text), float.Parse(tameMultiplier.Text), float.Parse(harvestMultiplier.Text), float.Parse(resourceHealth.Text), float.Parse(resourceRespawn.Text), float.Parse(playerWater.Text), float.Parse(playerFood.Text), float.Parse(playerStamina.Text), float.Parse(playerHealth.Text), float.Parse(dinoFood.Text), float.Parse(dinoStamina.Text), float.Parse(dinoHealth.Text), // Default 4.0 float.Parse(difficulty.Text) }; int[] intValues = { // Default 50 int.Parse(maxPlayers.Text) }; String[] stringValues = { // Default blank serverPassword.Text, adminPassword.Text, spectatorPassword.Text, banList.Text }; GameUserIni game = new GameUserIni(motd.Text); settings = game.write(defaultFalse, defaultTrue, floatValues, stringValues, intValues); return(settings); }
/// <summary> /// Collects and condenses the list of server settings that belong /// in GameUserSettings.ini /// </summary> /// /// <returns>The finalized list of server settings ready for writing to file</returns> private List<String> generateGameUserIni() { List<String> settings = new List<string>(); Boolean[] defaultFalse = { (Boolean)joinNotify.IsChecked, (Boolean)thirdPerson.IsChecked, (Boolean)mapLocation.IsChecked, (Boolean)tributeDownloads.IsChecked, (Boolean)proximityChat.IsChecked, (Boolean)serverPve.IsChecked, (Boolean)serverHardcore.IsChecked, (Boolean)allowHud.IsChecked, (Boolean)flyerCarryPve.IsChecked, (Boolean)caveBuildPve.IsChecked, (Boolean)dinosaurDecay.IsChecked }; Boolean[] defaultTrue = { (Boolean)leaveNotify.IsChecked, (Boolean)globalChat.IsChecked, (Boolean)structureDecayPve.IsChecked, (Boolean)structureDecayPvp.IsChecked, }; float[] floatValues = { // Default 1.0 float.Parse(structureDistance.Text), float.Parse(daySpeed.Text), float.Parse(nightSpeed.Text), float.Parse(dayCycle.Text), float.Parse(playerDamage.Text), float.Parse(dinoDamage.Text), float.Parse(structureDamage.Text), float.Parse(playerResist.Text), float.Parse(dinoResist.Text), float.Parse(structureResist.Text), float.Parse(structureDecayMultiplier.Text), float.Parse(dinoCount.Text), float.Parse(xpMultiplier.Text), float.Parse(pveStructureDecayMultiplier.Text), float.Parse(pveStructureDestructionPeriod.Text), float.Parse(saddleStructureLimit.Text), float.Parse(perPlatformStructureMultiplier.Text), float.Parse(tameMultiplier.Text), float.Parse(harvestMultiplier.Text), float.Parse(resourceHealth.Text), float.Parse(resourceRespawn.Text), float.Parse(playerWater.Text), float.Parse(playerFood.Text), float.Parse(playerStamina.Text), float.Parse(playerHealth.Text), float.Parse(dinoFood.Text), float.Parse(dinoStamina.Text), float.Parse(dinoHealth.Text), // Default 4.0 float.Parse(difficulty.Text) }; int[] intValues = { // Default 50 int.Parse(maxPlayers.Text) }; String[] stringValues = { // Default blank serverPassword.Text, adminPassword.Text, spectatorPassword.Text, banList.Text }; GameUserIni game = new GameUserIni(motd.Text); settings = game.write(defaultFalse, defaultTrue, floatValues, stringValues, intValues); return settings; }
/// <summary> /// Saves the server settings when clicked /// </summary> /// /// <param name="sender">The object that sent the event</param> /// <param name="e">Arguments for the event</param> private void generateClick(object sender, RoutedEventArgs e) { List <String> errors = validate(); if (errors.Count > 0) { String error = ""; foreach (String err in errors) { error += err + "\n"; } MessageBox.Show(error); } else { // Ensure server is installed String serverExe = Reference.serversDirectory + serverName.Text + Reference.serverExePath; if (!File.Exists(serverExe)) { updateServer(); } // Save ini files List <String> game; List <String> gameUser; game = generateGameIni(); gameUser = generateGameUserIni(); GameIni.saveFile(serverName.Text, game); GameUserIni.saveFile(serverName.Text, gameUser); // Save congifuration file String[] configKeys = { "serverName", "mods", "map" }; String[] values = { serverName.Text, modList.Text, serverMap.Text }; ConfigData serverConfig = new ConfigData("serverData", Reference.serversDirectory + serverName.Text); List <String> settings = new List <String>(); for (int i = 0; i < configKeys.Length; i++) { settings.Add(configKeys[i] + "=" + values[i]); } serverConfig.write(settings); } }