public Car GetNextCar() { if (AreCarsWaiting) { var car = QueuedCars[0]; QueuedCars.RemoveAt(0); return(car); } return(null); }
public void UpdateQueue(int curentTime) { var carsToAdd = from c in CarsToSpawn where c.EntryTime == curentTime select c; var carsToAdd2 = carsToAdd.ToList(); if (carsToAdd2.Count > 0) { foreach (var a in carsToAdd2) { QueuedCars.Add(a); CarsToSpawn.Remove(a); } } }
public Car PeekAtQueue() { if (QueuedCars.Any()) { return(QueuedCars[0]); } var nextCarMaybe = from a in CarsToSpawn where a.EntryTime == (Roundabout.MainCurrTime + 2) select a; if (nextCarMaybe.Count() > 1) { throw new Exception("There was a car time collision."); } if (nextCarMaybe.Count() == 1) { return(nextCarMaybe.Single()); } return(null); }