private void OnEntityRemoved(EntityChangeData changeData) { if (ListningToEntites.Contains(changeData.Entity)) { ListningToEntites.Add(changeData.Entity); EntityChanges.Enqueue(changeData); } }
private void OnDBRemoved(EntityChangeData changeData) { if (ListningToEntites.Contains(changeData.Entity)) { if (IncludeDBTypeIndexFilter.Contains(EntityManager.DataBlobTypes[changeData.Datablob.GetType()])) { ListningToEntites.Remove(changeData.Entity); } EntityChanges.Enqueue(changeData); } }
private void OnDBAdded(EntityChangeData changeData) { if (ListningToEntites.Contains(changeData.Entity)) { ListningToEntites.Add(changeData.Entity); EntityChanges.Enqueue(changeData); } else { if (IncludeDBTypeIndexFilter.Contains(EntityManager.DataBlobTypes[changeData.Datablob.GetType()])) { bool include = false; foreach (var includeitem in IncludeDBTypeIndexFilter) { if (!changeData.Entity.HasDataBlob(includeitem)) { include = false; break; } else { include = true; } } if (include && _ownerDB.OwnedEntities.ContainsKey(changeData.Entity.Guid)) { ListningToEntites.Add(changeData.Entity); EntityChangeData addedChange = new EntityChangeData() { ChangeType = EntityChangeData.EntityChangeType.EntityAdded, Entity = changeData.Entity }; EntityChanges.Enqueue(addedChange); //EntityChanges.Enqueue(changeData); } } } }