implemented handling of stuck trains during route search

This commit is contained in:
Stephan Richter
2021-03-14 16:15:14 +01:00
parent c4e57d2b8a
commit d86b6dcbcc
6 changed files with 28 additions and 5 deletions

View File

@@ -278,8 +278,9 @@ public abstract class Block extends StretchableTile{
if (isNull(firstTrain)) return true;
if (firstTrain != train) return false;
trains.remove(train);
status = trains.isEmpty() ? Status.FREE : Status.OCCUPIED;
plan.place(this);
if (isSet(firstTrain)) {
super.free(train);
} else super.setTrain(firstTrain);
return true;
}

View File

@@ -106,7 +106,7 @@ public abstract class Tile extends BaseClass implements Comparable<Tile> {
}
public boolean free(Train t) {
if (t != train) return false;
if (isSet(train) && t != train) return false;
train = null;
status = Status.FREE;
plan.place(this);