private void CleanupDeletedEntities() { if (QueuedForDisposal.Count > 0) { foreach (CharacterEntity entity in QueuedForDisposal) { entity.DynamicBody.Enabled = false; entity.DynamicBody.Dispose(); ActiveEntities.Remove(entity); EnemyEntity enemy = entity as EnemyEntity; if (enemy != null) { Enemies.Remove(enemy); } else { EggEntity egg = entity as EggEntity; if (egg != null) { Eggs.Remove(egg); } } } QueuedForDisposal.Clear(); } }