aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/Ic2ExpReactorPlanner/SimulationData.java
blob: d6384ef0121fdcf7b9261cbedeaff7183d8514ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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();
}