replaced string directions by enum

This commit is contained in:
Stephan Richter
2020-09-16 10:38:03 +02:00
parent a8156d0626
commit 4ff28b34e2
32 changed files with 241 additions and 199 deletions

View File

@@ -2,17 +2,17 @@ package de.srsoftware.web4rail;
public class Connector { public class Connector {
private String from; private Plan.Direction from;
private int y; private int y;
private int x; private int x;
public Connector(int x, int y, String from) { public Connector(int x, int y, Plan.Direction from) {
this.x = x; this.x = x;
this.y = y; this.y = y;
this.from = from; this.from = from;
} }
public String from() { public Plan.Direction from() {
return from; return from;
} }

View File

@@ -7,6 +7,7 @@ import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.security.InvalidParameterException;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
@@ -54,6 +55,9 @@ import de.srsoftware.web4rail.tiles.TurnoutWN;
import de.srsoftware.web4rail.tiles.TurnoutWS; import de.srsoftware.web4rail.tiles.TurnoutWS;
public class Plan { public class Plan {
public enum Direction{
NORTH, SOUTH, EAST, WEST
}
private static final String ACTION = "action"; private static final String ACTION = "action";
private static final String ACTION_ADD = "add"; private static final String ACTION_ADD = "add";
private static final String ACTION_ANALYZE = "analyze"; private static final String ACTION_ANALYZE = "analyze";
@@ -67,10 +71,6 @@ public class Plan {
private static final String Y = "y"; private static final String Y = "y";
private static final String FILE = "file"; private static final String FILE = "file";
private static final String DIRECTION = "direction"; private static final String DIRECTION = "direction";
public static final String EAST = "east";
public static final String WEST = "west";
public static final String SOUTH = "south";
public static final String NORTH = "north";
private HashMap<Integer,HashMap<Integer,Tile>> tiles = new HashMap<Integer,HashMap<Integer,Tile>>(); private HashMap<Integer,HashMap<Integer,Tile>> tiles = new HashMap<Integer,HashMap<Integer,Tile>>();
private HashSet<Block> blocks = new HashSet<Block>(); private HashSet<Block> blocks = new HashSet<Block>();
@@ -101,7 +101,7 @@ public class Plan {
for (Connector con : block.startPoints()) routes.addAll(follow(new Route().start(block),con)); for (Connector con : block.startPoints()) routes.addAll(follow(new Route().start(block),con));
} }
for (Route r : routes) LOG.debug("found route: {}",r); for (Route r : routes) LOG.debug("found route: {}",r);
return "analyze() not implemented, yet!"; return t("Found {} routes.",routes.size());
} }
private Collection<Route> follow(Route route, Connector con) { private Collection<Route> follow(Route route, Connector con) {
@@ -177,10 +177,20 @@ public class Plan {
} }
private String moveTile(String direction, String x, String y) throws NumberFormatException, IOException { private String moveTile(String direction, String x, String y) throws NumberFormatException, IOException {
return moveTile(direction,Integer.parseInt(x),Integer.parseInt(y)); switch (direction) {
case "south":
return moveTile(Direction.SOUTH,Integer.parseInt(x),Integer.parseInt(y));
case "north":
return moveTile(Direction.NORTH,Integer.parseInt(x),Integer.parseInt(y));
case "east":
return moveTile(Direction.EAST,Integer.parseInt(x),Integer.parseInt(y));
case "west":
return moveTile(Direction.WEST,Integer.parseInt(x),Integer.parseInt(y));
}
throw new InvalidParameterException(t("\"{}\" is not a known direction!"));
} }
private String moveTile(String direction, int x, int y) throws IOException { private String moveTile(Direction direction, int x, int y) throws IOException {
//LOG.debug("moveTile({},{},{})",direction,x,y); //LOG.debug("moveTile({},{},{})",direction,x,y);
Vector<Tile> moved = null; Vector<Tile> moved = null;
switch (direction) { switch (direction) {

View File

@@ -4,11 +4,13 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Signal;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;
public class Route { public class Route {
private Vector<Tile> path; private Vector<Tile> path;
private Vector<Signal> signals;
public Tile add(Tile tile) { public Tile add(Tile tile) {
path.add(tile); path.add(tile);

View File

@@ -10,7 +10,7 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
public class BlockH extends Block{ public class BlockH extends Block{
@@ -54,7 +54,7 @@ public class BlockH extends Block{
@Override @Override
public List<Connector> startPoints() { public List<Connector> startPoints() {
return List.of(new Connector(x-1, y, Plan.EAST),new Connector(x+len(), y, Plan.WEST)); return List.of(new Connector(x-1, y, Direction.EAST),new Connector(x+len(), y, Direction.WEST));
} }
@Override @Override

View File

@@ -10,7 +10,7 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
public class BlockV extends Block{ public class BlockV extends Block{
@@ -54,7 +54,7 @@ public class BlockV extends Block{
@Override @Override
public List<Connector> startPoints() { public List<Connector> startPoints() {
return List.of(new Connector(x,y-1,Plan.SOUTH),new Connector(x,y+height(),Plan.NORTH)); return List.of(new Connector(x,y-1,Direction.SOUTH),new Connector(x,y+height(),Direction.NORTH));
} }
@Override @Override

View File

@@ -4,17 +4,18 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class ContactH extends Contact { public class ContactH extends Contact {
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,from)); return List.of(new Connector(x+1,y,from));
case Plan.EAST: case EAST:
return List.of(new Connector(x-1,y,from)); return List.of(new Connector(x-1,y,from));
} default:
return new Vector<>(); return new Vector<>();
}
} }
} }

View File

@@ -4,18 +4,19 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class ContactV extends Contact { public class ContactV extends Contact {
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,from)); return List.of(new Connector(x,y+1,from));
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x,y-1,from)); return List.of(new Connector(x,y-1,from));
} default:
return new Vector<>(); return new Vector<>();
}
} }
} }

View File

@@ -3,7 +3,8 @@ package de.srsoftware.web4rail.tiles;
import java.util.List; import java.util.List;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public abstract class Cross extends Tile { public abstract class Cross extends Tile {
public abstract List<Connector> offsetConnections(String from); public abstract List<Connector> offsetConnections(Direction from);
} }

View File

@@ -7,19 +7,20 @@ import java.util.Vector;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class CrossH extends Cross{ public class CrossH extends Cross{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x+1,y+1,Plan.NORTH)); return List.of(new Connector(x+1,y+1,Direction.NORTH));
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x+1,y-1,Plan.SOUTH)); return List.of(new Connector(x+1,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
@Override @Override
@@ -28,14 +29,16 @@ public class CrossH extends Cross{
} }
@Override @Override
public List<Connector> offsetConnections(String from) { public List<Connector> offsetConnections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,Plan.NORTH)); return List.of(new Connector(x,y+1,Direction.NORTH));
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x,y-1,Plan.SOUTH)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
@Override @Override

