Browse Source

replaced string directions by enum

lookup-tables
Stephan Richter 5 years ago
parent
commit
4ff28b34e2
  1. 6
      src/main/java/de/srsoftware/web4rail/Connector.java
  2. 24
      src/main/java/de/srsoftware/web4rail/Plan.java
  3. 4
      src/main/java/de/srsoftware/web4rail/Route.java
  4. 4
      src/main/java/de/srsoftware/web4rail/tiles/BlockH.java
  5. 4
      src/main/java/de/srsoftware/web4rail/tiles/BlockV.java
  6. 13
      src/main/java/de/srsoftware/web4rail/tiles/ContactH.java
  7. 13
      src/main/java/de/srsoftware/web4rail/tiles/ContactV.java
  8. 3
      src/main/java/de/srsoftware/web4rail/tiles/Cross.java
  9. 29
      src/main/java/de/srsoftware/web4rail/tiles/CrossH.java
  10. 3
      src/main/java/de/srsoftware/web4rail/tiles/CrossV.java
  11. 15
      src/main/java/de/srsoftware/web4rail/tiles/DiagES.java
  12. 15
      src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java
  13. 15
      src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java
  14. 15
      src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java
  15. 3
      src/main/java/de/srsoftware/web4rail/tiles/Shadow.java
  16. 4
      src/main/java/de/srsoftware/web4rail/tiles/Signal.java
  17. 20
      src/main/java/de/srsoftware/web4rail/tiles/SignalE.java
  18. 20
      src/main/java/de/srsoftware/web4rail/tiles/SignalN.java
  19. 20
      src/main/java/de/srsoftware/web4rail/tiles/SignalS.java
  20. 21
      src/main/java/de/srsoftware/web4rail/tiles/SignalV.java
  21. 20
      src/main/java/de/srsoftware/web4rail/tiles/SignalW.java
  22. 15
      src/main/java/de/srsoftware/web4rail/tiles/StraightH.java
  23. 15
      src/main/java/de/srsoftware/web4rail/tiles/StraightV.java
  24. 3
      src/main/java/de/srsoftware/web4rail/tiles/Tile.java
  25. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java
  26. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java
  27. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java
  28. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java
  29. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java
  30. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java
  31. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java
  32. 17
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java

6
src/main/java/de/srsoftware/web4rail/Connector.java

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

24
src/main/java/de/srsoftware/web4rail/Plan.java

@ -7,6 +7,7 @@ import java.io.FileReader; @@ -7,6 +7,7 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.security.InvalidParameterException;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@ -54,6 +55,9 @@ import de.srsoftware.web4rail.tiles.TurnoutWN; @@ -54,6 +55,9 @@ import de.srsoftware.web4rail.tiles.TurnoutWN;
import de.srsoftware.web4rail.tiles.TurnoutWS;
public class Plan {
public enum Direction{
NORTH, SOUTH, EAST, WEST
}
private static final String ACTION = "action";
private static final String ACTION_ADD = "add";
private static final String ACTION_ANALYZE = "analyze";
@ -67,10 +71,6 @@ public class Plan { @@ -67,10 +71,6 @@ public class Plan {
private static final String Y = "y";
private static final String FILE = "file";
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 HashSet<Block> blocks = new HashSet<Block>();
@ -101,7 +101,7 @@ public class Plan { @@ -101,7 +101,7 @@ public class Plan {
for (Connector con : block.startPoints()) routes.addAll(follow(new Route().start(block),con));
}
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) {
@ -177,10 +177,20 @@ public class Plan { @@ -177,10 +177,20 @@ public class Plan {
}
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);
Vector<Tile> moved = null;
switch (direction) {

4
src/main/java/de/srsoftware/web4rail/Route.java

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

4
src/main/java/de/srsoftware/web4rail/tiles/BlockH.java

@ -10,7 +10,7 @@ import org.json.JSONObject; @@ -10,7 +10,7 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Route;
public class BlockH extends Block{
@ -54,7 +54,7 @@ public class BlockH extends Block{ @@ -54,7 +54,7 @@ public class BlockH extends Block{
@Override
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

4
src/main/java/de/srsoftware/web4rail/tiles/BlockV.java

@ -10,7 +10,7 @@ import org.json.JSONObject; @@ -10,7 +10,7 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Route;
public class BlockV extends Block{
@ -54,7 +54,7 @@ public class BlockV extends Block{ @@ -54,7 +54,7 @@ public class BlockV extends Block{
@Override
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

13
src/main/java/de/srsoftware/web4rail/tiles/ContactH.java

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

13
src/main/java/de/srsoftware/web4rail/tiles/ContactV.java

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

3
src/main/java/de/srsoftware/web4rail/tiles/Cross.java

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

29
src/main/java/de/srsoftware/web4rail/tiles/CrossH.java

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

3
src/main/java/de/srsoftware/web4rail/tiles/CrossV.java

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

15
src/main/java/de/srsoftware/web4rail/tiles/DiagES.java

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

15
src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java

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

15
src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java

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

15
src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java

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

3
src/main/java/de/srsoftware/web4rail/tiles/Shadow.java

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

4
src/main/java/de/srsoftware/web4rail/tiles/Signal.java

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

20
src/main/java/de/srsoftware/web4rail/tiles/SignalE.java

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

20
src/main/java/de/srsoftware/web4rail/tiles/SignalN.java

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

20
src/main/java/de/srsoftware/web4rail/tiles/SignalS.java

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

21
src/main/java/de/srsoftware/web4rail/tiles/SignalV.java

@ -1,21 +0,0 @@ @@ -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<>();
}
}

20
src/main/java/de/srsoftware/web4rail/tiles/SignalW.java

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

15
src/main/java/de/srsoftware/web4rail/tiles/StraightH.java

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

15
src/main/java/de/srsoftware/web4rail/tiles/StraightV.java

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

3
src/main/java/de/srsoftware/web4rail/tiles/Tile.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java

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

17
src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java

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

Loading…
Cancel
Save