Reservation reset fix
This commit is contained in:
parent
f26a570c93
commit
85dd77265d
@ -54,6 +54,12 @@ namespace Parking
|
||||
|
||||
private void ReserveInitialSpots()
|
||||
{
|
||||
for (var j = 3; j >= 0; j--)
|
||||
foreach (Spot spot in _spotMap[j]) {
|
||||
spot.Reserved = false;
|
||||
spot.ReservedPriority = 0;
|
||||
}
|
||||
|
||||
for (var i = 0; i < Math.Min(DataImporter.Drivers.Count, _initialConfigurationSpotCount); i++) {
|
||||
bool found = false;
|
||||
// Find spot
|
||||
@ -80,7 +86,7 @@ namespace Parking
|
||||
_currentTime += TimeSpan.FromMinutes(stepTime);
|
||||
if (_currentTime > EndTime) {
|
||||
_currentTime = StartTime;
|
||||
// TODO: Reset spot reservations
|
||||
ReserveInitialSpots();
|
||||
ResetDrivers();
|
||||
_rejectedDrivers = new[] {0, 0, 0, 0};
|
||||
rejectedText.text = $"Małe: {_rejectedDrivers[0]} Średnie: {_rejectedDrivers[1]} " +
|
||||
@ -93,7 +99,7 @@ namespace Parking
|
||||
|
||||
|
||||
foreach (Driver driver in DataImporter.Drivers) {
|
||||
// TODO: Check if car can stay before other reservation
|
||||
// TODO: Check if car can stay before other reservation - may not work for priority-based reservations
|
||||
var triesToPark = _currentTime <= driver.Times[3].TimeOfDay && _currentTime > driver.Times[2].TimeOfDay;
|
||||
var leftTheParking = _currentTime > driver.Times[3].TimeOfDay && driver.Parked;
|
||||
if (triesToPark && !driver.Parked && !driver.Rejected) {
|
||||
@ -114,9 +120,14 @@ namespace Parking
|
||||
|
||||
private void ResetDrivers()
|
||||
{
|
||||
foreach (Driver driver in DataImporter.Drivers)
|
||||
foreach (Driver driver in DataImporter.Drivers){
|
||||
if (driver.Spot != null) {
|
||||
driver.Spot.Reserved = false;
|
||||
driver.Spot.ReservedPriority = 0;
|
||||
}
|
||||
driver.Reset();
|
||||
}
|
||||
}
|
||||
|
||||
private bool FindReservedSpot(Driver driver, out Spot spot)
|
||||
{
|
||||
@ -150,6 +161,7 @@ namespace Parking
|
||||
(spot.ParkingDirection == driver.ParkingPreference ||
|
||||
spot.ParkingDirection == ParkingPreference.Any)
|
||||
&& !spot.Reserved;
|
||||
|
||||
if (spotAvailable) {
|
||||
PlaceDriverOnSpot(driver, spot);
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user