View File

@@ -6,6 +6,7 @@ import java.util.Map;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class CrossV extends Cross{ public class CrossV extends Cross{
@@ -15,7 +16,7 @@ public class CrossV extends Cross{
} }
@Override @Override
public List<Connector> offsetConnections(String from) { public List<Connector> offsetConnections(Direction from) {
return null; return null;
} }

View File

@@ -4,18 +4,19 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class DiagES extends Tile{ public class DiagES extends Tile{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x+1,y,Plan.WEST)); return List.of(new Connector(x+1,y,Direction.WEST));
case Plan.EAST: case EAST:
return List.of(new Connector(x,y+1,Plan.NORTH)); return List.of(new Connector(x,y+1,Direction.NORTH));
default:
return new Vector<Connector>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,18 +4,19 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class DiagNE extends Tile{ public class DiagNE extends Tile{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x+1,y,Plan.WEST)); return List.of(new Connector(x+1,y,Direction.WEST));
case Plan.EAST: case EAST:
return List.of(new Connector(x,y-1,Plan.SOUTH)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,17 +4,18 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class DiagSW extends Tile{ public class DiagSW extends Tile{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x-1,y,Plan.EAST)); return List.of(new Connector(x-1,y,Direction.EAST));
case Plan.WEST: case WEST:
return List.of(new Connector(x,y+1,Plan.NORTH)); return List.of(new Connector(x,y+1,Direction.NORTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,18 +4,19 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class DiagWN extends Tile{ public class DiagWN extends Tile{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x-1,y,Plan.EAST)); return List.of(new Connector(x-1,y,Direction.EAST));
case Plan.WEST: case WEST:
return List.of(new Connector(x,y-1,Plan.SOUTH)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -3,13 +3,14 @@ package de.srsoftware.web4rail.tiles;
import java.util.List; import java.util.List;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class Shadow extends Tile{ public class Shadow extends Tile{
private Tile overlay; private Tile overlay;
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
if (overlay instanceof StretchableTile) return overlay.connections(from); if (overlay instanceof StretchableTile) return overlay.connections(from);
if (overlay instanceof Cross) return ((Cross)overlay).offsetConnections(from); if (overlay instanceof Cross) return ((Cross)overlay).offsetConnections(from);
return super.connections(from); return super.connections(from);

View File

@@ -1,9 +1,13 @@
package de.srsoftware.web4rail.tiles; package de.srsoftware.web4rail.tiles;
import de.srsoftware.web4rail.Plan.Direction;
public abstract class Signal extends Tile{ public abstract class Signal extends Tile{
public Signal() { public Signal() {
super(); super();
classes.add("signal"); classes.add("signal");
} }
abstract boolean isAffectedFrom(Direction dir);
} }

View File

@@ -4,17 +4,23 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class SignalE extends Signal{ public class SignalE extends Signal{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,from)); return List.of(new Connector(x+1,y,Direction.WEST));
case Plan.EAST: case EAST:
return List.of(new Connector(x-1,y,from)); return List.of(new Connector(x-1,y,Direction.EAST));
default:
return new Vector<>();
} }
return new Vector<>(); }
@Override
boolean isAffectedFrom(Direction dir) {
return dir == Direction.EAST;
} }
} }

View File

@@ -4,18 +4,24 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class SignalN extends Signal { public class SignalN extends Signal {
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,from)); return List.of(new Connector(x,y+1,Direction.NORTH));
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x,y-1,from)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>(); }
@Override
boolean isAffectedFrom(Direction dir) {
return dir == Direction.NORTH;
} }
} }

