private void PlayerRemoved(Object sender, PlayerListChangedEventArgs args) { if (args != null) { foreach (PlayerComponent p in args.PlayersAddedOrRemoved) { List <ModelComponent> copyList = new List <ModelComponent>(); copyList.AddRange(p.BuildingList.GetChildren()); foreach (Building b in copyList) { p.BuildingList.RemoveChild(b); } p.BuildingList.BuildingAddedEventHandlers -= this.BuildingAdded; p.BuildingList.BuildingRemovedEventHandlers -= this.BuildingRemoved; copyList = new List <ModelComponent>(); copyList.AddRange(p.GetUnitList().GetChildren()); foreach (UnitComponent u in copyList) { p.GetUnitList().RemoveChild(u); u.Location.RemoveEntity(u); } } } }
/// <summary> /// Removes a PlayerComponent from the list. Fires an PlayerRemovedEvent. /// </summary> /// <param name="child"></param> public override void RemoveChild(ModelComponent child) { base.RemoveChild(child); PlayerListChangedEventArgs e = new PlayerListChangedEventArgs(); e.PlayersAddedOrRemoved.Add((PlayerComponent)child); if (PlayerRemovedEvent != null) { PlayerRemovedEvent(this, e); } }
private void PlayerAdded(Object sender, PlayerListChangedEventArgs args) { if (args != null) { foreach (PlayerComponent p in args.PlayersAddedOrRemoved) { p.BuildingList.BuildingAddedEventHandlers += this.BuildingAdded; p.BuildingList.BuildingRemovedEventHandlers += this.BuildingRemoved; } } }
/// <summary> /// Adds a PlayerComponent to the list. Fires an PlayerAddedEvent. /// </summary> /// <param name="child"></param> public override void AddChild(ModelComponent child) { if (child is PlayerComponent) { base.AddChild(child); PlayerListChangedEventArgs e = new PlayerListChangedEventArgs(); e.PlayersAddedOrRemoved.Add((PlayerComponent)child); if (PlayerAddedEvent != null) { PlayerAddedEvent(this, e); } } }
protected virtual void OnPlayerListChanged(PlayerListChangedEventArgs e) { if (PlayerListChanged != null) PlayerListChanged(this, e); }
private void PlayerRemoved(Object sender, PlayerListChangedEventArgs args) { if (args != null) { foreach (PlayerComponent p in args.PlayersAddedOrRemoved) { List<ModelComponent> copyList = new List<ModelComponent>(); copyList.AddRange(p.BuildingList.GetChildren()); foreach (Building b in copyList) { p.BuildingList.RemoveChild(b); } p.BuildingList.BuildingAddedEventHandlers -= this.BuildingAdded; p.BuildingList.BuildingRemovedEventHandlers -= this.BuildingRemoved; copyList = new List<ModelComponent>(); copyList.AddRange(p.GetUnitList().GetChildren()); foreach (UnitComponent u in copyList) { p.GetUnitList().RemoveChild(u); u.Location.RemoveEntity(u); } } } }