working on route allocation

This commit is contained in:
Stephan Richter
2020-09-19 13:51:43 +02:00
parent 917ac5dd07
commit 1d1876e1d3
26 changed files with 72114 additions and 39 deletions

View File

@@ -19,10 +19,10 @@ import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Form;
public abstract class Tile {
@@ -30,7 +30,7 @@ public abstract class Tile {
protected HashSet<String> classes = new HashSet<>();
protected HashSet<Shadow> shadows = new HashSet<>();
private HashSet<Route> routes = new HashSet<>();
private Plan plan;
protected Plan plan;
private Train lockedBy;
protected static Logger LOG = LoggerFactory.getLogger(Tile.class);
@@ -48,6 +48,10 @@ public abstract class Tile {
shadows.add(shadow);
}
public Object click() throws IOException {
return propMenu();
}
public JSONObject config() {
return new JSONObject();
}
@@ -69,6 +73,7 @@ public abstract class Tile {
public void lock(Train train) {
lockedBy = train;
classes.add("locked");
plan.stream("addclass tile-"+x+"-"+y+" locked");
}
@@ -190,6 +195,7 @@ public abstract class Tile {
public void unlock() {
lockedBy = null;
classes.remove("locked");
plan.stream("dropclass tile-"+x+"-"+y+" locked");
}

View File

@@ -1,14 +1,35 @@
package de.srsoftware.web4rail.tiles;
import java.io.IOException;
import java.util.Map;
import de.srsoftware.tools.Tag;
public abstract class Turnout extends Tile {
public static final String STATE = "state";
public enum State{
LEFT,STRAIGHT,RIGHT,UNDEF;
}
private boolean straight = true;
protected State state = State.STRAIGHT;
public boolean toggle() {
straight = !straight;
return straight;
public State state() {
return state;
}
public void state(State newState) throws IOException {
state = newState;
LOG.debug("Setting {} to {}",this,state);
plan.stream("place "+tag(null));
}
@Override
public Tag tag(Map<String, Object> replacements) throws IOException {
Tag tag = super.tag(replacements);
tag.clazz(tag.get("class")+(" "+state).toLowerCase());
return tag;
}
public void toggle() {
state = State.STRAIGHT;
}
}

View File

@@ -0,0 +1,11 @@
package de.srsoftware.web4rail.tiles;
import java.io.IOException;
public class TurnoutL extends Turnout {
@Override
public Object click() throws IOException {
state = (state == State.STRAIGHT) ? State.LEFT : State.STRAIGHT;
return tag(null);
}
}

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutLE extends Turnout{
public class TurnoutLE extends TurnoutL{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutLN extends Turnout{
public class TurnoutLN extends TurnoutL{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutLS extends Turnout{
public class TurnoutLS extends TurnoutL{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutLW extends Turnout{
public class TurnoutLW extends TurnoutL{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -0,0 +1,11 @@
package de.srsoftware.web4rail.tiles;
import java.io.IOException;
public class TurnoutR extends Turnout {
@Override
public Object click() throws IOException {
state = (state == State.STRAIGHT) ? State.RIGHT : State.STRAIGHT;
return tag(null);
}
}

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutRE extends Turnout{
public class TurnoutRE extends TurnoutR{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutRN extends Turnout{
public class TurnoutRN extends TurnoutR{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutRS extends Turnout{
public class TurnoutRS extends TurnoutR{
@Override
public Map<Connector, State> connections(Direction from) {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan.Direction;
public class TurnoutRW extends Turnout{
public class TurnoutRW extends TurnoutR{
@Override
public Map<Connector, State> connections(Direction from) {