View File

@@ -4,18 +4,24 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class SignalS extends Signal{ public class SignalS extends Signal{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,from)); return List.of(new Connector(x,y+1,Direction.NORTH));
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x,y-1,from)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>(); }
@Override
boolean isAffectedFrom(Direction dir) {
return dir == Direction.SOUTH;
} }
} }

View File

@@ -1,21 +0,0 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class SignalV extends Signal {
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.NORTH:
return List.of(new Connector(x,y+1,from));
case Plan.SOUTH:
return List.of(new Connector(x,y-1,from));
}
return new Vector<>();
}
}

View File

@@ -4,17 +4,23 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class SignalW extends Signal{ public class SignalW extends Signal{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,from)); return List.of(new Connector(x+1,y,Direction.WEST));
case Plan.EAST: case EAST:
return List.of(new Connector(x-1,y,from)); return List.of(new Connector(x-1,y,Direction.EAST));
default:
return new Vector<>();
} }
return new Vector<>(); }
@Override
boolean isAffectedFrom(Direction dir) {
return dir == Direction.WEST;
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class StraightH extends StretchableTile{ public class StraightH extends StretchableTile{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.WEST: case WEST:
return List.of(new Connector(x+len(),y,from)); return List.of(new Connector(x+len(),y,Direction.WEST));
case Plan.EAST: case EAST:
return List.of(new Connector(x-1,y,from)); return List.of(new Connector(x-1,y,Direction.EAST));
default:
return new Vector<>();
} }
return new Vector<>();
} }
@Override @Override

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class StraightV extends StretchableTile{ public class StraightV extends StretchableTile{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+height(),from)); return List.of(new Connector(x,y+height(),Direction.NORTH));
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x,y-1,from)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
@Override @Override

View File

