From 3c5d1161a768bc100705836fe9e6d026545ed0bb Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 16 Sep 2020 19:29:05 +0200 Subject: [PATCH] renamed turnouts, worked on route discovery --- resources/css/style.css | 2 +- .../svg/{TurnoutES.svg => TurnoutLE.svg} | 0 .../svg/{TurnoutNE.svg => TurnoutLN.svg} | 0 .../svg/{TurnoutSW.svg => TurnoutLS.svg} | 0 .../svg/{TurnoutWN.svg => TurnoutLW.svg} | 0 .../svg/{TurnoutEN.svg => TurnoutRE.svg} | 0 .../svg/{TurnoutNW.svg => TurnoutRN.svg} | 0 .../svg/{TurnoutSE.svg => TurnoutRS.svg} | 0 .../svg/{TurnoutWS.svg => TurnoutRW.svg} | 0 .../java/de/srsoftware/web4rail/Plan.java | 69 +++++++++++-------- .../java/de/srsoftware/web4rail/Route.java | 36 ++++++++-- .../srsoftware/web4rail/tiles/ContactH.java | 13 ++-- .../srsoftware/web4rail/tiles/ContactV.java | 13 ++-- .../de/srsoftware/web4rail/tiles/Cross.java | 4 +- .../de/srsoftware/web4rail/tiles/CrossH.java | 20 +++--- .../de/srsoftware/web4rail/tiles/CrossV.java | 4 +- .../de/srsoftware/web4rail/tiles/DiagES.java | 13 ++-- .../de/srsoftware/web4rail/tiles/DiagNE.java | 13 ++-- .../de/srsoftware/web4rail/tiles/DiagSW.java | 13 ++-- .../de/srsoftware/web4rail/tiles/DiagWN.java | 13 ++-- .../de/srsoftware/web4rail/tiles/Shadow.java | 5 +- .../de/srsoftware/web4rail/tiles/SignalE.java | 13 ++-- .../de/srsoftware/web4rail/tiles/SignalN.java | 13 ++-- .../de/srsoftware/web4rail/tiles/SignalS.java | 13 ++-- .../de/srsoftware/web4rail/tiles/SignalW.java | 13 ++-- .../srsoftware/web4rail/tiles/StraightH.java | 13 ++-- .../srsoftware/web4rail/tiles/StraightV.java | 13 ++-- .../de/srsoftware/web4rail/tiles/Tile.java | 4 +- .../de/srsoftware/web4rail/tiles/Turnout.java | 4 +- .../srsoftware/web4rail/tiles/TurnoutEN.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutES.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutLE.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutLN.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutLS.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutLW.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutNE.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutNW.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutRE.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutRN.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutRS.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutRW.java | 24 +++++++ .../srsoftware/web4rail/tiles/TurnoutSE.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutSW.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutWN.java | 23 ------- .../srsoftware/web4rail/tiles/TurnoutWS.java | 23 ------- 45 files changed, 370 insertions(+), 310 deletions(-) rename resources/svg/{TurnoutES.svg => TurnoutLE.svg} (100%) rename resources/svg/{TurnoutNE.svg => TurnoutLN.svg} (100%) rename resources/svg/{TurnoutSW.svg => TurnoutLS.svg} (100%) rename resources/svg/{TurnoutWN.svg => TurnoutLW.svg} (100%) rename resources/svg/{TurnoutEN.svg => TurnoutRE.svg} (100%) rename resources/svg/{TurnoutNW.svg => TurnoutRN.svg} (100%) rename resources/svg/{TurnoutSE.svg => TurnoutRS.svg} (100%) rename resources/svg/{TurnoutWS.svg => TurnoutRW.svg} (100%) delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutLE.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutLN.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutLS.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutLW.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutRE.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutRN.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutRS.java create mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutRW.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java delete mode 100644 src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java diff --git a/resources/css/style.css b/resources/css/style.css index 4fb2089..f847940 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -107,7 +107,7 @@ svg circle{ .window{ position: fixed; - top: 10px; + top: 50%; bottom: 10px; left: 10px; right: 10px; diff --git a/resources/svg/TurnoutES.svg b/resources/svg/TurnoutLE.svg similarity index 100% rename from resources/svg/TurnoutES.svg rename to resources/svg/TurnoutLE.svg diff --git a/resources/svg/TurnoutNE.svg b/resources/svg/TurnoutLN.svg similarity index 100% rename from resources/svg/TurnoutNE.svg rename to resources/svg/TurnoutLN.svg diff --git a/resources/svg/TurnoutSW.svg b/resources/svg/TurnoutLS.svg similarity index 100% rename from resources/svg/TurnoutSW.svg rename to resources/svg/TurnoutLS.svg diff --git a/resources/svg/TurnoutWN.svg b/resources/svg/TurnoutLW.svg similarity index 100% rename from resources/svg/TurnoutWN.svg rename to resources/svg/TurnoutLW.svg diff --git a/resources/svg/TurnoutEN.svg b/resources/svg/TurnoutRE.svg similarity index 100% rename from resources/svg/TurnoutEN.svg rename to resources/svg/TurnoutRE.svg diff --git a/resources/svg/TurnoutNW.svg b/resources/svg/TurnoutRN.svg similarity index 100% rename from resources/svg/TurnoutNW.svg rename to resources/svg/TurnoutRN.svg diff --git a/resources/svg/TurnoutSE.svg b/resources/svg/TurnoutRS.svg similarity index 100% rename from resources/svg/TurnoutSE.svg rename to resources/svg/TurnoutRS.svg diff --git a/resources/svg/TurnoutWS.svg b/resources/svg/TurnoutRW.svg similarity index 100% rename from resources/svg/TurnoutWS.svg rename to resources/svg/TurnoutRW.svg diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java index 41ba46c..aa3b69d 100644 --- a/src/main/java/de/srsoftware/web4rail/Plan.java +++ b/src/main/java/de/srsoftware/web4rail/Plan.java @@ -12,6 +12,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.Vector; @@ -38,7 +39,6 @@ import de.srsoftware.web4rail.tiles.EndS; import de.srsoftware.web4rail.tiles.EndW; import de.srsoftware.web4rail.tiles.Eraser; import de.srsoftware.web4rail.tiles.Shadow; -import de.srsoftware.web4rail.tiles.Signal; import de.srsoftware.web4rail.tiles.SignalE; import de.srsoftware.web4rail.tiles.SignalN; import de.srsoftware.web4rail.tiles.SignalS; @@ -46,14 +46,15 @@ import de.srsoftware.web4rail.tiles.SignalW; import de.srsoftware.web4rail.tiles.StraightH; import de.srsoftware.web4rail.tiles.StraightV; import de.srsoftware.web4rail.tiles.Tile; -import de.srsoftware.web4rail.tiles.TurnoutEN; -import de.srsoftware.web4rail.tiles.TurnoutES; -import de.srsoftware.web4rail.tiles.TurnoutNE; -import de.srsoftware.web4rail.tiles.TurnoutNW; -import de.srsoftware.web4rail.tiles.TurnoutSE; -import de.srsoftware.web4rail.tiles.TurnoutSW; -import de.srsoftware.web4rail.tiles.TurnoutWN; -import de.srsoftware.web4rail.tiles.TurnoutWS; +import de.srsoftware.web4rail.tiles.Turnout.State; +import de.srsoftware.web4rail.tiles.TurnoutLE; +import de.srsoftware.web4rail.tiles.TurnoutLN; +import de.srsoftware.web4rail.tiles.TurnoutLS; +import de.srsoftware.web4rail.tiles.TurnoutLW; +import de.srsoftware.web4rail.tiles.TurnoutRE; +import de.srsoftware.web4rail.tiles.TurnoutRN; +import de.srsoftware.web4rail.tiles.TurnoutRS; +import de.srsoftware.web4rail.tiles.TurnoutRW; public class Plan { public enum Direction{ @@ -102,6 +103,7 @@ public class Plan { private String analyze() { Vector routes = new Vector(); for (Block block : blocks) { + block.routes().clear(); for (Connector con : block.startPoints()) routes.addAll(follow(new Route().start(block),con)); } this.routes.clear(); @@ -112,19 +114,28 @@ public class Plan { return t("Found {} routes.",routes.size()); } - private Collection follow(Route route, Connector con) { - Tile tile = get(con.x,con.y); + private Collection follow(Route route, Connector connector) { + Tile tile = get(connector.x,connector.y); Vector results = new Vector<>(); if (tile == null) return results; - Tile added = route.add(tile instanceof Shadow ? ((Shadow)tile).overlay() : tile); - if (added instanceof Signal) { - Signal signal = (Signal) added; - if (signal.isAffectedFrom(con.from)) route.addSignal(signal); - } - if (added instanceof Block) return List.of(route); - List connectors = tile.connections(con.from); + Tile addedTile = route.add(tile,connector.from); + if (addedTile instanceof Block) return List.of(route); + Map connectors = tile.connections(connector.from); Listroutes = route.multiply(connectors.size()); - for (int i=0; i1) LOG.debug("SPLITTING @ {}",tile); + + for (Entry entry: connectors.entrySet()) { + route = routes.remove(0); + connector = entry.getKey(); + State state = entry.getValue(); + route.setLast(state); + if (connectors.size()>1) { + LOG.debug("RESUMING from {}",tile); + } + results.addAll(follow(route,connector)); + } + return results; } @@ -267,7 +278,9 @@ public class Plan { } return t("Unknown action: {}",action); } catch (Exception e) { - return e.getMessage(); + String msg = e.getMessage(); + if (msg == null || msg.isEmpty()) msg = t("An unknown error occured!"); + return msg; } } @@ -363,14 +376,14 @@ public class Plan { tiles.append(new EndW().tag(null)); tiles.append(new EndN().tag(null)); tiles.append(new EndS().tag(null)); - tiles.append(new TurnoutSW().tag(null)); - tiles.append(new TurnoutSE().tag(null)); - tiles.append(new TurnoutNW().tag(null)); - tiles.append(new TurnoutNE().tag(null)); - tiles.append(new TurnoutES().tag(null)); - tiles.append(new TurnoutEN().tag(null)); - tiles.append(new TurnoutWS().tag(null)); - tiles.append(new TurnoutWN().tag(null)); + tiles.append(new TurnoutRS().tag(null)); + tiles.append(new TurnoutRN().tag(null)); + tiles.append(new TurnoutRW().tag(null)); + tiles.append(new TurnoutRE().tag(null)); + tiles.append(new TurnoutLN().tag(null)); + tiles.append(new TurnoutLS().tag(null)); + tiles.append(new TurnoutLW().tag(null)); + tiles.append(new TurnoutLE().tag(null)); tiles.append(new CrossH().tag(null)); tiles.append(new CrossV().tag(null)); tiles.append(new Eraser().tag(null)); diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index ced191f..3165faa 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -1,38 +1,47 @@ package de.srsoftware.web4rail; +import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; import java.util.Vector; import de.keawe.tools.translations.Translation; import de.srsoftware.tools.Tag; +import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Contact; +import de.srsoftware.web4rail.tiles.Shadow; import de.srsoftware.web4rail.tiles.Signal; import de.srsoftware.web4rail.tiles.Tile; +import de.srsoftware.web4rail.tiles.Turnout; +import de.srsoftware.web4rail.tiles.Turnout.State; public class Route { private Vector path; private Vector signals; private Vector contacts; + private HashMap turnouts; private String id; private String name; - public Tile add(Tile tile) { + public Tile add(Tile tile, Direction direrction) { + if (tile instanceof Shadow) tile = ((Shadow)tile).overlay(); path.add(tile); if (tile instanceof Contact) contacts.add((Contact) tile); + if (tile instanceof Signal) { + Signal signal = (Signal) tile; + if (signal.isAffectedFrom(direrction)) signals.add(signal); + } + return tile; } - - public Route addSignal(Signal signal) { - signals.add(signal); - return this; - } protected Route clone() { Route clone = new Route(); clone.contacts = new Vector(contacts); clone.signals = new Vector(signals); + clone.turnouts = new HashMap<>(turnouts); clone.path = new Vector<>(path); return clone; } @@ -68,14 +77,22 @@ public class Route { public Window properties() { Window win = new Window("route-properties",t("Properties of {})",this)); + new Tag("h4").content(t("Signals")).addTo(win); Tag list = new Tag("ul"); for (Signal s : signals) new Tag("li").content(s.toString()).addTo(list); list.addTo(win); + new Tag("h4").content(t("Contacts")).addTo(win); list = new Tag("ul"); for (Contact c : contacts) new Tag("li").content(c.toString()).addTo(list); list.addTo(win); + + new Tag("h4").content(t("Turnouts")).addTo(win); + list = new Tag("ul"); + for (Entry entry : turnouts.entrySet()) new Tag("li").content(entry.getKey()+" : "+entry.getValue()).addTo(list); + list.addTo(win); + return win; } @@ -83,6 +100,7 @@ public class Route { contacts = new Vector(); signals = new Vector(); path = new Vector(); + turnouts = new HashMap<>(); path.add(block); return this; } @@ -99,4 +117,10 @@ public class Route { protected static String t(String txt, Object...fills) { return Translation.get(Application.class, txt, fills); } + + public void setLast(State state) { + if (state == null || state == State.UNDEF) return; + Tile lastTile = path.lastElement(); + if (lastTile instanceof Turnout) turnouts.put((Turnout) lastTile,state); + } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java b/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java index 59fed27..efc167e 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java @@ -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 connections(Direction from) { + public Map 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<>(); } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java b/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java index e0146a3..499f77e 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java @@ -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 connections(Direction from) { + public Map 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<>(); } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Cross.java b/src/main/java/de/srsoftware/web4rail/tiles/Cross.java index 1ee6e94..b679cca 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Cross.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Cross.java @@ -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 offsetConnections(Direction from); + public abstract Map offsetConnections(Direction from); } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java b/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java index ce392f0..6b9828c 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java @@ -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 connections(Direction from) { + public Map 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 offsetConnections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java b/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java index e9ef6fb..5c1d808 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java @@ -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 offsetConnections(Direction from) { + public Map offsetConnections(Direction from) { return null; } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java index e38eb1d..b361d33 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java @@ -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 connections(Direction from) { + public Map 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(); + return new HashMap<>(); } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java index e0eb28d..a8525c3 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java @@ -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 connections(Direction from) { + public Map 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<>(); } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java index e295cfc..24fa300 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java @@ -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 connections(Direction from) { + public Map 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<>(); } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java index d0c4b94..60000c4 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java @@ -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 connections(Direction from) { + public Map 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<>(); } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java b/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java index 4f0b45e..6bcc2f2 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java @@ -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 connections(Direction from) { + public Map connections(Direction from) { if (overlay instanceof StretchableTile) return overlay.connections(from); if (overlay instanceof Cross) return ((Cross)overlay).offsetConnections(from); return super.connections(from); diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java index 01d3bc4..d28534f 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java @@ -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 connections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java index 15bab97..82dc02d 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java @@ -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 connections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java index 9bd65f9..86ee814 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java @@ -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 connections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java index 3199df7..5bacd94 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java @@ -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 connections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java b/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java index d8c95c2..5e92532 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java @@ -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 connections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java b/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java index c4fec2f..593948a 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java @@ -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 connections(Direction from) { + public Map 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<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java index ac6d050..6bbbaed 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java @@ -42,8 +42,8 @@ public abstract class Tile { return new JSONObject(); } - public List connections(Direction from){ - return new Vector<>(); + public Map connections(Direction from){ + return new HashMap<>(); } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java b/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java index ff80018..0bf6e12 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java @@ -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() { diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java deleted file mode 100644 index 0b7eac1..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java deleted file mode 100644 index c117c32..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLE.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLE.java new file mode 100644 index 0000000..480d3b0 --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLE.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLN.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLN.java new file mode 100644 index 0000000..541995b --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLN.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLS.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLS.java new file mode 100644 index 0000000..d24205a --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLS.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLW.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLW.java new file mode 100644 index 0000000..3376006 --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutLW.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java deleted file mode 100644 index 6c08464..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java deleted file mode 100644 index 4dd190d..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRE.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRE.java new file mode 100644 index 0000000..3108e1e --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRE.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRN.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRN.java new file mode 100644 index 0000000..76dfa2d --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRN.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRS.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRS.java new file mode 100644 index 0000000..c2dfbfb --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRS.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRW.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRW.java new file mode 100644 index 0000000..f139be5 --- /dev/null +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutRW.java @@ -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 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<>(); + } + } +} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java deleted file mode 100644 index e29034a..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java deleted file mode 100644 index f9f1c3b..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java deleted file mode 100644 index 947c433..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java +++ /dev/null @@ -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 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<>(); - } - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java deleted file mode 100644 index 055c2a6..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java +++ /dev/null @@ -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 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<>(); - } - } -}