started to implement route search

This commit is contained in:
Stephan Richter
2020-09-15 12:50:17 +02:00
parent 198f42f299
commit ce75a0c027
12 changed files with 190 additions and 11 deletions

View File

@@ -1,10 +1,13 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Set;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.tiles.StretchableTile;
public abstract class Block extends StretchableTile{
public abstract Set<Route> routes();
public abstract List<Connector> startPoints();
}

View File

@@ -2,12 +2,15 @@ package de.srsoftware.web4rail.tiles;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Route;
public class BlockH extends Block{
@@ -45,10 +48,15 @@ public class BlockH extends Block{
}
@Override
public Set<Route> routes() {
public Set<Route> routes() {
return null;
}
@Override
public List<Connector> startPoints() {
return List.of(new Connector(x-1, y, Plan.EAST),new Connector(x+len(), y, Plan.WEST));
}
@Override
public Tag tag(Map<String, Object> replacements) throws IOException {
if (replacements == null) replacements = new HashMap<String, Object>();

View File

@@ -2,12 +2,15 @@ package de.srsoftware.web4rail.tiles;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Route;
public class BlockV extends Block{
@@ -49,6 +52,11 @@ public class BlockV extends Block{
return null;
}
@Override
public List<Connector> startPoints() {
return List.of(new Connector(x,y-1,Plan.SOUTH),new Connector(x,y+height(),Plan.NORTH));
}
@Override
public Tag tag(Map<String, Object> replacements) throws IOException {
if (replacements == null) replacements = new HashMap<String, Object>();

View File

@@ -1,6 +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 DiagES extends Tile{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.SOUTH:
return List.of(new Connector(x+1,y,Plan.WEST));
case Plan.EAST:
return List.of(new Connector(x,y+1,Plan.NORTH));
}
return new Vector<>();
}
}

View File

@@ -1,4 +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 DiagWN extends Tile{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.NORTH:
return List.of(new Connector(x-1,y,Plan.EAST));
case Plan.WEST:
return List.of(new Connector(x,y-1,Plan.SOUTH));
}
return new Vector<>();
}
}

View File

@@ -1,7 +1,24 @@
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 StraightH extends StretchableTile{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.WEST:
return List.of(new Connector(x+len(),y,from));
case Plan.EAST:
return List.of(new Connector(x-1,y,from));
}
return new Vector<>();
}
@Override
public int len() {
return length;

View File

@@ -5,9 +5,11 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Vector;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +18,7 @@ import org.slf4j.LoggerFactory;
import de.keawe.tools.translations.Translation;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Window;
public abstract class Tile {
@@ -32,6 +35,11 @@ public abstract class Tile {
public JSONObject config() {
return new JSONObject();
}
public List<Connector> connections(String from){
return new Vector<>();
}
public void configure(JSONObject config) {}

View File

@@ -1,7 +1,22 @@
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 TurnoutWN extends Turnout{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.WEST:
return List.of(new Connector(x+1,y,from),new Connector(x, y-1, Plan.SOUTH));
case Plan.EAST:
case Plan.NORTH:
return List.of(new Connector(x-1,y,Plan.EAST));
}
return new Vector<>();
}
}