public void Save(PersistedSimulation simulation) { if (!CurrentFilenameIsKnown) { throw new InvalidOperationException(); } SaveFile(_lastSaveFileName, simulation); }
public SimulationOptions(PersistedSimulation persistedSimulation, ProcessOptions processOptions) { _persistedSimulation = persistedSimulation; ProcessOptions = processOptions; }
private void RegisterAreaRenderHelper(TerraformingOptions terraformingOptions = null, PersistedSimulation persistedSimulation = null) { _gamePanel.Controls.Clear(); var areaOptions = terraformingOptions != null ? new SimulationOptions(terraformingOptions, new ProcessOptions(() => showGrowthPathFinding.Checked, () => enableMoneyCheatToolStripMenuItem.Checked)) : new SimulationOptions(persistedSimulation, new ProcessOptions(() => showGrowthPathFinding.Checked, () => enableMoneyCheatToolStripMenuItem.Checked)); if (_areaRenderHelper != null) { _areaRenderHelper.Stop(); ReloadGamePanel(); } _areaRenderHelper = new SimulationRenderHelper( gamePanel: _gamePanel, renderZoneOptions: new RenderZoneOptions( showDebugGrowthPathFinding: () => showGrowthPathFinding.Checked, selectedGraphicsManagerFunc: () => _graphicsManagerSelection.GetCurrentOption(), getCurrentOverlayOptionFunc: () => _overlaySelection.GetCurrentOption() ), options: areaOptions ); _areaRenderHelper.SimulationSession.OnAreaMessage += (_sender, _e) => statusStrip1.BeginInvoke(new MethodInvoker(() => { toolStripStatusLabel1.Text = _e.Message; })); _areaRenderHelper.SimulationSession.OnAreaHotMessage += (_sender, _e) => { if (_webserverForm == null) { MessageBox.Show(_e.Message, _e.Title, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { statusStrip1.BeginInvoke(new MethodInvoker(() => { toolStripStatusLabel1.Text = _e.Message; })); } }; _areaRenderHelper.SimulationSession.OnCityBudgetValueChanged += (_sender, _e) => statusStrip1.BeginInvoke(new MethodInvoker(() => { foreach (var x in new[] { new { LabelControl = cityBudgetLabel, Text = _e.EventData.CurrentAmountDescription, Amount = _e.EventData.CurrentAmount }, new { LabelControl = projectedIncomeLabel, Text = _e.EventData.ProjectedIncomeDescription, Amount = _e.EventData.ProjectedIncome } }) { x.LabelControl.Text = x.Text; x.LabelControl.ForeColor = x.Amount >= 0 ? SystemColors.ControlText : Color.Red; } })); _areaRenderHelper.SimulationSession.OnYearAndOrMonthChanged += (_sender, _e) => { if (statusStrip1.IsHandleCreated) { statusStrip1.BeginInvoke(new MethodInvoker( () => { monthAndYearLabel.Text = _e.EventData.GetCurrentDescription(); })); } }; _areaRenderHelper.Start(); _citySaveStateController.ToggleSaveFunctionalityAvailable(); }
public void SaveFile(string fileName, PersistedSimulation simulation) { using (var file = File.Open(fileName, FileMode.Create, FileAccess.Write)) _xmlSerializer.Serialize(file, simulation); _lastSaveFileName = fileName; }