added contacts and signals

This commit is contained in:
Stephan Richter
2020-09-16 09:48:31 +02:00
parent 94579ae8a8
commit a8156d0626
20 changed files with 226 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
package de.srsoftware.web4rail.tiles;
public class Contact {
public abstract class Contact extends Tile{
}

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

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

View File

@@ -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() {

View File

@@ -0,0 +1,9 @@
package de.srsoftware.web4rail.tiles;
public abstract class Signal extends Tile{
public Signal() {
super();
classes.add("signal");
}
}

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

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

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

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

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

View File

@@ -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);
}
}