private void OnParticleObstaclesUpdate(EventArgs args) { if (Game.IsPaused) { return; } var updatedList = new List <ObstacleParticle>(); foreach (ObstacleParticle obstacleParticle in obstacleParticles) { //Console.WriteLine("{0} - {1} - {2} - {3} - {4} - {5}", obstacleParticle.ParticleEffect.GetControlPoint(0) // , obstacleParticle.ParticleEffect.GetControlPoint(1) // , obstacleParticle.ParticleEffect.GetControlPoint(2) // , obstacleParticle.ParticleEffect.GetControlPoint(3) // , obstacleParticle.ParticleEffect.GetControlPoint(4) // , obstacleParticle.ParticleEffect.GetControlPoint(5)); if (obstacleParticle.IsValid) { if (obstacleParticle.IsLine) { pathfinding.UpdateObstacle( obstacleParticle.ID, obstacleParticle.UseCurrentPosition ? obstacleParticle.CurrentPosition : obstacleParticle.Position, obstacleParticle.EndPosition); } else { pathfinding.UpdateObstacle(obstacleParticle.ID, obstacleParticle.Position); } updatedList.Add(obstacleParticle); } else { if (forcePath != null && (obstaclesIDs.Contains(obstacleParticle.ID) || obstaclesPredictedIDs.Contains(obstacleParticle.ID))) { forcePath = null; debugPath = null; myHero.Move(movePosition); } pathfinding.RemoveObstacle(obstacleParticle.ID); } } obstacleParticles = updatedList; }
public void RemoveObstacle(uint id) { Pathfinding.RemoveObstacle(id); }