started re-implementing using java
This commit is contained in:
5
src/main/java/de/srsoftware/web4rail/tiles/BlockH.java
Normal file
5
src/main/java/de/srsoftware/web4rail/tiles/BlockH.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class BlockH extends StraightH{
|
||||
private Contact north,center,south;
|
||||
}
|
||||
5
src/main/java/de/srsoftware/web4rail/tiles/BlockV.java
Normal file
5
src/main/java/de/srsoftware/web4rail/tiles/BlockV.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class BlockV extends StraightV{
|
||||
Contact west,center,east;
|
||||
}
|
||||
5
src/main/java/de/srsoftware/web4rail/tiles/Contact.java
Normal file
5
src/main/java/de/srsoftware/web4rail/tiles/Contact.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class Contact {
|
||||
|
||||
}
|
||||
16
src/main/java/de/srsoftware/web4rail/tiles/DiagES.java
Normal file
16
src/main/java/de/srsoftware/web4rail/tiles/DiagES.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class DiagES extends Tile{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
switch (direction) {
|
||||
case SOUTH:
|
||||
case EAST:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
16
src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java
Normal file
16
src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class DiagNE extends Tile{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
switch (direction) {
|
||||
case NORTH:
|
||||
case EAST:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
16
src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java
Normal file
16
src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class DiagSW extends Tile{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
switch (direction) {
|
||||
case SOUTH:
|
||||
case WEST:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
16
src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java
Normal file
16
src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class DiagWN extends Tile{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
switch (direction) {
|
||||
case NORTH:
|
||||
case WEST:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
14
src/main/java/de/srsoftware/web4rail/tiles/StraightH.java
Normal file
14
src/main/java/de/srsoftware/web4rail/tiles/StraightH.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class StraightH extends StretchableTile{
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
switch (direction) {
|
||||
case EAST:
|
||||
case WEST:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
15
src/main/java/de/srsoftware/web4rail/tiles/StraightV.java
Normal file
15
src/main/java/de/srsoftware/web4rail/tiles/StraightV.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class StraightV extends StretchableTile{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
switch (direction) {
|
||||
case NORTH:
|
||||
case SOUTH:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public abstract class StretchableTile extends Tile {
|
||||
public int length = 1;
|
||||
}
|
||||
55
src/main/java/de/srsoftware/web4rail/tiles/Tile.java
Normal file
55
src/main/java/de/srsoftware/web4rail/tiles/Tile.java
Normal file
@@ -0,0 +1,55 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public abstract class Tile {
|
||||
|
||||
public enum Direction{
|
||||
NORTH,SOUTH,EAST,WEST;
|
||||
}
|
||||
private class Position {
|
||||
int x,y;
|
||||
}
|
||||
|
||||
Position position;
|
||||
private HashMap<Direction,Tile> neighbours = new HashMap();
|
||||
|
||||
public abstract boolean hasConnector(Direction direction);
|
||||
|
||||
public boolean connect(Direction direction, Tile neighbour) {
|
||||
if (hasConnector(direction)) {
|
||||
switch (direction) {
|
||||
case NORTH:
|
||||
neighbour.neighbours.put(Direction.SOUTH, this);
|
||||
neighbour.position.x = position.x;
|
||||
neighbour.position.y = position.y-1;
|
||||
case SOUTH:
|
||||
neighbour.neighbours.put(Direction.NORTH, this);
|
||||
neighbour.position.x = position.x;
|
||||
neighbour.position.y = position.y+1;
|
||||
case EAST:
|
||||
neighbour.neighbours.put(Direction.WEST, this);
|
||||
neighbour.position.x = position.x+1;
|
||||
neighbour.position.y = position.y;
|
||||
case WEST:
|
||||
neighbour.neighbours.put(Direction.EAST, this);
|
||||
neighbour.position.x = position.x-1;
|
||||
neighbour.position.y = position.y;
|
||||
}
|
||||
neighbours.put(direction, neighbour);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Tile neighbour(Direction direction) {
|
||||
return neighbours.get(direction);
|
||||
}
|
||||
|
||||
public Tile position(int x, int y) {
|
||||
position.x = x;
|
||||
position.y = y;
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
11
src/main/java/de/srsoftware/web4rail/tiles/Turnout.java
Normal file
11
src/main/java/de/srsoftware/web4rail/tiles/Turnout.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public abstract class Turnout extends Tile {
|
||||
|
||||
private boolean straight = true;
|
||||
|
||||
public boolean toggle() {
|
||||
straight = !straight;
|
||||
return straight;
|
||||
}
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutEN extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.SOUTH;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutES extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.NORTH;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutNE extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.WEST;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutNW extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.EAST;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutSE extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.WEST;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutSW extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.EAST;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutWN extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.SOUTH;
|
||||
}
|
||||
|
||||
}
|
||||
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java
Normal file
10
src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package de.srsoftware.web4rail.tiles;
|
||||
|
||||
public class TurnoutWS extends Turnout{
|
||||
|
||||
@Override
|
||||
public boolean hasConnector(Direction direction) {
|
||||
return direction != Direction.NORTH;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user