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