renamed turnouts, worked on route discovery
This commit is contained in:
@@ -1,21 +1,22 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class ContactH extends Contact {
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case WEST:
|
||||
return List.of(new Connector(x+1,y,from));
|
||||
return Map.of(new Connector(x+1,y,from),State.UNDEF);
|
||||
case EAST:
|
||||
return List.of(new Connector(x-1,y,from));
|
||||
return Map.of(new Connector(x-1,y,from),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class ContactV extends Contact {
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x,y+1,from));
|
||||
return Map.of(new Connector(x,y+1,from),State.UNDEF);
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x,y-1,from));
|
||||
return Map.of(new Connector(x,y-1,from),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public abstract class Cross extends Tile {
|
||||
public abstract List<Connector> offsetConnections(Direction from);
|
||||
public abstract Map<Connector,Turnout.State> offsetConnections(Direction from);
|
||||
}
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Vector;
|
||||
|
||||
import de.srsoftware.tools.Tag;
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class CrossH extends Cross{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x+1,y+1,Direction.NORTH));
|
||||
return Map.of(new Connector(x+1,y+1,Direction.NORTH),State.UNDEF);
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x+1,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x+1,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,14 +29,14 @@ public class CrossH extends Cross{
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Connector> offsetConnections(Direction from) {
|
||||
public Map<Connector,State> offsetConnections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x,y+1,Direction.NORTH));
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.UNDEF);
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.tools.Tag;
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class CrossV extends Cross{
|
||||
|
||||
@@ -16,7 +16,7 @@ public class CrossV extends Cross{
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Connector> offsetConnections(Direction from) {
|
||||
public Map<Connector, State> offsetConnections(Direction from) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class DiagES extends Tile{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x+1,y,Direction.WEST));
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.UNDEF);
|
||||
case EAST:
|
||||
return List.of(new Connector(x,y+1,Direction.NORTH));
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<Connector>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class DiagNE extends Tile{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x+1,y,Direction.WEST));
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.UNDEF);
|
||||
case EAST:
|
||||
return List.of(new Connector(x,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class DiagSW extends Tile{
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x-1,y,Direction.EAST));
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.UNDEF);
|
||||
case WEST:
|
||||
return List.of(new Connector(x,y+1,Direction.NORTH));
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class DiagWN extends Tile{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x-1,y,Direction.EAST));
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.UNDEF);
|
||||
case WEST:
|
||||
return List.of(new Connector(x,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class Shadow extends Tile{
|
||||
|
||||
private Tile overlay;
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
if (overlay instanceof StretchableTile) return overlay.connections(from);
|
||||
if (overlay instanceof Cross) return ((Cross)overlay).offsetConnections(from);
|
||||
return super.connections(from);
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class SignalE extends Signal{
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case WEST:
|
||||
return List.of(new Connector(x+1,y,Direction.WEST));
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.UNDEF);
|
||||
case EAST:
|
||||
return List.of(new Connector(x-1,y,Direction.EAST));
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class SignalN extends Signal {
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x,y+1,Direction.NORTH));
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.UNDEF);
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class SignalS extends Signal{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x,y+1,Direction.NORTH));
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.UNDEF);
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class SignalW extends Signal{
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case WEST:
|
||||
return List.of(new Connector(x+1,y,Direction.WEST));
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.UNDEF);
|
||||
case EAST:
|
||||
return List.of(new Connector(x-1,y,Direction.EAST));
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class StraightH extends StretchableTile{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case WEST:
|
||||
return List.of(new Connector(x+len(),y,Direction.WEST));
|
||||
return Map.of(new Connector(x+len(),y,Direction.WEST),State.UNDEF);
|
||||
case EAST:
|
||||
return List.of(new Connector(x-1,y,Direction.EAST));
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||
|
||||
public class StraightV extends StretchableTile{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return List.of(new Connector(x,y+height(),Direction.NORTH));
|
||||
return Map.of(new Connector(x,y+height(),Direction.NORTH),State.UNDEF);
|
||||
case SOUTH:
|
||||
return List.of(new Connector(x,y-1,Direction.SOUTH));
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
|
||||
default:
|
||||
return new Vector<>();
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,8 +42,8 @@ public abstract class Tile {
|
||||
return new JSONObject();
|
||||
}
|
||||
|
||||
public List<Connector> connections(Direction from){
|
||||
return new Vector<>();
|
||||
public Map<Connector,Turnout.State> connections(Direction from){
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public abstract class Turnout extends Tile {
|
||||
|
||||
public enum State{
|
||||
LEFT,STRAIGHT,RIGHT,UNDEF;
|
||||
}
|
||||
private boolean straight = true;
|
||||
|
||||
public boolean toggle() {
|
||||
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutEN extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutES extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLE.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLE.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutLE extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case EAST:
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.LEFT,new Connector(x-1, y, Direction.EAST),State.STRAIGHT);
|
||||
case SOUTH:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.LEFT);
|
||||
case WEST:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.STRAIGHT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLN.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLN.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutLN extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.STRAIGHT,new Connector(x+1, y, Direction.WEST),State.LEFT);
|
||||
case SOUTH:
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.STRAIGHT);
|
||||
case EAST:
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.LEFT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLS.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLS.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutLS extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case SOUTH:
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.LEFT,new Connector(x, y-1, Direction.SOUTH),State.STRAIGHT);
|
||||
case WEST:
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.LEFT);
|
||||
case NORTH:
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.STRAIGHT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLW.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutLW.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutLW extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case WEST:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.STRAIGHT,new Connector(x, y-1, Direction.SOUTH),State.LEFT);
|
||||
case EAST:
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.STRAIGHT);
|
||||
case NORTH:
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.LEFT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutNE extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutNW extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRE.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRE.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutRE extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case EAST:
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.RIGHT,new Connector(x-1, y, Direction.EAST),State.STRAIGHT);
|
||||
case NORTH:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.RIGHT);
|
||||
case WEST:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.STRAIGHT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRN.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRN.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutRN extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case NORTH:
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.RIGHT,new Connector(x, y+1, Direction.NORTH),State.STRAIGHT);
|
||||
case WEST:
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.RIGHT);
|
||||
case SOUTH:
|
||||
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.STRAIGHT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRS.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRS.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutRS extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case SOUTH:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.RIGHT,new Connector(x, y-1, Direction.SOUTH),State.STRAIGHT);
|
||||
case EAST:
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.RIGHT);
|
||||
case NORTH:
|
||||
return Map.of(new Connector(x,y+1,Direction.NORTH),State.STRAIGHT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRW.java
Normal file
24
src/main/java/de/srsoftware/web4rail/tiles/TurnoutRW.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.web4rail.Connector;
|
||||
import de.srsoftware.web4rail.Plan.Direction;
|
||||
|
||||
public class TurnoutRW extends Turnout{
|
||||
|
||||
@Override
|
||||
public Map<Connector, State> connections(Direction from) {
|
||||
switch (from) {
|
||||
case WEST:
|
||||
return Map.of(new Connector(x+1,y,Direction.WEST),State.STRAIGHT,new Connector(x, y+1, Direction.NORTH),State.RIGHT);
|
||||
case EAST:
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.STRAIGHT);
|
||||
case SOUTH:
|
||||
return Map.of(new Connector(x-1,y,Direction.EAST),State.RIGHT);
|
||||
default:
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutSE extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutSW extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutWN extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +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.Direction;
|
||||
|
||||
public class TurnoutWS extends Turnout{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(Direction from) {
|
||||
switch (from) {
|
||||
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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user