/// <summary> /// Runs in background thread CANNOT change visuals /// </summary> public void UpdateGameStates(UIChanges changes, double deltaTimeMS) { // update the regiments if required foreach (Army a in Armies.Values) { foreach (Corps c in a.Corps) { foreach (ArmyDivision d in c.Divisons) { foreach (Brigade b in d.Brigades) { UpdatePosition(b, changes, deltaTimeMS); foreach (Regiment r in b.Regiments) { r.FacingInDegrees += 1; } } } } } //// Hack 1 regiment changes changes.RegimentalIds.Add(1); }
/// <summary> /// The dispathed timer /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void timer_Tick(object sender, EventArgs e) { lock (_locker) { try { // textBlock.Text = lastBackgroundUpdate.ToLongTimeString(); mapVisualHost.UpdateGameVisualsWithChangeList(changes); changes = new UIChanges(); UpdateSelectionDisplay(); //mapVisualHost.UpdateGameVisuals(); //this.MapCanvas.InvalidateVisual(); //this.MapCanvas.UpdateLayout(); //mapVisualHost.Refresh(); } catch (Exception ex) { } finally { } } }
/* * public void DrawScreen(IAleaBelliGame client) * { * // Remove all Visuals * m_Visuals.ForEach(delegate (Visual v) { RemoveVisualChild(v); }); * m_Visuals.Clear(); * * //m_Visuals.Add(CreateDrawingVisualRectangle(client)); * * m_Visuals.ForEach(delegate (Visual v) { AddVisualChild(v); }); * }*/ public void UpdateGameVisualsWithChangeList(UIChanges changes) { if (changes != null) { // redraw any regimentd foreach (int rid in changes.RegimentalIds.ToList()) { Regiment r = game.GetRegiment(rid); RedrawRegiment(r, true); } } }
public void UpdatePosition(Brigade b, UIChanges changes, double deltaTimeMS) { }