public void Update(EngineTime engineTime) { if (!string.IsNullOrWhiteSpace(SetTitle)) { _Engine.Form.Text = SetTitle; SetTitle = null; } if (Replacement != null) { lock (AddQueue) AddQueue.Clear(); _InnerContainer.Clear(); var l = Replacement(_Engine); foreach (var c in l) { if (c != null) { _InnerContainer.Add(c); } } Replacement = null; } EngineHelper.MultiComponentFunction[] toAdd; lock (AddQueue) { toAdd = AddQueue.ToArray(); AddQueue.Clear(); } foreach (var f in toAdd) { var l = f(_Engine); foreach (var c in l) { if (c != null) { _InnerContainer.Add(c); } } } _InnerContainer.Update(engineTime); }
public void AddComponent(EngineHelper.MultiComponentFunction component) { lock (_Injector.AddQueue) _Injector.AddQueue.Add(component); }
public void ReplaceComponents(EngineHelper.MultiComponentFunction newComponents) { _Injector.Replacement = newComponents; }
public void Update(EngineTime engineTime) { if (!string.IsNullOrWhiteSpace(SetTitle)) { _Engine.Form.Text = SetTitle; SetTitle = null; } if (Replacement != null) { lock (AddQueue) AddQueue.Clear(); _InnerContainer.Clear(); var l = Replacement(_Engine); foreach (var c in l) { if (c != null) _InnerContainer.Add(c); } Replacement = null; } EngineHelper.MultiComponentFunction[] toAdd; lock (AddQueue) { toAdd = AddQueue.ToArray(); AddQueue.Clear(); } foreach (var f in toAdd) { var l = f(_Engine); foreach (var c in l) { if (c != null) _InnerContainer.Add(c); } } _InnerContainer.Update(engineTime); }