Merge branch 'master' of ssh://eldorado/GIT/Web4Rail
This commit is contained in:
@@ -3,6 +3,7 @@ package de.srsoftware.web4rail;
|
|||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
@@ -39,7 +40,11 @@ public class Application {
|
|||||||
server.createContext("/js" , client -> sendFile(client));
|
server.createContext("/js" , client -> sendFile(client));
|
||||||
server.setExecutor(java.util.concurrent.Executors.newCachedThreadPool());
|
server.setExecutor(java.util.concurrent.Executors.newCachedThreadPool());
|
||||||
server.start();
|
server.start();
|
||||||
plan = Plan.load("default.plan");
|
try {
|
||||||
|
plan = Plan.load("default.plan");
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
plan = new Plan();
|
||||||
|
}
|
||||||
Desktop.getDesktop().browse(URI.create("http://localhost:"+config.getInt(PORT)+"/plan"));
|
Desktop.getDesktop().browse(URI.create("http://localhost:"+config.getInt(PORT)+"/plan"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
31
src/main/java/de/srsoftware/web4rail/Connector.java
Normal file
31
src/main/java/de/srsoftware/web4rail/Connector.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package de.srsoftware.web4rail;
|
||||||
|
|
||||||
|
public class Connector {
|
||||||
|
|
||||||
|
private String from;
|
||||||
|
private int y;
|
||||||
|
private int x;
|
||||||
|
|
||||||
|
public Connector(int x, int y, String from) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
this.from = from;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String from() {
|
||||||
|
return from;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int x() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int y() {
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return getClass().getSimpleName()+"("+x+", "+y+", from "+from+")";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,8 +7,10 @@ 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.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
@@ -59,10 +61,10 @@ 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";
|
||||||
private static final String EAST = "east";
|
public static final String EAST = "east";
|
||||||
private static final String WEST = "west";
|
public static final String WEST = "west";
|
||||||
private static final String SOUTH = "south";
|
public static final String SOUTH = "south";
|
||||||
private static final String NORTH = "north";
|
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>();
|
||||||
@@ -88,12 +90,26 @@ public class Plan {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String analyze() {
|
private String analyze() {
|
||||||
|
Vector<Route> routes = new Vector<Route>();
|
||||||
for (Block block : blocks) {
|
for (Block block : blocks) {
|
||||||
LOG.debug("searching routes from {}",block);
|
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 "analyze() not implemented, yet!";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Collection<Route> follow(Route route, Connector con) {
|
||||||
|
Tile tile = get(con.x(),con.y());
|
||||||
|
Vector<Route> results = new Vector<>();
|
||||||
|
if (tile == null) return results;
|
||||||
|
Tile added = route.add(tile instanceof Shadow ? ((Shadow)tile).overlay() : tile);
|
||||||
|
if (added instanceof Block) return List.of(route);
|
||||||
|
List<Connector> connectors = tile.connections(con.from());
|
||||||
|
List<Route>routes = route.multiply(connectors.size());
|
||||||
|
for (int i=0; i<connectors.size(); i++) results.addAll(follow(routes.get(i),connectors.get(i)));
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
public Tile get(int x, int y) {
|
public Tile get(int x, int y) {
|
||||||
HashMap<Integer, Tile> column = tiles.get(x);
|
HashMap<Integer, Tile> column = tiles.get(x);
|
||||||
return column == null ? null : column.get(y);
|
return column == null ? null : column.get(y);
|
||||||
|
|||||||
@@ -1,5 +1,40 @@
|
|||||||
package de.srsoftware.web4rail;
|
package de.srsoftware.web4rail;
|
||||||
|
|
||||||
public class Route {
|
import java.util.List;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
|
import de.srsoftware.web4rail.tiles.Block;
|
||||||
|
import de.srsoftware.web4rail.tiles.Tile;
|
||||||
|
|
||||||
|
public class Route {
|
||||||
|
|
||||||
|
private Vector<Tile> path;
|
||||||
|
|
||||||
|
public Tile add(Tile tile) {
|
||||||
|
path.add(tile);
|
||||||
|
return tile;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Route clone() {
|
||||||
|
Route clone = new Route();
|
||||||
|
clone.path = new Vector<>(path);
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Route> multiply(int size) {
|
||||||
|
Vector<Route> routes = new Vector<Route>();
|
||||||
|
for (int i=0; i<size; i++) routes.add(i==0 ? this : this.clone());
|
||||||
|
return routes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Route start(Block block) {
|
||||||
|
path = new Vector<Tile>();
|
||||||
|
path.add(block);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return getClass().getSimpleName()+"("+path+")";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Route;
|
import de.srsoftware.web4rail.Route;
|
||||||
import de.srsoftware.web4rail.tiles.StretchableTile;
|
|
||||||
|
|
||||||
public abstract class Block extends StretchableTile{
|
public abstract class Block extends StretchableTile{
|
||||||
public abstract Set<Route> routes();
|
public abstract Set<Route> routes();
|
||||||
|
|
||||||
|
public abstract List<Connector> startPoints();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,15 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
|
import de.srsoftware.web4rail.Plan;
|
||||||
import de.srsoftware.web4rail.Route;
|
import de.srsoftware.web4rail.Route;
|
||||||
|
|
||||||
public class BlockH extends Block{
|
public class BlockH extends Block{
|
||||||
@@ -45,10 +48,15 @@ public class BlockH extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<Route> routes() {
|
public Set<Route> routes() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> startPoints() {
|
||||||
|
return List.of(new Connector(x-1, y, Plan.EAST),new Connector(x+len(), y, Plan.WEST));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tag tag(Map<String, Object> replacements) throws IOException {
|
public Tag tag(Map<String, Object> replacements) throws IOException {
|
||||||
if (replacements == null) replacements = new HashMap<String, Object>();
|
if (replacements == null) replacements = new HashMap<String, Object>();
|
||||||
|
|||||||
@@ -2,12 +2,15 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
|
import de.srsoftware.web4rail.Plan;
|
||||||
import de.srsoftware.web4rail.Route;
|
import de.srsoftware.web4rail.Route;
|
||||||
|
|
||||||
public class BlockV extends Block{
|
public class BlockV extends Block{
|
||||||
@@ -49,6 +52,11 @@ public class BlockV extends Block{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> startPoints() {
|
||||||
|
return List.of(new Connector(x,y-1,Plan.SOUTH),new Connector(x,y+height(),Plan.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tag tag(Map<String, Object> replacements) throws IOException {
|
public Tag tag(Map<String, Object> replacements) throws IOException {
|
||||||
if (replacements == null) replacements = new HashMap<String, Object>();
|
if (replacements == null) replacements = new HashMap<String, Object>();
|
||||||
|
|||||||
9
src/main/java/de/srsoftware/web4rail/tiles/Cross.java
Normal file
9
src/main/java/de/srsoftware/web4rail/tiles/Cross.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
|
|
||||||
|
public abstract class Cross extends Tile {
|
||||||
|
public abstract List<Connector> offsetConnections(String from);
|
||||||
|
}
|
||||||
@@ -1,17 +1,43 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
|
import de.srsoftware.web4rail.Plan;
|
||||||
|
|
||||||
public class CrossH extends Tile{
|
public class CrossH extends Cross{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int len() {
|
public int len() {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> offsetConnections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tag tag(Map<String,Object> replacements) throws IOException {
|
public Tag tag(Map<String,Object> replacements) throws IOException {
|
||||||
return super.tag(replacements).size(200,100).attr("viewbox", "0 0 200 100");
|
return super.tag(replacements).size(200,100).attr("viewbox", "0 0 200 100");
|
||||||
|
|||||||
@@ -1,17 +1,24 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
|
|
||||||
public class CrossV extends Tile{
|
public class CrossV extends Cross{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int height() {
|
public int height() {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> offsetConnections(String from) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tag tag(Map<String,Object> replacements) throws IOException {
|
public Tag tag(Map<String,Object> replacements) throws IOException {
|
||||||
return super.tag(replacements).size(100,200).attr("viewbox", "0 0 100 200");
|
return super.tag(replacements).size(100,200).attr("viewbox", "0 0 100 200");
|
||||||
|
|||||||
@@ -1,6 +1,21 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 DiagES extends Tile{
|
public class DiagES extends Tile{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 DiagNE extends Tile{
|
public class DiagNE extends Tile{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 DiagSW extends Tile{
|
public class DiagSW extends Tile{
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,21 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 DiagWN extends Tile{
|
public class DiagWN extends Tile{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,19 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
|
|
||||||
public class Shadow extends Tile{
|
public class Shadow extends Tile{
|
||||||
|
|
||||||
private Tile overlay;
|
private Tile overlay;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String from) {
|
||||||
|
if (overlay instanceof StretchableTile) return overlay.connections(from);
|
||||||
|
if (overlay instanceof Cross) return ((Cross)overlay).offsetConnections(from);
|
||||||
|
return super.connections(from);
|
||||||
|
}
|
||||||
|
|
||||||
public Shadow(Tile overlay) {
|
public Shadow(Tile overlay) {
|
||||||
this.overlay = overlay;
|
this.overlay = overlay;
|
||||||
|
|||||||
@@ -1,7 +1,24 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 StraightH extends StretchableTile{
|
public class StraightH extends StretchableTile{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int len() {
|
public int len() {
|
||||||
return length;
|
return length;
|
||||||
|
|||||||
@@ -1,7 +1,24 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 StraightV extends StretchableTile{
|
public class StraightV extends StretchableTile{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int height() {
|
public int height() {
|
||||||
return length;
|
return length;
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ import java.io.IOException;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -16,6 +18,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import de.keawe.tools.translations.Translation;
|
import de.keawe.tools.translations.Translation;
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
import de.srsoftware.web4rail.Application;
|
import de.srsoftware.web4rail.Application;
|
||||||
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Window;
|
import de.srsoftware.web4rail.Window;
|
||||||
|
|
||||||
public abstract class Tile {
|
public abstract class Tile {
|
||||||
@@ -32,6 +35,11 @@ public abstract class Tile {
|
|||||||
public JSONObject config() {
|
public JSONObject config() {
|
||||||
return new JSONObject();
|
return new JSONObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Connector> connections(String from){
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void configure(JSONObject config) {}
|
public void configure(JSONObject config) {}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 TurnoutNW extends Turnout{
|
public class TurnoutNW extends Turnout{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,22 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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 TurnoutWN extends Turnout{
|
public class TurnoutWN extends Turnout{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Connector> connections(String 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));
|
||||||
|
}
|
||||||
|
return new Vector<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user