replaced string directions by enum
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user