added contacts and signals
@@ -30,6 +30,8 @@ body{
|
|||||||
height: 60px !important;
|
height: 60px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
svg circle,
|
||||||
|
svg line,
|
||||||
svg polygon,
|
svg polygon,
|
||||||
svg rect{
|
svg rect{
|
||||||
fill:#617de4;
|
fill:#617de4;
|
||||||
@@ -40,10 +42,15 @@ svg rect{
|
|||||||
svg text{
|
svg text{
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
svg .block{
|
svg .block{
|
||||||
fill: #ffffff;
|
fill: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
svg circle{
|
||||||
|
fill: gray;
|
||||||
|
}
|
||||||
|
|
||||||
.menu{
|
.menu{
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -125,4 +132,12 @@ h2{
|
|||||||
|
|
||||||
#Eraser polygon{
|
#Eraser polygon{
|
||||||
stroke: red;
|
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%" />
|
<rect x="35" y="0" width="30" height="%height%" />
|
||||||
</svg>
|
</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.Block;
|
||||||
import de.srsoftware.web4rail.tiles.BlockH;
|
import de.srsoftware.web4rail.tiles.BlockH;
|
||||||
import de.srsoftware.web4rail.tiles.BlockV;
|
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.CrossH;
|
||||||
import de.srsoftware.web4rail.tiles.CrossV;
|
import de.srsoftware.web4rail.tiles.CrossV;
|
||||||
import de.srsoftware.web4rail.tiles.DiagES;
|
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.EndW;
|
||||||
import de.srsoftware.web4rail.tiles.Eraser;
|
import de.srsoftware.web4rail.tiles.Eraser;
|
||||||
import de.srsoftware.web4rail.tiles.Shadow;
|
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.StraightH;
|
||||||
import de.srsoftware.web4rail.tiles.StraightV;
|
import de.srsoftware.web4rail.tiles.StraightV;
|
||||||
import de.srsoftware.web4rail.tiles.Tile;
|
import de.srsoftware.web4rail.tiles.Tile;
|
||||||
@@ -311,6 +317,12 @@ public class Plan {
|
|||||||
StringBuffer tiles = new StringBuffer();
|
StringBuffer tiles = new StringBuffer();
|
||||||
tiles.append(new StraightH().tag(null));
|
tiles.append(new StraightH().tag(null));
|
||||||
tiles.append(new StraightV().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 BlockH().tag(null));
|
||||||
tiles.append(new BlockV().tag(null));
|
tiles.append(new BlockV().tag(null));
|
||||||
tiles.append(new DiagES().tag(null));
|
tiles.append(new DiagES().tag(null));
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
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<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,8 +15,9 @@ public class Shadow extends Tile{
|
|||||||
return super.connections(from);
|
return super.connections(from);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Shadow(Tile overlay) {
|
public Shadow(Tile overlay) {
|
||||||
this.overlay = overlay;
|
this.overlay = overlay;
|
||||||
|
overlay.addShadow(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tile overlay() {
|
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 int x = -1,y = -1;
|
||||||
protected HashSet<String> classes = new HashSet<String>();
|
protected HashSet<String> classes = new HashSet<String>();
|
||||||
|
protected HashSet<Shadow> shadows = new HashSet<Shadow>();
|
||||||
protected static Logger LOG = LoggerFactory.getLogger(Tile.class);
|
protected static Logger LOG = LoggerFactory.getLogger(Tile.class);
|
||||||
|
|
||||||
public Tile() {
|
public Tile() {
|
||||||
@@ -148,4 +149,8 @@ public abstract class Tile {
|
|||||||
LOG.debug("{}.update({})",getClass().getSimpleName(),params);
|
LOG.debug("{}.update({})",getClass().getSimpleName(),params);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addShadow(Shadow shadow) {
|
||||||
|
shadows.add(shadow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||