@@ -20,6 +20,7 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Window; import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.Plan.Direction;
public abstract class Tile { public abstract class Tile {
@@ -37,7 +38,7 @@ public abstract class Tile {
return new JSONObject(); return new JSONObject();
} }
public List<Connector> connections(String from){ public List<Connector> connections(Direction from){
return new Vector<>(); return new Vector<>();
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutEN extends Turnout{ public class TurnoutEN extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.EAST: case EAST:
return List.of(new Connector(x,y-1,Plan.SOUTH),new Connector(x-1, y, Plan.EAST)); return List.of(new Connector(x,y-1,Direction.SOUTH),new Connector(x-1, y, Direction.EAST));
case Plan.NORTH: case NORTH:
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,Plan.WEST)); return List.of(new Connector(x+1,y,Direction.WEST));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutES extends Turnout{ public class TurnoutES extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.EAST: case EAST:
return List.of(new Connector(x,y+1,Plan.NORTH),new Connector(x-1, y, Plan.EAST)); return List.of(new Connector(x,y+1,Direction.NORTH),new Connector(x-1, y, Direction.EAST));
case Plan.SOUTH: case SOUTH:
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,Plan.WEST)); return List.of(new Connector(x+1,y,Direction.WEST));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutNE extends Turnout{ public class TurnoutNE extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,Plan.NORTH),new Connector(x+1, y, Plan.WEST)); return List.of(new Connector(x,y+1,Direction.NORTH),new Connector(x+1, y, Direction.WEST));
case Plan.SOUTH: case SOUTH:
case Plan.EAST: case EAST:
return List.of(new Connector(x,y-1,Plan.SOUTH)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutNW extends Turnout{ public class TurnoutNW extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.NORTH: case NORTH:
return List.of(new Connector(x-1,y,Plan.EAST),new Connector(x, y+1, Plan.NORTH)); return List.of(new Connector(x-1,y,Direction.EAST),new Connector(x, y+1, Direction.NORTH));
case Plan.WEST: case WEST:
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x,y-1,Plan.SOUTH)); return List.of(new Connector(x,y-1,Direction.SOUTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutSE extends Turnout{ public class TurnoutSE extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x+1,y,Plan.WEST),new Connector(x, y-1, Plan.SOUTH)); return List.of(new Connector(x+1,y,Direction.WEST),new Connector(x, y-1, Direction.SOUTH));
case Plan.EAST: case EAST:
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,Plan.NORTH)); return List.of(new Connector(x,y+1,Direction.NORTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutSW extends Turnout{ public class TurnoutSW extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x-1,y,Plan.EAST),new Connector(x, y-1, Plan.SOUTH)); return List.of(new Connector(x-1,y,Direction.EAST),new Connector(x, y-1, Direction.SOUTH));
case Plan.WEST: case WEST:
case Plan.NORTH: case NORTH:
return List.of(new Connector(x,y+1,Plan.NORTH)); return List.of(new Connector(x,y+1,Direction.NORTH));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutWN extends Turnout{ public class TurnoutWN extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,from),new Connector(x, y-1, Plan.SOUTH)); return List.of(new Connector(x+1,y,Direction.WEST),new Connector(x, y-1, Direction.SOUTH));
case Plan.EAST: case EAST:
case Plan.NORTH: case NORTH:
return List.of(new Connector(x-1,y,Plan.EAST)); return List.of(new Connector(x-1,y,Direction.EAST));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }

View File

@@ -4,19 +4,20 @@ import java.util.List;
import java.util.Vector; import java.util.Vector;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutWS extends Turnout{ public class TurnoutWS extends Turnout{
@Override @Override
public List<Connector> connections(String from) { public List<Connector> connections(Direction from) {
switch (from) { switch (from) {
case Plan.WEST: case WEST:
return List.of(new Connector(x+1,y,Plan.WEST),new Connector(x, y+1, Plan.NORTH)); return List.of(new Connector(x+1,y,Direction.WEST),new Connector(x, y+1, Direction.NORTH));
case Plan.EAST: case EAST:
case Plan.SOUTH: case SOUTH:
return List.of(new Connector(x-1,y,Plan.EAST)); return List.of(new Connector(x-1,y,Direction.EAST));
default:
return new Vector<>();
} }
return new Vector<>();
} }
} }