示例#1
0
 public static void Save(string filename, Scenario scenario)
 {
     using (StreamWriter file = File.CreateText(filename))
     {
         JsonSerializer serializer = new JsonSerializer();
         serializer.Serialize(file, scenario);
     }
 }
示例#2
0
        private void btnSaveScenario_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Thalamus Scenario |*.thalscn";
            saveFileDialog.Title = "Save Scenario";
            saveFileDialog.InitialDirectory = Path.GetFullPath(Directory.GetCurrentDirectory() + "\\" + thalamus.ScenariosDirectory);
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                Scenario newScenario = new Scenario();
                newScenario.Name = Path.GetFileNameWithoutExtension(saveFileDialog.FileName);
                foreach(Character c in thalamus.Characters.Values) {
                    CharacterDefinition cd = new CharacterDefinition();
                    cd.Name = c.Name;
                    newScenario.Characters.Add(cd);
                    foreach (KeyValuePair<string, ThalamusClientProxy> client in c.Clients.RemoteClients)
                    {
                        CharacterDefinition.Client clientCommand = new CharacterDefinition.Client();
                        clientCommand.CommandLine = client.Value.ExecutionCommand();
                        if (clientCommand.CommandLine.EndsWith("vshost.exe")) clientCommand.CommandLine = clientCommand.CommandLine.Replace(".vshost.exe", ".exe");
                        clientCommand.Arguments = client.Value.ExecutionParameters();
                        Console.WriteLine(String.Format("Execution command for '{0}': '{1}'.", client.Key, clientCommand.ToString()));
                        cd.Clients.Add(clientCommand);
                    }
                }

                if (thalamus.GetScenario(newScenario.Name) != Thalamus.Scenario.Null)
                {
                    thalamus.Scenarios.Remove(newScenario.Name);
                }

                thalamus.Scenarios[newScenario.Name] = newScenario;
                Scenario.Save(saveFileDialog.FileName, newScenario);
                lstScenario.Items.Clear();
                foreach (string s in thalamus.Scenarios.Keys)
                {
                    lstScenario.Items.Add(s);
                }
            }
        }
示例#3
0
 private void lstPresets_SelectedIndexChanged(object sender, EventArgs e)
 {
     selectedScenario = thalamus.GetScenario((string)lstScenario.SelectedItem);
     RefreshInfo();
 }