added contacts and signals
This commit is contained in:
@@ -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
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
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);
|
||||
}
|
||||
|
||||
public Shadow(Tile overlay) {
|
||||
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
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
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
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
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
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
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user