summaryrefslogtreecommitdiff
path: root/src/main/java/testing
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/testing')
-rw-r--r--src/main/java/testing/HeadlessLoader.java49
-rw-r--r--src/main/java/testing/HeadlessSimulationRunner.java6
2 files changed, 46 insertions, 9 deletions
diff --git a/src/main/java/testing/HeadlessLoader.java b/src/main/java/testing/HeadlessLoader.java
index a19ec19..de18a93 100644
--- a/src/main/java/testing/HeadlessLoader.java
+++ b/src/main/java/testing/HeadlessLoader.java
@@ -47,32 +47,32 @@ public class HeadlessLoader {
// Copy non-string values from serialized prefs
for (String key : serializedPrefs.getIntegerKeySet()) {
if (!key.startsWith("lang.")) {
- newPrefs.initInteger(key, serializedPrefs.getInteger(key));
+ newPrefs.setInteger(key, serializedPrefs.getInteger(key));
}
}
for (String key : serializedPrefs.getBooleanKeySet()) {
if (!key.startsWith("lang.")) {
- newPrefs.initBoolean(key, serializedPrefs.getBoolean(key));
+ newPrefs.setBoolean(key, serializedPrefs.getBoolean(key));
}
}
for (String key : serializedPrefs.getFloatKeySet()) {
if (!key.startsWith("lang.")) {
- newPrefs.initFloat(key, serializedPrefs.getFloat(key));
+ newPrefs.setFloat(key, serializedPrefs.getFloat(key));
}
}
for (String key : serializedPrefs.getColorKeySet()) {
if (!key.startsWith("lang.")) {
- newPrefs.initColor(key, serializedPrefs.getColor(key));
+ newPrefs.setColor(key, serializedPrefs.getColor(key));
}
}
for (String key : serializedPrefs.getVectorKeySet()) {
if (!key.startsWith("lang.")) {
- newPrefs.initVector(key, serializedPrefs.getVector(key));
+ newPrefs.setVector(key, serializedPrefs.getVector(key));
}
}
for (String key : serializedPrefs.getLongKeySet()) {
if (!key.startsWith("lang.")) {
- newPrefs.initLong(key, serializedPrefs.getLong(key));
+ newPrefs.setLong(key, serializedPrefs.getLong(key));
}
}
@@ -86,6 +86,41 @@ public class HeadlessLoader {
// Deserialize simulator
simulator.deserialize(serializer, objectInputStream);
objectInputStream.close();
+
+ // Reapply non-localized prefs after deserialization in case the
+ // simulator reset any persisted numeric values while restoring state.
+ VSPrefs simulatorPrefs = simulator.getPrefs();
+ for (String key : serializedPrefs.getIntegerKeySet()) {
+ if (!key.startsWith("lang.")) {
+ simulatorPrefs.setInteger(key, serializedPrefs.getInteger(key));
+ }
+ }
+ for (String key : serializedPrefs.getBooleanKeySet()) {
+ if (!key.startsWith("lang.")) {
+ simulatorPrefs.setBoolean(key, serializedPrefs.getBoolean(key));
+ }
+ }
+ for (String key : serializedPrefs.getFloatKeySet()) {
+ if (!key.startsWith("lang.")) {
+ simulatorPrefs.setFloat(key, serializedPrefs.getFloat(key));
+ }
+ }
+ for (String key : serializedPrefs.getColorKeySet()) {
+ if (!key.startsWith("lang.")) {
+ simulatorPrefs.setColor(key, serializedPrefs.getColor(key));
+ }
+ }
+ for (String key : serializedPrefs.getVectorKeySet()) {
+ if (!key.startsWith("lang.")) {
+ simulatorPrefs.setVector(key, serializedPrefs.getVector(key));
+ }
+ }
+ for (String key : serializedPrefs.getLongKeySet()) {
+ if (!key.startsWith("lang.")) {
+ simulatorPrefs.setLong(key, serializedPrefs.getLong(key));
+ }
+ }
+ simulator.updateFromPrefs();
// Get the visualization using reflection
Field vizField = VSSimulator.class.getDeclaredField("simulatorVisualization");
@@ -140,4 +175,4 @@ public class HeadlessLoader {
return visualization;
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/testing/HeadlessSimulationRunner.java b/src/main/java/testing/HeadlessSimulationRunner.java
index 6279fa9..5a49487 100644
--- a/src/main/java/testing/HeadlessSimulationRunner.java
+++ b/src/main/java/testing/HeadlessSimulationRunner.java
@@ -86,7 +86,9 @@ public class HeadlessSimulationRunner {
// Get the simulation's configured end time
long untilTime = viz.getUntilTime();
- long actualMaxTime = Math.min(maxTime, untilTime);
+ long prefsUntilTime = simulator.getPrefs().getInteger("sim.seconds") * 1000L;
+ long actualUntilTime = Math.max(untilTime, prefsUntilTime);
+ long actualMaxTime = Math.min(maxTime, actualUntilTime);
System.out.println("Running simulation for up to " + actualMaxTime + "ms (until time: " + untilTime + "ms)...");
@@ -347,4 +349,4 @@ public class HeadlessSimulationRunner {
}
}
}
-} \ No newline at end of file
+}