public MainPage(Option option) { this.InitializeComponent(); MainCanvas.LayoutUpdated += (sender, args) => { if (!once) { WCFLogger.Info("Application started {0}", DateTime.Now.ToShortDateString()); this.MainCanvas.Children.Add(this._fleeEllipse); this._world = new World(MainCanvas); menuControl.World = this._world; this._timer = new GameTimer(this.TimerCallback); MainCanvas.MouseMove += this.MainPage_MouseMove; once = true; var scenario = new SavedScenario(); scenario.BoidsNumber = 100; switch (option) { case Option.Custom: break; case Option.Wander: scenario.WorldStatus = WorldStatus.GlobalWander; break; case Option.FCAS: scenario.WorldStatus = WorldStatus.GlobalFCAS; break; case Option.Separater: scenario.WorldStatus = WorldStatus.GlobalSeparate; break; case Option.Cohesion: scenario.WorldStatus = WorldStatus.GlobalCohesion; break; default: throw new ArgumentOutOfRangeException("option"); } ApplyScenario(scenario); } else { _world.WorldHeight = MainCanvas.ActualHeight; _world.WorldWidth = MainCanvas.ActualWidth; } }; }
public void ApplyScenario(SavedScenario scenario) { World.BoidList.Clear(); World.WorldStatus = scenario.WorldStatus; for (int i = 0; i < scenario.BoidsNumber; i++) { var newBoid = World.CreateBoid(); newBoid.Action = new BoidActionWander(); World.Map.Children.Add(new BoidControl(newBoid)); } }
public static long Save(SavedScenario scenario) { var redisManager = RedisDal.GetClient(); redisManager.ExecAs<SavedScenario>(redisProject => { if (scenario.Id <= 0) { scenario.Id = redisProject.GetNextSequence(); } redisProject.Store(scenario); }); return scenario.Id; }
private void btnSaveScenario_Click(object sender, RoutedEventArgs e) { var savedScenario = new SavedScenario(); savedScenario.BoidsNumber = World.BoidList.Count; savedScenario.WorldStatus = World.WorldStatus; var client = new DalService.RedisDalServiceClient(); client.SaveScenarioAsync(savedScenario); }
public void SaveScenario(SavedScenario scenario) { RedisDal.ScenarioRepository.Save(scenario); }
public void ApplyScenario(SavedScenario scenario) { _world.BoidList.Clear(); _world.WorldStatus = scenario.WorldStatus; for (int i = 0; i < scenario.BoidsNumber; i++) { var newBoid = _world.CreateBoid(); _world.Map.Children.Add(new BoidControl(newBoid)); } _world.SetGlobalAction(WorldStatus.GlobalWander); this._world.Go(this._mousePosition); _world.SetGlobalAction(scenario.WorldStatus); }