public void Awake <P1, P2, P3>(Disposer disposer, P1 p1, P2 p2, P3 p3) { if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { throw new Exception($"{disposer.GetType().Name} not found awake3"); } IAwake <P1, P2, P3> iAwake = objectEvent as IAwake <P1, P2, P3>; if (iAwake == null) { throw new Exception($"{disposer.GetType().Name} not found awake3"); } objectEvent.Set(disposer); iAwake.Awake(p1, p2, p3); }
public void Load() { while (this.loaders.Count > 0) { Disposer disposer = this.loaders.Dequeue(); if (disposer.Id == 0) { continue; } if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { continue; } this.loaders2.Enqueue(disposer); ILoad iLoad = objectEvent as ILoad; if (iLoad == null) { continue; } objectEvent.Set(disposer); try { iLoad.Load(); } catch (Exception e) { Log.Error(e.ToString()); } } ObjectHelper.Swap(ref this.loaders, ref this.loaders2); }
public void Add(Disposer disposer) { IObjectSystem objectSystem; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectSystem)) { return; } if (objectSystem is ILoad) { this.loaders.Enqueue(disposer); } if (objectSystem is IUpdate) { this.updates.Enqueue(disposer); } if (objectSystem is IStart) { this.starts.Enqueue(disposer); } if (objectSystem is ILateUpdate) { this.lateUpdates.Enqueue(disposer); } }
private void Start() { unique.Clear(); while (this.starts.Count > 0) { Disposer disposer = this.starts.Dequeue(); if (!this.unique.Add(disposer)) { continue; } if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectSystem objectEvent)) { continue; } IStart iStart = objectEvent as IStart; if (iStart == null) { continue; } objectEvent.Set(disposer); iStart.Start(); } }
public void Update() { while (this.updates.Count > 0) { Disposer disposer = this.updates.Dequeue(); if (disposer.Id == 0) { continue; } if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { continue; } this.updates2.Enqueue(disposer); IUpdate iUpdate = objectEvent as IUpdate; if (iUpdate == null) { continue; } objectEvent.Set(disposer); try { iUpdate.Update(); } catch (Exception e) { Log.Error(e.ToString()); } } ObjectHelper.Swap(ref this.updates, ref this.updates2); }
public void Awake <P1, P2>(Disposer disposer, P1 p1, P2 p2) { this.Add(disposer); if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectSystem objectEvent)) { throw new Exception($"{disposer.GetType().Name} not found awake2"); } IAwake <P1, P2> iAwake = objectEvent as IAwake <P1, P2>; if (iAwake == null) { throw new Exception($"{disposer.GetType().Name} not found awake2"); } objectEvent.Set(disposer); iAwake.Awake(p1, p2); }
public void Awake <P1>(Disposer disposer, P1 p1) { Instance.Add(disposer); if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { throw new Exception($"{disposer.GetType().Name} not found awake1"); } IAwake <P1> iAwake = objectEvent as IAwake <P1>; if (iAwake == null) { throw new Exception($"{disposer.GetType().Name} not found awake1"); } objectEvent.Set(disposer); iAwake.Awake(p1); }
public void Awake(Disposer disposer, object p1, object p2, object p3) { EntityTypeInfo entityTypeInfo; if (!this.eventInfo.TryGetValue(disposer.GetType(), out entityTypeInfo)) { return; } entityTypeInfo.Get(EntityEventType.Awake3)?.Run(disposer, p1, p2, p3); }
public void Awake(Disposer disposer, object p1) { EntityTypeInfo entityTypeInfo; if (!this.eventInfo.TryGetValue(this.GetEntityEventIdByType(disposer.GetType()), out entityTypeInfo)) { return; } entityTypeInfo.Get(EntityEventType.Awake1)?.Run(disposer, p1); }
public void Awake(Disposer disposer) { EntityTypeInfo entityTypeInfo; if (!this.eventInfo.TryGetValue(disposer.GetType(), out entityTypeInfo)) { return; } entityTypeInfo.Get(EntityEventType.Awake)?.Run(disposer); }
public void Recycle(Disposer obj) { Type type = obj.GetType(); EQueue <Disposer> queue; if (!this.dictionary.TryGetValue(type, out queue)) { queue = new EQueue <Disposer>(); } queue.Enqueue(obj); }
public void Remove(Disposer disposer) { EntityTypeInfo entityTypeInfo; if (!this.eventInfo.TryGetValue(disposer.GetType(), out entityTypeInfo)) { return; } foreach (EntityEventType disposerEvent2Type in entityTypeInfo.GetDisposerEvent2Types()) { this.disposers[disposerEvent2Type].Remove(disposer); } }
public void AddToCache(Disposer disposer, string collectionName = "") { if (collectionName == "") { collectionName = disposer.GetType().Name; } Dictionary <long, Disposer> collection; if (!this.cache.TryGetValue(collectionName, out collection)) { collection = new Dictionary <long, Disposer>(); this.cache.Add(collectionName, collection); } collection[disposer.Id] = disposer; }
public void Awake <P1, P2, P3>(Disposer disposer, P1 p1, P2 p2, P3 p3) { if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { return; } IAwake <P1, P2, P3> iAwake = objectEvent as IAwake <P1, P2, P3>; if (iAwake == null) { return; } objectEvent.Set(disposer); iAwake.Awake(p1, p2, p3); }
public void Awake(Disposer disposer) { if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { return; } IAwake iAwake = objectEvent as IAwake; if (iAwake == null) { return; } objectEvent.Set(disposer); iAwake.Awake(); }
public Task <bool> Add(Disposer disposer, string collectionName = "") { TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>(); this.AddToCache(disposer, collectionName); if (collectionName == "") { collectionName = disposer.GetType().Name; } DBSaveTask task = EntityFactory.CreateWithId <DBSaveTask, Disposer, string, TaskCompletionSource <bool> >(disposer.Id, disposer, collectionName, tcs); this.tasks[(int)((ulong)task.Id % taskCount)].Add(task); return(tcs.Task); }
public void Awake <P1>(Disposer disposer, P1 p1) { IObjectEvent objectEvent; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectEvent)) { return; } IAwake <P1> iAwake = objectEvent as IAwake <P1>; if (iAwake == null) { return; } objectEvent.Set(disposer); iAwake.Awake(p1); }
public void Update() { this.Start(); this.unique.Clear(); while (this.updates.Count > 0) { Disposer disposer = this.updates.Dequeue(); if (disposer.Id == 0) { continue; } if (!this.unique.Add(disposer)) { continue; } IObjectSystem objectSystem; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectSystem)) { continue; } this.updates2.Enqueue(disposer); IUpdate iUpdate = objectSystem as IUpdate; if (iUpdate == null) { continue; } objectSystem.Set(disposer); try { iUpdate.Update(); } catch (Exception e) { Log.Error(e.ToString()); } } ObjectHelper.Swap(ref this.updates, ref this.updates2); }
public void Awake <P1, P2>(Disposer disposer, P1 p1, P2 p2) { ObjectEvents.Instance.Add(disposer); IObjectEvent objectEvent; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectEvent)) { return; } IAwake <P1, P2> iAwake = objectEvent as IAwake <P1, P2>; if (iAwake == null) { return; } objectEvent.Set(disposer); iAwake.Awake(p1, p2); }
public void Awake <P1, P2, P3>(Disposer disposer, P1 p1, P2 p2, P3 p3) { this.Add(disposer); IObjectSystem objectSystem; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectSystem)) { return; } IAwake <P1, P2, P3> iAwake = objectSystem as IAwake <P1, P2, P3>; if (iAwake == null) { return; } objectSystem.Set(disposer); iAwake.Awake(p1, p2, p3); }
public void Awake(Disposer disposer) { this.Add(disposer); IObjectSystem objectSystem; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectSystem)) { return; } IAwake iAwake = objectSystem as IAwake; if (iAwake == null) { return; } objectSystem.Set(disposer); iAwake.Awake(); }
private void Start() { while (this.starts.Count > 0) { Disposer disposer = this.starts.Dequeue(); IObjectEvent objectEvent; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectEvent)) { continue; } IStart iStart = objectEvent as IStart; if (iStart == null) { continue; } objectEvent.Set(disposer); iStart.Start(); } }
public void Add(Disposer disposer) { if (!this.disposerEvents.TryGetValue(disposer.GetType(), out IObjectEvent objectEvent)) { return; } if (objectEvent is ILoad) { this.loaders.Enqueue(disposer); } if (objectEvent is IUpdate) { this.updates.Enqueue(disposer); } if (objectEvent is IStart) { this.starts.Enqueue(disposer); } }
public void LateUpdate() { while (this.lateUpdates.Count > 0) { Disposer disposer = this.lateUpdates.Dequeue(); if (disposer.Id == 0) { continue; } IObjectSystem objectSystem; if (!this.disposerEvents.TryGetValue(disposer.GetType(), out objectSystem)) { continue; } this.lateUpdates2.Enqueue(disposer); ILateUpdate iLateUpdate = objectSystem as ILateUpdate; if (iLateUpdate == null) { continue; } objectSystem.Set(disposer); try { iLateUpdate.LateUpdate(); } catch (Exception e) { Log.Error(e.ToString()); } } ObjectHelper.Swap(ref this.lateUpdates, ref this.lateUpdates2); }
public void Awake(Disposer disposer) { EntityTypeInfo entityTypeInfo = this.eventInfo[disposer.GetType()]; entityTypeInfo.Get(EntityEventType.Awake)?.Run(disposer); }
public void Awake(Disposer disposer, object p1, object p2, object p3) { EntityTypeInfo entityTypeInfo = this.eventInfo[disposer.GetType()]; entityTypeInfo.Get(EntityEventType.Awake3)?.Run(disposer, p1, p2, p3); }