private void GameComponentCleaning() { foreach (var component in _enabledUpdatable) { IUpdatableComponent u = component as IUpdatableComponent; if (u != null) { u.UpdateOrderChanged -= UpdatableUpdateOrderChanged; u.UpdatableChanged -= UpdatableEnabledChanged; } } foreach (var component in _visibleDrawable) { IDrawableComponent d = component as IDrawableComponent; if (d != null) { d.DrawOrderChanged -= DrawableDrawOrderChanged; d.VisibleChanged -= DrawableVisibleChanged; } } if (OnRenderLoopFrozen != null) { //Remove all Events associated (That haven't been unsubscribed !) foreach (Delegate d in OnRenderLoopFrozen.GetInvocationList()) { OnRenderLoopFrozen -= (RenderLoopFrozen)d; } } }
public override void AddNewService(IUpdatableComponent service) { if (service is SpringService) { this.AddNewService(service as SpringService); } }
private void GameComponentRemoved(object sender, GameComponentCollectionEventArgs e) { IDrawableComponent d = e.GameComponent as IDrawableComponent; if (d != null) { d.DrawOrderChanged -= DrawableDrawOrderChanged; d.VisibleChanged -= DrawableVisibleChanged; if (d.Visible) { _visibleDrawable.RemoveAll(x => x.DrawOrder.GetHashCode() == d.GetHashCode()); } } IUpdatableComponent u = e.GameComponent as IUpdatableComponent; if (u != null) { u.UpdateOrderChanged -= UpdatableUpdateOrderChanged; u.UpdatableChanged -= UpdatableEnabledChanged; if (u.Updatable) { _enabledUpdatable.Remove(u); } isCurrentlyUpdatingComponentsDirty = true; //Need to clear the currently Updating collection, that will need to be refreshed. } }
private void GameComponentAdded(object sender, GameComponentCollectionEventArgs e) { IDrawableComponent d = e.GameComponent as IDrawableComponent; if (d != null) { d.DrawOrderChanged += DrawableDrawOrderChanged; d.VisibleChanged += DrawableVisibleChanged; if (d.Visible) { AddDrawable(d); } } IUpdatableComponent u = e.GameComponent as IUpdatableComponent; if (u != null) { u.UpdateOrderChanged += UpdatableUpdateOrderChanged; u.UpdatableChanged += UpdatableEnabledChanged; if (u.Updatable) { AddUpdatable(u); } } }
public override void RemoveService(IUpdatableComponent service) { if (service is BubbleService) { this.RemoveService(service as BubbleService); } }
public override void AddNewService(IUpdatableComponent service) { if (service is BlowerService) { this.AddNewService(service as BubbleService); } }
private void UpdatableEnabledChanged(object sender, EventArgs e) { IUpdatableComponent u = (IUpdatableComponent)sender; if (u.Updatable) { AddUpdatable(u); } else { _enabledUpdatable.Remove(u); } }
public void SetGameComponent(IGameComponent gamecomp, int drawIndex) { DetachAll(); _gamecomp = gamecomp; _drawOrderindex = drawIndex; lblGameComp.Text = _gamecomp.Name; _parent.Children.Add(lblGameComp); //Show the Label if (drawIndex == 0) { IUpdatableComponent updateableComponent = _gamecomp as IUpdatableComponent; if (updateableComponent != null) { optUpdatable.Selected = updateableComponent.Updatable; _parent.Children.Add(optUpdatable); updateOrder.Text = updateableComponent.UpdateOrder.ToString(); _parent.Children.Add(updateOrder); } } IDrawableComponent drawableComponent = _gamecomp as IDrawableComponent; if (drawableComponent != null) { if (drawIndex == 0) { optDrawable.Selected = drawableComponent.Visible; _parent.Children.Add(optDrawable); } lblGameComp.Text += " " + drawableComponent.DrawOrders.DrawOrdersCollection[drawIndex].Name; drawOrder.Text = drawableComponent.DrawOrders.DrawOrdersCollection[drawIndex].Order.ToString(); _parent.Children.Add(drawOrder); } }
public void RegisterUpdatable(IUpdatableComponent updatable) => RegisteredUpdatableComponents.Add(updatable);
public abstract void RemoveService(IUpdatableComponent service);
public abstract void AddNewService(IUpdatableComponent service);
public void Add(IUpdatableComponent component) { this._components.Add(component); }
public override void AddNewService(IUpdatableComponent service) { this.AddNewService(service as RocketService); }
private static int UpdatableComparison(IUpdatableComponent x, IUpdatableComponent y) { return(x.UpdateOrder.CompareTo(y.UpdateOrder)); }
private void AddUpdatable(IUpdatableComponent u) { _enabledUpdatable.Add(u); _enabledUpdatable.Sort(UpdatableComparison); }
public override void RemoveService(IUpdatableComponent service) { this.RemoveService(service as RocketService); }
public override void RemoveService(IUpdatableComponent service) { throw new NotImplementedException(); }
public override void AddNewService(IUpdatableComponent service) { }