working on train movements

This commit is contained in:
Stephan Richter
2020-09-20 14:43:33 +02:00
parent a6090b4cf9
commit 9e36d5c0c8
16 changed files with 228 additions and 22 deletions

View File

@@ -0,0 +1,12 @@
package de.srsoftware.web4rail.actions;
import java.io.IOException;
public abstract class Action {
public abstract void fire() throws IOException;
@Override
public String toString() {
return getClass().getSimpleName();
}
}

View File

@@ -0,0 +1,17 @@
package de.srsoftware.web4rail.actions;
import de.srsoftware.web4rail.Route;
public class ActivateRoute extends Action {
private Route route;
public ActivateRoute(Route route) {
this.route = route;
}
@Override
public void fire() {
route.activate();
}
}

View File

@@ -0,0 +1,20 @@
package de.srsoftware.web4rail.actions;
import java.io.IOException;
import de.srsoftware.web4rail.Route;
public class FinishRoute extends Action {
private Route route;
public FinishRoute(Route route) {
this.route = route;
}
@Override
public void fire() throws IOException {
route.finish();
}
}

View File

@@ -0,0 +1,21 @@
package de.srsoftware.web4rail.actions;
import java.io.IOException;
import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.tiles.Signal;
public class SetSignalsToStop extends Action {
private Route route;
public SetSignalsToStop(Route route) {
this.route = route;
}
@Override
public void fire() throws IOException {
route.setSignals(Signal.STOP);
}
}

View File

@@ -0,0 +1,21 @@
package de.srsoftware.web4rail.actions;
import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.moving.Train;
public class SpeedReduction extends Action {
private int maxSpeed;
private Route route;
public SpeedReduction(Route route, int kmh) {
this.route = route;
maxSpeed = kmh;
}
@Override
public void fire() {
Train train = route.train;
if (train != null && train.speed > maxSpeed) train.setSpeed(maxSpeed);
}
}