private void _registerType(Type type) { if (!Spawned.ContainsKey(type)) { Spawned.Add(type, new List <IPoolable>()); } if (!Despawned.ContainsKey(type)) { Despawned.Add(type, new List <IPoolable>()); } }
public void Update(double deltaTime) { var currentWave = Waves[Level]; while (Spawned.Count < currentWave.SpawnCount) { float spawnRange = Vrax.Game.Screen.Height * 0.8f; float spawnYOffset = Vrax.Game.Screen.Height * 0.1f; // Spawn var spawn = currentWave.Table.Select(Rand.Next()).SpawnMethod.Invoke(); spawn.Position = new Point(Vrax.Game.Screen.Width, (float)(spawnRange * Rand.NextDouble()) + spawnYOffset); spawn.Disposed += OnEntityDisposed; spawn.Destroyed += OnEntityDestroyed; Spawned.Add(spawn); Vrax.World.AddEntity(spawn); } }