Browse Source

bugfixes

lookup-tables
Stephan Richter 5 years ago
parent
commit
f7aee12789
  1. 2
      pom.xml
  2. 12
      src/main/java/de/srsoftware/web4rail/BaseClass.java
  3. 2
      src/main/java/de/srsoftware/web4rail/actions/ActionList.java
  4. 2
      src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java
  5. 2
      src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java
  6. 4
      src/main/java/de/srsoftware/web4rail/moving/Train.java

2
pom.xml

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.srsoftware</groupId> <groupId>de.srsoftware</groupId>
<artifactId>web4rail</artifactId> <artifactId>web4rail</artifactId>
<version>1.2.21</version> <version>1.2.22</version>
<name>Web4Rail</name> <name>Web4Rail</name>
<packaging>jar</packaging> <packaging>jar</packaging>
<description>Java Model Railway Control</description> <description>Java Model Railway Control</description>

12
src/main/java/de/srsoftware/web4rail/BaseClass.java

@ -88,7 +88,17 @@ public abstract class BaseClass implements Constants{
} }
public Context clone() { public Context clone() {
return new Context(main); Context clone = new Context(main);
clone.tile = tile;
clone.block = block;
clone.train = train;
clone.route = route;
clone.action = action;
clone.condition = condition;
clone.car = car;
clone.contact = contact;
clone.direction = direction;
return clone;
} }
public Condition condition() { public Condition condition() {

2
src/main/java/de/srsoftware/web4rail/actions/ActionList.java

@ -180,7 +180,7 @@ public class ActionList extends Action implements Iterable<Action>{
action.remove(); action.remove();
return context.properties(); return context.properties();
case ACTION_MOVE: case ACTION_MOVE:
return action.moveUp() ? action.properties() : t("No action with id {} found!",actionId); return action.moveUp() ? action.context().properties() : t("No action with id {} found!",actionId);
case ACTION_PROPS: case ACTION_PROPS:
return action.properties(); return action.properties();
case ACTION_UPDATE: case ACTION_UPDATE:

2
src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java

@ -29,7 +29,7 @@ public class ConditionalAction extends ActionList {
@Override @Override
public boolean fire(Context context) { public boolean fire(Context context) {
for (Condition condition : conditions) { for (Condition condition : conditions) {
if (!condition.fulfilledBy(context)) return true; if (!condition.fulfilledBy(context)) return false;
} }
return super.fire(context.clone()); // actions, that happen within the conditional action list must not modify the global context. return super.fire(context.clone()); // actions, that happen within the conditional action list must not modify the global context.
} }

2
src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java

@ -70,7 +70,7 @@ public class SetContextTrain extends Action {
LOG.debug("update: {}",params); LOG.debug("update: {}",params);
Id trainId = Id.from(params,Train.class.getSimpleName()); Id trainId = Id.from(params,Train.class.getSimpleName());
if (isSet(trainId)) train = Train.get(trainId); if (isSet(trainId)) train = Train.get(trainId);
return properties(); return super.update(params);
} }
} }

4
src/main/java/de/srsoftware/web4rail/moving/Train.java

@ -197,6 +197,7 @@ public class Train extends BaseClass implements Comparable<Train> {
if (isNull(autopilot)) { if (isNull(autopilot)) {
autopilot = new Autopilot(); autopilot = new Autopilot();
autopilot.start(); autopilot.start();
if (isSet(currentBlock)) plan.place(currentBlock);
} }
return t("{} now in auto-mode",this); return t("{} now in auto-mode",this);
} }
@ -276,7 +277,7 @@ public class Train extends BaseClass implements Comparable<Train> {
public String directedName() { public String directedName() {
String result = name(); String result = name();
if (isSet(autopilot)) result=""+result; if (isSet(autopilot)) result=""+result;
if (isNull(direction)) return result; if (isNull(direction)) return result;
switch (direction) { switch (direction) {
case NORTH: case NORTH:
@ -561,6 +562,7 @@ public class Train extends BaseClass implements Comparable<Train> {
if (isSet(autopilot)) { if (isSet(autopilot)) {
autopilot.stop = true; autopilot.stop = true;
autopilot = null; autopilot = null;
if (isSet(currentBlock)) plan.place(currentBlock);
return t("{} stopping at next block.",this); return t("{} stopping at next block.",this);
} else return t("autopilot not active."); } else return t("autopilot not active.");
} }

Loading…
Cancel
Save