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

@@ -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{
@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

View File

@@ -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{
@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

View File

@@ -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<>();
}
}
}

View File

@@ -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<>();
}
}
}

View File

@@ -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);
}

View File

@@ -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{
}
@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

View File

@@ -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{
}
@Override
public List<Connector> offsetConnections(String from) {
public List<Connector> offsetConnections(Direction from) {
return null;
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

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 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;
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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 {
return new JSONObject();
}
public List<Connector> connections(String from){
public List<Connector> connections(Direction from){
return new Vector<>();
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}

View File

@@ -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<>();
}
}