added contacts and signals
@@ -30,6 +30,8 @@ body{
|
||||
height: 60px !important;
|
||||
}
|
||||
|
||||
svg circle,
|
||||
svg line,
|
||||
svg polygon,
|
||||
svg rect{
|
||||
fill:#617de4;
|
||||
@@ -40,10 +42,15 @@ svg rect{
|
||||
svg text{
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
svg .block{
|
||||
fill: #ffffff;
|
||||
}
|
||||
|
||||
svg circle{
|
||||
fill: gray;
|
||||
}
|
||||
|
||||
.menu{
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
@@ -126,3 +133,11 @@ h2{
|
||||
#Eraser polygon{
|
||||
stroke: red;
|
||||
}
|
||||
|
||||
.sig_a{
|
||||
fill: red;
|
||||
}
|
||||
|
||||
.sig_b{
|
||||
fill: black;
|
||||
}
|
||||
|
||||
4
resources/svg/ContactH.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="%width%" height="100" viewbox="0 0 100 100">
|
||||
<rect x="0" y="35" width="100" height="30" />
|
||||
<circle cx="50" cy="50" r="25" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 145 B |
4
resources/svg/ContactV.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="100" height="" viewbox="0 0 100 100">
|
||||
<rect x="35" y="0" width="30" height="100" />
|
||||
<circle cx="50" cy="50" r="25" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 138 B |
7
resources/svg/SignalE.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg width="%width%" height="100" viewbox="0 0 100 100">
|
||||
<rect x="0" y="35" width="100" height="30" />
|
||||
<rect class="sig_a" x="5" y="5" height="20" width="20" />
|
||||
<rect class="sig_B" x="25" y="5" height="20" width="20" />
|
||||
<line x1="45" y1="15" x2="70" y2="15" />
|
||||
<line x1="70" y1="10" x2="70" y2="20" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 313 B |
7
resources/svg/SignalN.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg width="100" height="" viewbox="0 0 100 100">
|
||||
<rect x="35" y="0" width="30" height="100" />
|
||||
<rect class="sig_a" x="5" y="75" height="20" width="20" />
|
||||
<rect class="sig_B" x="5" y="55" height="20" width="20" />
|
||||
<line x1="15" y1="30" x2="15" y2="55" />
|
||||
<line x1="10" y1="30" x2="20" y2="30" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 307 B |
7
resources/svg/SignalS.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg width="100" height="" viewbox="0 0 100 100">
|
||||
<rect x="35" y="0" width="30" height="100" />
|
||||
<rect class="sig_a" x="75" y="5" height="20" width="20" />
|
||||
<rect class="sig_B" x="75" y="25" height="20" width="20" />
|
||||
<line x1="85" y1="45" x2="85" y2="70" />
|
||||
<line x1="80" y1="70" x2="90" y2="70" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 308 B |
7
resources/svg/SignalW.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg width="%width%" height="100" viewbox="0 0 100 100">
|
||||
<rect x="0" y="35" width="100" height="30" />
|
||||
<rect class="sig_a" x="75" y="75" height="20" width="20" />
|
||||
<rect class="sig_B" x="55" y="75" height="20" width="20" />
|
||||
<line x1="30" y1="85" x2="55" y2="85" />
|
||||
<line x1="30" y1="80" x2="30" y2="90" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 316 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="100" height="" viewbox="0 0 100 100">
|
||||
<svg width="100" height="" viewbox="0 0 100 %height%">
|
||||
<rect x="35" y="0" width="30" height="%height%" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 114 B |
@@ -23,6 +23,8 @@ import de.srsoftware.tools.Tag;
|
||||
import de.srsoftware.web4rail.tiles.Block;
|
||||
import de.srsoftware.web4rail.tiles.BlockH;
|
||||
import de.srsoftware.web4rail.tiles.BlockV;
|
||||
import de.srsoftware.web4rail.tiles.ContactH;
|
||||
import de.srsoftware.web4rail.tiles.ContactV;
|
||||
import de.srsoftware.web4rail.tiles.CrossH;
|
||||
import de.srsoftware.web4rail.tiles.CrossV;
|
||||
import de.srsoftware.web4rail.tiles.DiagES;
|
||||
@@ -35,6 +37,10 @@ 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.SignalE;
|
||||
import de.srsoftware.web4rail.tiles.SignalN;
|
||||
import de.srsoftware.web4rail.tiles.SignalS;
|
||||
import de.srsoftware.web4rail.tiles.SignalW;
|
||||
import de.srsoftware.web4rail.tiles.StraightH;
|
||||
import de.srsoftware.web4rail.tiles.StraightV;
|
||||
import de.srsoftware.web4rail.tiles.Tile;
|
||||
@@ -311,6 +317,12 @@ public class Plan {
|
||||
StringBuffer tiles = new StringBuffer();
|
||||
tiles.append(new StraightH().tag(null));
|
||||
tiles.append(new StraightV().tag(null));
|
||||
tiles.append(new ContactH().tag(null));
|
||||
tiles.append(new ContactV().tag(null));
|
||||
tiles.append(new SignalW().tag(null));
|
||||
tiles.append(new SignalE().tag(null));
|
||||
tiles.append(new SignalS().tag(null));
|
||||
tiles.append(new SignalN().tag(null));
|
||||
tiles.append(new BlockH().tag(null));
|
||||
tiles.append(new BlockV().tag(null));
|
||||
tiles.append(new DiagES().tag(null));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class Contact {
|
||||
public abstract class Contact extends Tile{
|
||||
|
||||
}
|
||||
|
||||
20
src/main/java/de/srsoftware/web4rail/tiles/ContactH.java
Normal file
@@ -0,0 +1,20 @@
|
||||
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 ContactH extends Contact {
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.WEST:
|
||||
return List.of(new Connector(x+1,y,from));
|
||||
case Plan.EAST:
|
||||
return List.of(new Connector(x-1,y,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
21
src/main/java/de/srsoftware/web4rail/tiles/ContactV.java
Normal file
@@ -0,0 +1,21 @@
|
||||
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 ContactV extends Contact {
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.NORTH:
|
||||
return List.of(new Connector(x,y+1,from));
|
||||
case Plan.SOUTH:
|
||||
return List.of(new Connector(x,y-1,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ public class Shadow extends Tile{
|
||||
|
||||
public Shadow(Tile overlay) {
|
||||
this.overlay = overlay;
|
||||
overlay.addShadow(this);
|
||||
}
|
||||
|
||||
public Tile overlay() {
|
||||
|
||||
9
src/main/java/de/srsoftware/web4rail/tiles/Signal.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public abstract class Signal extends Tile{
|
||||
|
||||
public Signal() {
|
||||
super();
|
||||
classes.add("signal");
|
||||
}
|
||||
}
|
||||
20
src/main/java/de/srsoftware/web4rail/tiles/SignalE.java
Normal file
@@ -0,0 +1,20 @@
|
||||
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 SignalE extends Signal{
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.WEST:
|
||||
return List.of(new Connector(x+1,y,from));
|
||||
case Plan.EAST:
|
||||
return List.of(new Connector(x-1,y,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
21
src/main/java/de/srsoftware/web4rail/tiles/SignalN.java
Normal file
@@ -0,0 +1,21 @@
|
||||
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 SignalN extends Signal {
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.NORTH:
|
||||
return List.of(new Connector(x,y+1,from));
|
||||
case Plan.SOUTH:
|
||||
return List.of(new Connector(x,y-1,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
21
src/main/java/de/srsoftware/web4rail/tiles/SignalS.java
Normal file
@@ -0,0 +1,21 @@
|
||||
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 SignalS extends Signal{
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.NORTH:
|
||||
return List.of(new Connector(x,y+1,from));
|
||||
case Plan.SOUTH:
|
||||
return List.of(new Connector(x,y-1,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
21
src/main/java/de/srsoftware/web4rail/tiles/SignalV.java
Normal file
@@ -0,0 +1,21 @@
|
||||
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 SignalV extends Signal {
|
||||
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.NORTH:
|
||||
return List.of(new Connector(x,y+1,from));
|
||||
case Plan.SOUTH:
|
||||
return List.of(new Connector(x,y-1,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
20
src/main/java/de/srsoftware/web4rail/tiles/SignalW.java
Normal file
@@ -0,0 +1,20 @@
|
||||
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 SignalW extends Signal{
|
||||
@Override
|
||||
public List<Connector> connections(String from) {
|
||||
switch (from) {
|
||||
case Plan.WEST:
|
||||
return List.of(new Connector(x+1,y,from));
|
||||
case Plan.EAST:
|
||||
return List.of(new Connector(x-1,y,from));
|
||||
}
|
||||
return new Vector<>();
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ public abstract class Tile {
|
||||
|
||||
protected int x = -1,y = -1;
|
||||
protected HashSet<String> classes = new HashSet<String>();
|
||||
protected HashSet<Shadow> shadows = new HashSet<Shadow>();
|
||||
protected static Logger LOG = LoggerFactory.getLogger(Tile.class);
|
||||
|
||||
public Tile() {
|
||||
@@ -148,4 +149,8 @@ public abstract class Tile {
|
||||
LOG.debug("{}.update({})",getClass().getSimpleName(),params);
|
||||
return this;
|
||||
}
|
||||
|
||||
public void addShadow(Shadow shadow) {
|
||||
shadows.add(shadow);
|
||||
}
|
||||
}
|
||||
|
||||