aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/Ic2ExpReactorPlanner/SimulationData.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/Ic2ExpReactorPlanner/SimulationData.java')
-rw-r--r--src/main/java/Ic2ExpReactorPlanner/SimulationData.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/Ic2ExpReactorPlanner/SimulationData.java b/src/main/java/Ic2ExpReactorPlanner/SimulationData.java
new file mode 100644
index 0000000000..d6384ef012
--- /dev/null
+++ b/src/main/java/Ic2ExpReactorPlanner/SimulationData.java
@@ -0,0 +1,81 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package Ic2ExpReactorPlanner;
+
+/**
+ * Simple container for data from a simulation of an IC2 nuclear reactor, to allow comparison wtih another simulation.
+ * @author Brian McCloud
+ */
+public class SimulationData {
+ // Values should only be written to by the simulator class and read by other classes, but this is not yet strictly enforced.
+ // Enforcement might require refactoring this to be an inner class of the simulator.
+
+ // Times to temperature thresholds
+ public int timeToBelow50 = Integer.MAX_VALUE;
+ public int timeToBurn = Integer.MAX_VALUE;
+ public int timeToEvaporate = Integer.MAX_VALUE;
+ public int timeToHurt = Integer.MAX_VALUE;
+ public int timeToLava = Integer.MAX_VALUE;
+ public int timeToXplode = Integer.MAX_VALUE;
+
+ // Special, for calculating efficiency
+ public int totalRodCount = 0;
+
+ // First component broken details
+ public int firstComponentBrokenTime = Integer.MAX_VALUE;
+ public int firstComponentBrokenRow = -1;
+ public int firstComponentBrokenCol = -1;
+ public String firstComponentBrokenDescription = "";
+ public double prebreakTotalEUoutput = 0;
+ public double prebreakAvgEUoutput = 0;
+ public double prebreakMinEUoutput = Double.MAX_VALUE;
+ public double prebreakMaxEUoutput = 0;
+ public double prebreakTotalHUoutput = 0;
+ public double prebreakAvgHUoutput = 0;
+ public double prebreakMinHUoutput = Double.MAX_VALUE;
+ public double prebreakMaxHUoutput = 0;
+
+ // First rod depleted details
+ public int firstRodDepletedTime = Integer.MAX_VALUE;
+ public int firstRodDepletedRow = -1;
+ public int firstRodDepletedCol = -1;
+ public String firstRodDepletedDescription = "";
+ public double predepleteTotalEUoutput = 0;
+ public double predepleteAvgEUoutput = 0;
+ public double predepleteMinEUoutput = Double.MAX_VALUE;
+ public double predepleteMaxEUoutput = 0;
+ public double predepleteTotalHUoutput = 0;
+ public double predepleteAvgHUoutput = 0;
+ public double predepleteMinHUoutput = Double.MAX_VALUE;
+ public double predepleteMaxHUoutput = 0;
+ public double predepleteMinTemp = Double.MAX_VALUE;
+ public double predepleteMaxTemp = 0;
+
+ // Completed-simulation details
+ public int totalReactorTicks = 0;
+ public int totalEUoutput = 0;
+ public int avgEUoutput = 0;
+ public double minEUoutput = Double.MAX_VALUE;
+ public int maxEUoutput = 0;
+ public int totalHUoutput = 0;
+ public int avgHUoutput = 0;
+ public double minHUoutput = Double.MAX_VALUE;
+ public int maxHUoutput = 0;
+ public int minTemp = (int) Double.MAX_VALUE;
+ public int maxTemp = 0;
+ public int explosionPower = 0;
+
+ // Heating and Cooling details
+ public double hullHeating = 0;
+ public double componentHeating = 0;
+ public double hullCooling = 0;
+ public double hullCoolingCapacity = 0;
+ public double ventCooling = 0;
+ public double ventCoolingCapacity = 0;
+
+ // Automation details
+ public MaterialsList replacedItems = new MaterialsList();
+}