diff --git a/resources/svg/Turnout3E.svg b/resources/svg/Turnout3E.svg
new file mode 100644
index 0000000..22e040b
--- /dev/null
+++ b/resources/svg/Turnout3E.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java
index 1d0566e..1e54ecb 100644
--- a/src/main/java/de/srsoftware/web4rail/Plan.java
+++ b/src/main/java/de/srsoftware/web4rail/Plan.java
@@ -51,6 +51,7 @@ import de.srsoftware.web4rail.tiles.StraightV;
import de.srsoftware.web4rail.tiles.Tile;
import de.srsoftware.web4rail.tiles.Turnout;
import de.srsoftware.web4rail.tiles.Turnout.State;
+import de.srsoftware.web4rail.tiles.Turnout3E;
import de.srsoftware.web4rail.tiles.TurnoutLE;
import de.srsoftware.web4rail.tiles.TurnoutLN;
import de.srsoftware.web4rail.tiles.TurnoutLS;
@@ -276,10 +277,10 @@ public class Plan {
private Tag moveMenu() {
Tag tileMenu = new Tag("div").clazz("move").title(t("Move tiles")).content(t("↹"));
StringBuffer tiles = new StringBuffer();
- tiles.append(new Tag("div").id("west").title(t("Move west")).content("🢀"));
- tiles.append(new Tag("div").id("east").title(t("Move east")).content("🢂"));
- tiles.append(new Tag("div").id("north").title(t("Move north")).content("🢁"));
- tiles.append(new Tag("div").id("south").title(t("Move south")).content("🢃"));
+ tiles.append(new Tag("div").id("west").title(t("Move west")).content("↤"));
+ tiles.append(new Tag("div").id("east").title(t("Move east")).content("↦"));
+ tiles.append(new Tag("div").id("north").title(t("Move north")).content("↥"));
+ tiles.append(new Tag("div").id("south").title(t("Move south")).content("↧"));
return new Tag("div").clazz("list").content(tiles.toString()).addTo(tileMenu);
}
@@ -510,6 +511,7 @@ public class Plan {
tiles.append(new TurnoutLS().tag(null));
tiles.append(new TurnoutLW().tag(null));
tiles.append(new TurnoutLE().tag(null));
+ tiles.append(new Turnout3E().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/tiles/Turnout3E.java b/src/main/java/de/srsoftware/web4rail/tiles/Turnout3E.java
new file mode 100644
index 0000000..0dfaa48
--- /dev/null
+++ b/src/main/java/de/srsoftware/web4rail/tiles/Turnout3E.java
@@ -0,0 +1,29 @@
+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 Turnout3E 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,
+ new Connector(x,y-1,Direction.SOUTH),State.RIGHT);
+ case NORTH:
+ return Map.of(new Connector(x+1,y,Direction.WEST),State.RIGHT);
+ 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<>();
+ }
+ }
+}