bugfix: implemented delayed loading of contact data in TriggerdContact
This commit is contained in:
@@ -6,6 +6,7 @@ import java.util.Map;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import de.srsoftware.web4rail.BaseClass;
|
||||
import de.srsoftware.web4rail.LoadCallback;
|
||||
import de.srsoftware.web4rail.Params;
|
||||
import de.srsoftware.web4rail.tags.Fieldset;
|
||||
import de.srsoftware.web4rail.tags.Window;
|
||||
@@ -42,7 +43,14 @@ public class TriggerContact extends Action {
|
||||
public Action load(JSONObject json) {
|
||||
super.load(json);
|
||||
Id contactId = Id.from(json,CONTACT);
|
||||
if (isSet(contactId)) contact = Contact.get(contactId);
|
||||
if (isSet(contactId)) new LoadCallback() {
|
||||
|
||||
@Override
|
||||
public void afterLoad() {
|
||||
contact = Contact.get(contactId);
|
||||
}
|
||||
};
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -1171,7 +1171,9 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
} else { // behind train
|
||||
if (Route.freeBehindTrain) {
|
||||
LOG.debug("{} is behind train and will be freed in the next step",tile);
|
||||
trace.add(tile); // old trace will be cleared afterwards
|
||||
if (tile != route.endBlock()) { // if train is shorter than contact after endblock, the endblock would be cleared…
|
||||
trace.add(tile); // old trace will be cleared afterwards
|
||||
}
|
||||
} else {
|
||||
LOG.debug("{} is behind train and will be reset to \"locked\" state",tile);
|
||||
tile.lockFor(context,true);
|
||||
|
||||
Reference in New Issue
Block a user