Browse Source

added crossing tile

lookup-tables
Stephan Richter 5 years ago
parent
commit
1bfcc3da5f
  1. 4
      resources/svg/CrossPlus.svg
  2. 2
      src/main/java/de/srsoftware/web4rail/Plan.java
  3. 34
      src/main/java/de/srsoftware/web4rail/tiles/CrossPlus.java

4
resources/svg/CrossPlus.svg

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<svg width="%width%" height="100" viewbox="0 0 %width% 100">
<rect x="0" y="35" width="100" height="30" />
<rect x="35" y="0" width="30" height="100" />
</svg>

After

Width:  |  Height:  |  Size: 162 B

2
src/main/java/de/srsoftware/web4rail/Plan.java

@ -44,6 +44,7 @@ import de.srsoftware.web4rail.tiles.Contact; @@ -44,6 +44,7 @@ import de.srsoftware.web4rail.tiles.Contact;
import de.srsoftware.web4rail.tiles.ContactH;
import de.srsoftware.web4rail.tiles.ContactV;
import de.srsoftware.web4rail.tiles.CrossH;
import de.srsoftware.web4rail.tiles.CrossPlus;
import de.srsoftware.web4rail.tiles.CrossV;
import de.srsoftware.web4rail.tiles.DiagES;
import de.srsoftware.web4rail.tiles.DiagNE;
@ -857,6 +858,7 @@ public class Plan extends BaseClass{ @@ -857,6 +858,7 @@ public class Plan extends BaseClass{
Tag tiles = new Tag("div").clazz("list").content("");
new CrossV().tag(null).addTo(tiles);
new CrossH().tag(null).addTo(tiles);
new CrossPlus().tag(null).addTo(tiles);
new StraightH().tag(null).addTo(tiles);
new StraightV().tag(null).addTo(tiles);
new ContactH().tag(null).addTo(tiles);

34
src/main/java/de/srsoftware/web4rail/tiles/CrossPlus.java

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
package de.srsoftware.web4rail.tiles;
import java.util.HashMap;
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 CrossPlus extends Tile{
@Override
public Map<Connector, State> connections(Direction from) {
if (isNull(from) || oneWay == from) return new HashMap<>();
switch (from) {
case WEST:
return Map.of(new Connector(x+width(),y,Direction.WEST),State.UNDEF);
case EAST:
return Map.of(new Connector(x-1,y,Direction.EAST),State.UNDEF);
case NORTH:
return Map.of(new Connector(x,y+height(),Direction.NORTH),State.UNDEF);
case SOUTH:
return Map.of(new Connector(x,y-1,Direction.SOUTH),State.UNDEF);
default:
return new HashMap<>();
}
}
@Override
public List<Direction> possibleDirections() {
return List.of(Direction.EAST,Direction.WEST,Direction.NORTH,Direction.SOUTH);
}
}
Loading…
Cancel
Save