protected virtual void ReplaceEntities() { // Remove Entities marked as destroyed from the Universe reference.entities.RemoveWhere( e => e is IDestroyable && (e as IDestroyable).Destroy ); ICollection <IEntity> current = reference.entities; if (lastEntities != current || lastCount != current.Count) { manager.GenerateEntities(this, current); lastEntities = current; lastCount = current.Count; } }