예제 #1
0
            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);
            }
예제 #2
0
 public void AddComponent(EngineHelper.MultiComponentFunction component)
 {
     lock (_Injector.AddQueue)
         _Injector.AddQueue.Add(component);
 }
예제 #3
0
 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);
            }