diff options
19 files changed, 676 insertions, 3771 deletions
diff --git a/src/main/java/Ic2ExpReactorPlanner/AutomationSimulator.java b/src/main/java/Ic2ExpReactorPlanner/AutomationSimulator.java index 488de59a8d..729642e837 100644 --- a/src/main/java/Ic2ExpReactorPlanner/AutomationSimulator.java +++ b/src/main/java/Ic2ExpReactorPlanner/AutomationSimulator.java @@ -1,8 +1,5 @@ package Ic2ExpReactorPlanner; -import static Ic2ExpReactorPlanner.BundleHelper.formatI18n; -import static Ic2ExpReactorPlanner.BundleHelper.getI18n; - import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; @@ -24,8 +21,6 @@ public class AutomationSimulator { private final GT_TileEntity_ComputerCube mReactor; - private final boolean[][] alreadyBroken = new boolean[6][9]; - private final boolean[][] needsCooldown = new boolean[6][9]; private final int initialHeat; @@ -77,13 +72,11 @@ public class AutomationSimulator { private int lapisUsed = 0; - private final MaterialsList replacedItems = new MaterialsList(); - - private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat(getI18n("Simulation.DecimalFormat")); private boolean completed = false; private boolean mRunning = false; + private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#,##0.##"); private final SimulationData data = new SimulationData(); public SimulationData getData() { @@ -116,7 +109,7 @@ public class AutomationSimulator { int totalRodCount = 0; publish(""); // NOI18N - publish(getI18n("Simulation.Started")); + publish("Simulation.Started"); reactor.setCurrentHeat(initialHeat); reactor.clearVentedHeat(); double minReactorHeat = initialHeat; @@ -241,40 +234,34 @@ public class AutomationSimulator { calculateHeatingCooling(reactorTicks); handleAutomation(reactorTicks); - handleBrokenComponents(reactorTicks, totalHeatOutput, totalRodCount, totalEUoutput, minReactorHeat, maxReactorHeat); } if (hasStopped()) { - publish(formatI18n("Simulation.CancelledAtTick", reactorTicks)); + publish("Simulation.CancelledAtTick", reactorTicks); } data.minTemp = (int) minReactorHeat; data.maxTemp = (int) maxReactorHeat; - publish(formatI18n("Simulation.ReactorMinTemp", minReactorHeat)); - publish(formatI18n("Simulation.ReactorMaxTemp", maxReactorHeat)); + publish("Simulation.ReactorMinTemp", minReactorHeat); + publish("Simulation.ReactorMaxTemp", maxReactorHeat); if (reactor.getCurrentHeat() < reactor.getMaxHeat()) { - publish(formatI18n("Simulation.TimeWithoutExploding", reactorTicks)); + publish("Simulation.TimeWithoutExploding", reactorTicks); if (reactor.isPulsed()) { String rangeString = ""; if (maxActiveTime > minActiveTime) { - rangeString = formatI18n("Simulation.ActiveTimeRange", minActiveTime, maxActiveTime); + rangeString = rangeString("Simulation.ActiveTimeRange", minActiveTime, maxActiveTime); } else if (minActiveTime < activeTime) { - rangeString = formatI18n("Simulation.ActiveTimeSingle", minActiveTime); + rangeString = "Simulation.ActiveTimeSingle "+minActiveTime; } - publish(formatI18n("Simulation.ActiveTime", activeTime, rangeString)); + publish("Simulation.ActiveTime", activeTime, rangeString); rangeString = ""; if (maxInactiveTime > minInactiveTime) { - rangeString = formatI18n("Simulation.InactiveTimeRange", minInactiveTime, maxInactiveTime); + rangeString = rangeString("Simulation.InactiveTimeRange", minInactiveTime, maxInactiveTime); } else if (minInactiveTime < inactiveTime) { - rangeString = formatI18n("Simulation.InactiveTimeSingle", minInactiveTime); + rangeString = "Simulation.InactiveTimeSingle " + minInactiveTime; } - publish(formatI18n("Simulation.InactiveTime", inactiveTime, rangeString)); - } - final String replacedItemsString = replacedItems.toString(); - if (!replacedItemsString.isEmpty()) { - data.replacedItems = new MaterialsList(replacedItems); - publish(formatI18n("Simulation.ComponentsReplaced", replacedItemsString)); + publish("Simulation.InactiveTime", inactiveTime, rangeString); } if (reactorTicks > 0) { @@ -285,10 +272,10 @@ public class AutomationSimulator { data.minHUoutput = 2 * minHeatOutput; data.maxHUoutput = (int) (2 * maxHeatOutput); if (totalHeatOutput > 0) { - publish(formatI18n("Simulation.HeatOutputs", DECIMAL_FORMAT.format(40 * totalHeatOutput), DECIMAL_FORMAT.format(2 * totalHeatOutput / reactorTicks), DECIMAL_FORMAT.format(2 - * minHeatOutput), DECIMAL_FORMAT.format(2 * maxHeatOutput))); + publish("Simulation.HeatOutputs", DECIMAL_FORMAT.format(40 * totalHeatOutput), DECIMAL_FORMAT.format(2 * totalHeatOutput / reactorTicks), DECIMAL_FORMAT.format(2 + * minHeatOutput), DECIMAL_FORMAT.format(2 * maxHeatOutput)); if (totalRodCount > 0) { - publish(formatI18n("Simulation.Efficiency", totalHeatOutput / reactorTicks / 4 / totalRodCount, minHeatOutput / 4 / totalRodCount, maxHeatOutput / 4 / totalRodCount)); + publish("Simulation.Efficiency", totalHeatOutput / reactorTicks / 4 / totalRodCount, minHeatOutput / 4 / totalRodCount, maxHeatOutput / 4 / totalRodCount); } } } @@ -298,17 +285,17 @@ public class AutomationSimulator { data.minEUoutput = minEUoutput / 20.0; data.maxEUoutput = (int) (maxEUoutput / 20.0); if (totalEUoutput > 0) { - publish(formatI18n("Simulation.EUOutputs", DECIMAL_FORMAT.format(totalEUoutput), DECIMAL_FORMAT.format(totalEUoutput / (reactorTicks * 20)), DECIMAL_FORMAT.format(minEUoutput - / 20.0), DECIMAL_FORMAT.format(maxEUoutput / 20.0))); + publish("Simulation.EUOutputs", DECIMAL_FORMAT.format(totalEUoutput), DECIMAL_FORMAT.format(totalEUoutput / (reactorTicks * 20)), DECIMAL_FORMAT.format(minEUoutput + / 20.0), DECIMAL_FORMAT.format(maxEUoutput / 20.0)); if (totalRodCount > 0) { - publish(formatI18n("Simulation.Efficiency", totalEUoutput / reactorTicks / 100 / totalRodCount, minEUoutput / 100 / totalRodCount, maxEUoutput / 100 / totalRodCount)); + publish("Simulation.Efficiency", totalEUoutput / reactorTicks / 100 / totalRodCount, minEUoutput / 100 / totalRodCount, maxEUoutput / 100 / totalRodCount); } } } } if (reactor.getCurrentHeat() > 0.0) { - publish(formatI18n("Simulation.ReactorRemainingHeat", reactor.getCurrentHeat())); + publish("Simulation.ReactorRemainingHeat", reactor.getCurrentHeat()); } double prevReactorHeat = reactor.getCurrentHeat(); double prevTotalComponentHeat = 0.0; @@ -319,13 +306,13 @@ public class AutomationSimulator { if (component.getCurrentHeat() > 0.0) { prevTotalComponentHeat += component.getCurrentHeat(); publish(String.format("R%dC%d:0xFFA500", row, col)); // NOI18N - component.info.append(formatI18n("ComponentInfo.RemainingHeat", component.getCurrentHeat())); + component.info.append("ComponentInfo.RemainingHeat " + component.getCurrentHeat()); } } } } if (prevReactorHeat == 0.0 && prevTotalComponentHeat == 0.0) { - publish(getI18n("Simulation.NoCooldown")); + publish("Simulation.NoCooldown"); } else if (reactor.getCurrentHeat() < reactor.getMaxHeat()) { double currentTotalComponentHeat = prevTotalComponentHeat; @@ -360,7 +347,7 @@ public class AutomationSimulator { if (component != null && !component.isBroken()) { currentTotalComponentHeat += component.getCurrentHeat(); if (component.getCurrentHeat() == 0.0 && needsCooldown[row][col]) { - component.info.append(formatI18n("ComponentInfo.CooldownTime", cooldownTicks)); + component.info.append("ComponentInfo.CooldownTime " + cooldownTicks); needsCooldown[row][col] = false; } } @@ -370,17 +357,17 @@ public class AutomationSimulator { while (lastHeatOutput > 0 && cooldownTicks < 50000); if (reactor.getCurrentHeat() < reactor.getMaxHeat()) { if (reactor.getCurrentHeat() == 0.0) { - publish(formatI18n("Simulation.ReactorCooldownTime", reactorCooldownTime)); + publish("Simulation.ReactorCooldownTime", reactorCooldownTime); } else if (reactorCooldownTime > 0) { - publish(formatI18n("Simulation.ReactorResidualHeat", reactor.getCurrentHeat(), reactorCooldownTime)); + publish("Simulation.ReactorResidualHeat", reactor.getCurrentHeat(), reactorCooldownTime); } - publish(formatI18n("Simulation.TotalCooldownTime", cooldownTicks)); + publish("Simulation.TotalCooldownTime", cooldownTicks); } } } else { - publish(formatI18n("Simulation.ReactorOverheatedTime", reactorTicks)); + publish("Simulation.ReactorOverheatedTime", reactorTicks); explosionPower = 10.0; double explosionPowerMult = 1.0; for (int row = 0; row < 6; row++) { @@ -393,7 +380,7 @@ public class AutomationSimulator { } } explosionPower *= explosionPowerMult; - publish(formatI18n("Simulation.ExplosionPower", explosionPower)); + publish("Simulation.ExplosionPower", explosionPower); } double totalEffectiveVentCooling = 0.0; double totalVentCoolingCapacity = 0.0; @@ -405,81 +392,82 @@ public class AutomationSimulator { ReactorItem component = reactor.getComponentAt(row, col); if (component != null) { if (component.getVentCoolingCapacity() > 0) { - component.info.append(formatI18n("ComponentInfo.UsedCooling", component.getBestVentCooling(), component.getVentCoolingCapacity())); + component.info.append("ComponentInfo.UsedCooling " + component.getBestVentCooling() + " | " + component.getVentCoolingCapacity()); totalEffectiveVentCooling += component.getBestVentCooling(); totalVentCoolingCapacity += component.getVentCoolingCapacity(); } else if (component.getBestCellCooling() > 0) { - component.info.append(formatI18n("ComponentInfo.ReceivedHeat", component.getBestCellCooling())); + component.info.append("ComponentInfo.ReceivedHeat " + component.getBestCellCooling()); totalCellCooling += component.getBestCellCooling(); } else if (component.getBestCondensatorCooling() > 0) { - component.info.append(formatI18n("ComponentInfo.ReceivedHeat", component.getBestCondensatorCooling())); + component.info.append("ComponentInfo.ReceivedHeat " + component.getBestCondensatorCooling()); totalCondensatorCooling += component.getBestCondensatorCooling(); } else if (component.getMaxHeatGenerated() > 0) { if (!reactor.isFluid() && component.getMaxEUGenerated() > 0) { - component.info.append(formatI18n("ComponentInfo.GeneratedEU", component.getMinEUGenerated(), component.getMaxEUGenerated())); + component.info.append("ComponentInfo.GeneratedEU " + component.getMinEUGenerated() + " | " + component.getMaxEUGenerated()); } - component.info.append(formatI18n("ComponentInfo.GeneratedHeat", component.getMinHeatGenerated(), component.getMaxHeatGenerated())); + component.info.append("ComponentInfo.GeneratedHeat " + component.getMinHeatGenerated() + " | " + component.getMaxHeatGenerated()); } if (component.getMaxReachedHeat() > 0) { - component.info.append(formatI18n("ComponentInfo.ReachedHeat", component.getMaxReachedHeat(), component.getMaxHeat())); + component.info.append("ComponentInfo.ReachedHeat " + component.getMaxReachedHeat() + " | " + component.getMaxHeat()); } } } } // if (totalVentCoolingCapacity > 0) { - // publish(formatI18n("Simulation.TotalVentCooling", - // totalEffectiveVentCooling, totalVentCoolingCapacity)); + // publish("Simulation.TotalVentCooling", + // totalEffectiveVentCooling, totalVentCoolingCapacity); // } showHeatingCooling(reactorTicks); // Call to show this info in case it // hasn't already been shown, such // as for an automated reactor. if (totalCellCooling > 0) { - publish(formatI18n("Simulation.TotalCellCooling", totalCellCooling)); + publish("Simulation.TotalCellCooling", totalCellCooling); } if (totalCondensatorCooling > 0) { - publish(formatI18n("Simulation.TotalCondensatorCooling", totalCondensatorCooling)); + publish("Simulation.TotalCondensatorCooling", totalCondensatorCooling); } if (maxGeneratedHeat > 0) { - publish(formatI18n("Simulation.MaxHeatGenerated", maxGeneratedHeat)); + publish("Simulation.MaxHeatGenerated", maxGeneratedHeat); } if (redstoneUsed > 0) { - publish(formatI18n("Simulation.RedstoneUsed", redstoneUsed)); + publish("Simulation.RedstoneUsed", redstoneUsed); } if (lapisUsed > 0) { - publish(formatI18n("Simulation.LapisUsed", lapisUsed)); + publish("Simulation.LapisUsed", lapisUsed); } // double totalCooling = totalEffectiveVentCooling + totalCellCooling + // totalCondensatorCooling; // if (totalCooling >= maxGeneratedHeat) { - // publish(formatI18n("Simulation.ExcessCooling", totalCooling - - // maxGeneratedHeat)); + // publish("Simulation.ExcessCooling", totalCooling - + // maxGeneratedHeat); // } else { - // publish(formatI18n("Simulation.ExcessHeating", maxGeneratedHeat - - // totalCooling)); + // publish("Simulation.ExcessHeating", maxGeneratedHeat - + // totalCooling); // } // return null; /* catch (Throwable e) { if (cooldownTicks == 0) { - publish(formatI18n("Simulation.ErrorReactor", reactorTicks)); + publish("Simulation.ErrorReactor", reactorTicks); } else { - publish(formatI18n("Simulation.ErrorCooldown", cooldownTicks)); + publish("Simulation.ErrorCooldown", cooldownTicks); } - publish(e.toString(), " ", Arrays.toString(e.getStackTrace())); // NO18N + publish(e.toString(), " ", Arrays.toString(e.getStackTrace()); // NO18N }*/ data.explosionPower = (int) explosionPower; data.totalReactorTicks = reactorTicks; long endTime = System.nanoTime(); - publish(formatI18n("Simulation.ElapsedTime", (endTime - startTime) / 1e9)); + publish("Simulation.ElapsedTime", (endTime - startTime) / 1e9); mRunning = false; completed = true; } + public boolean hasStopped() { return !mRunning; } @@ -488,88 +476,6 @@ public class AutomationSimulator { return mRunning; } - private void handleBrokenComponents(final int reactorTicks, final double totalHeatOutput, final int totalRodCount, final double totalEUoutput, final double minReactorHeat, final double maxReactorHeat) { - for (int row = 0; row < 6; row++) { - for (int col = 0; col < 9; col++) { - ReactorItem component = reactor.getComponentAt(row, col); - if (component != null && component.isBroken() && !alreadyBroken[row][col]) { - alreadyBroken[row][col] = true; - if (component.getRodCount() == 0) { - publish(String.format("R%dC%d:0xFF0000", row, col)); // NOI18N - component.info.append(formatI18n("ComponentInfo.BrokeTime", reactorTicks)); - if (componentsIntact) { - componentsIntact = false; - data.firstComponentBrokenTime = reactorTicks; - data.firstComponentBrokenRow = row; - data.firstComponentBrokenCol = col; - data.firstComponentBrokenDescription = component.toString(); - publish(formatI18n("Simulation.FirstComponentBrokenDetails", component.toString(), row, col, reactorTicks)); - if (reactor.isFluid()) { - data.prebreakTotalHUoutput = 40 * totalHeatOutput; - data.prebreakAvgHUoutput = 2 * totalHeatOutput / reactorTicks; - data.prebreakMinHUoutput = 2 * minHeatOutput; - data.prebreakMaxHUoutput = 2 * maxHeatOutput; - publish(formatI18n("Simulation.HeatOutputsBeforeBreak", DECIMAL_FORMAT.format(40 * totalHeatOutput), DECIMAL_FORMAT.format(2 * totalHeatOutput - / reactorTicks), DECIMAL_FORMAT.format(2 * minHeatOutput), DECIMAL_FORMAT.format(2 * maxHeatOutput))); - if (totalRodCount > 0) { - publish(formatI18n("Simulation.Efficiency", totalHeatOutput / reactorTicks / 4 / totalRodCount, minHeatOutput / 4 / totalRodCount, maxHeatOutput / 4 - / totalRodCount)); - } - } - else { - data.prebreakTotalEUoutput = totalEUoutput; - data.prebreakAvgEUoutput = totalEUoutput / (reactorTicks * 20); - data.prebreakMinEUoutput = minEUoutput / 20.0; - data.prebreakMaxEUoutput = maxEUoutput / 20.0; - publish(formatI18n("Simulation.EUOutputsBeforeBreak", DECIMAL_FORMAT.format(totalEUoutput), DECIMAL_FORMAT.format(totalEUoutput - / (reactorTicks * 20)), DECIMAL_FORMAT.format(minEUoutput / 20.0), DECIMAL_FORMAT.format(maxEUoutput / 20.0))); - if (totalRodCount > 0) { - publish(formatI18n("Simulation.Efficiency", totalEUoutput / reactorTicks / 100 / totalRodCount, minEUoutput / 100 / totalRodCount, maxEUoutput / 100 - / totalRodCount)); - } - } - } - } - else if (!anyRodsDepleted) { - anyRodsDepleted = true; - data.firstRodDepletedTime = reactorTicks; - data.firstRodDepletedRow = row; - data.firstRodDepletedCol = col; - data.firstRodDepletedDescription = component.toString(); - publish(formatI18n("Simulation.FirstRodDepletedDetails", component.toString(), row, col, reactorTicks)); - if (reactor.isFluid()) { - data.predepleteTotalHUoutput = 40 * totalHeatOutput; - data.predepleteAvgHUoutput = 2 * totalHeatOutput / reactorTicks; - data.predepleteMinHUoutput = 2 * minHeatOutput; - data.predepleteMaxHUoutput = 2 * maxHeatOutput; - publish(formatI18n("Simulation.HeatOutputsBeforeDepleted", DECIMAL_FORMAT.format(40 * totalHeatOutput), DECIMAL_FORMAT.format(2 * totalHeatOutput - / reactorTicks), DECIMAL_FORMAT.format(2 * minHeatOutput), DECIMAL_FORMAT.format(2 * maxHeatOutput))); - if (totalRodCount > 0) { - publish(formatI18n("Simulation.Efficiency", totalHeatOutput / reactorTicks / 4 / totalRodCount, minHeatOutput / 4 / totalRodCount, maxHeatOutput / 4 / totalRodCount)); - } - } - else { - data.predepleteTotalEUoutput = totalEUoutput; - data.predepleteAvgEUoutput = totalEUoutput / (reactorTicks * 20); - data.predepleteMinEUoutput = minEUoutput / 20.0; - data.predepleteMaxEUoutput = maxEUoutput / 20.0; - publish(formatI18n("Simulation.EUOutputsBeforeDepleted", DECIMAL_FORMAT.format(totalEUoutput), DECIMAL_FORMAT.format(totalEUoutput - / (reactorTicks * 20)), DECIMAL_FORMAT.format(minEUoutput / 20.0), DECIMAL_FORMAT.format(maxEUoutput / 20.0))); - if (totalRodCount > 0) { - publish(formatI18n("Simulation.Efficiency", totalEUoutput / reactorTicks / 100 / totalRodCount, minEUoutput / 100 / totalRodCount, maxEUoutput / 100 / totalRodCount)); - } - } - data.predepleteMinTemp = minReactorHeat; - data.predepleteMaxTemp = maxReactorHeat; - publish(formatI18n("Simulation.ReactorMinTempBeforeDepleted", minReactorHeat)); - publish(formatI18n("Simulation.ReactorMaxTempBeforeDepleted", maxReactorHeat)); - } - showHeatingCooling(reactorTicks); - } - } - } - } - private void handleAutomation(final int reactorTicks) { for (int row = 0; row < 6; row++) { for (int col = 0; col < 9; col++) { @@ -578,8 +484,7 @@ public class AutomationSimulator { if (component.getMaxHeat() > 1) { if (component.getAutomationThreshold() > component.getInitialHeat() && component.getCurrentHeat() >= component.getAutomationThreshold()) { component.clearCurrentHeat(); - replacedItems.add(component.name); - component.info.append(formatI18n("ComponentInfo.ReplacedTime", reactorTicks)); + component.info.append("ComponentInfo.ReplacedTime | " + reactorTicks); if (component.getReactorPause() > 0) { active = false; pauseTimer = Math.max(pauseTimer, component.getReactorPause()); @@ -590,8 +495,7 @@ public class AutomationSimulator { } else if (component.getAutomationThreshold() < component.getInitialHeat() && component.getCurrentHeat() <= component.getAutomationThreshold()) { component.clearCurrentHeat(); - replacedItems.add(component.name); - component.info.append(formatI18n("ComponentInfo.ReplacedTime", reactorTicks)); + component.info.append("ComponentInfo.ReplacedTime | " +reactorTicks); if (component.getReactorPause() > 0) { active = false; pauseTimer = Math.max(pauseTimer, component.getReactorPause()); @@ -603,8 +507,7 @@ public class AutomationSimulator { } else if (component.isBroken() || (component.getMaxDamage() > 1 && component.getCurrentDamage() >= component.getAutomationThreshold())) { component.clearDamage(); - replacedItems.add(component.name); - component.info.append(formatI18n("ComponentInfo.ReplacedTime", reactorTicks)); + component.info.append("ComponentInfo.ReplacedTime | " +reactorTicks); if (component.getReactorPause() > 0) { active = false; pauseTimer = Math.max(pauseTimer, component.getReactorPause()); @@ -629,32 +532,32 @@ public class AutomationSimulator { private void checkReactorTemperature(final int reactorTicks) { if (reactor.getCurrentHeat() < 0.5 * reactor.getMaxHeat() && !reachedBelow50 && reachedEvaporate) { - publish(formatI18n("Simulation.TimeToBelow50", reactorTicks)); + publish("Simulation.TimeToBelow50", reactorTicks); reachedBelow50 = true; data.timeToBelow50 = reactorTicks; } if (reactor.getCurrentHeat() >= 0.4 * reactor.getMaxHeat() && !reachedBurn) { - publish(formatI18n("Simulation.TimeToBurn", reactorTicks)); + publish("Simulation.TimeToBurn", reactorTicks); reachedBurn = true; data.timeToBurn = reactorTicks; } if (reactor.getCurrentHeat() >= 0.5 * reactor.getMaxHeat() && !reachedEvaporate) { - publish(formatI18n("Simulation.TimeToEvaporate", reactorTicks)); + publish("Simulation.TimeToEvaporate", reactorTicks); reachedEvaporate = true; data.timeToEvaporate = reactorTicks; } if (reactor.getCurrentHeat() >= 0.7 * reactor.getMaxHeat() && !reachedHurt) { - publish(formatI18n("Simulation.TimeToHurt", reactorTicks)); + publish("Simulation.TimeToHurt", reactorTicks); reachedHurt = true; data.timeToHurt = reactorTicks; } if (reactor.getCurrentHeat() >= 0.85 * reactor.getMaxHeat() && !reachedLava) { - publish(formatI18n("Simulation.TimeToLava", reactorTicks)); + publish("Simulation.TimeToLava", reactorTicks); reachedLava = true; data.timeToLava = reactorTicks; } if (reactor.getCurrentHeat() >= reactor.getMaxHeat() && !reachedExplode) { - publish(formatI18n("Simulation.TimeToXplode", reactorTicks)); + publish("Simulation.TimeToXplode", reactorTicks); reachedExplode = true; data.timeToXplode = reactorTicks; } @@ -698,25 +601,54 @@ public class AutomationSimulator { data.ventCooling = totalVentCooling / (reactorTicks - 20); data.ventCoolingCapacity = totalVentCoolingCapacity; if (totalHullHeating > 0) { - publish(formatI18n("Simulation.HullHeating", totalHullHeating / (reactorTicks - 20))); + publish("Simulation.HullHeating", totalHullHeating / (reactorTicks - 20)); } if (totalComponentHeating > 0) { - publish(formatI18n("Simulation.ComponentHeating", totalComponentHeating / (reactorTicks - 20))); + publish("Simulation.ComponentHeating", totalComponentHeating / (reactorTicks - 20)); } if (totalHullCoolingCapacity > 0) { - publish(formatI18n("Simulation.HullCooling", totalHullCooling / (reactorTicks - 20), totalHullCoolingCapacity)); + publish("Simulation.HullCooling | " +totalHullCooling / (reactorTicks - 20), totalHullCoolingCapacity); } if (totalVentCoolingCapacity > 0) { - publish(formatI18n("Simulation.VentCooling", totalVentCooling / (reactorTicks - 20), totalVentCoolingCapacity)); + publish("Simulation.VentCooling | " +totalVentCooling / (reactorTicks - 20), totalVentCoolingCapacity); } } } } + + private void publish(String string, double currentHeat, int reactorCooldownTime) { + publish(string + " | "+currentHeat+" | "+reactorCooldownTime); + } + private void publish(String string, double d, double e, double f) { + publish(string + " | "+d+" | "+e+" | "+f); + } + + private void publish(String string, String format, String format2, String format3, String format4) { + publish(string + " | "+format+" | "+format2+" | "+format3+" | "+format4); + } + + private void publish(String string, int activeTime2, String rangeString) { + publish(string + " | "+activeTime2+" | "+rangeString); + } + + private void publish(String aString, double aData) { + publish(aString+":"+aData); + } + + private void publish(String aString, long aData) { + publish(aString+":"+aData); + } + private void publish(String aString) { output.add(aString); + } + + private String rangeString(String string, int aMin, int aMax) { + return string+" ("+aMin+"-"+aMax+")"; } + protected void process(List<String> chunks) { /* for (String chunk : chunks) { diff --git a/src/main/java/Ic2ExpReactorPlanner/Bundle.properties b/src/main/java/Ic2ExpReactorPlanner/Bundle.properties deleted file mode 100644 index b20587693f..0000000000 --- a/src/main/java/Ic2ExpReactorPlanner/Bundle.properties +++ /dev/null @@ -1,411 +0,0 @@ - -# Comparison keys are for comparing two simulated reactors. Instead of being in -# in a TextArea like the main simulation, the comparison will be in a JLabel, wrapped -# in html tags, to allow color coding of the text more easily. - -Comparison.CompareDecimalFormat=+#,##0.##;-# -Comparison.ComponentHeating=Component heating: %s (%s/%s)<br> -Comparison.ComponentsHeading=Components:<br> -Comparison.ComponentsReplacedHeading=Components replaced:<br> -Comparison.Default=Please run at least two simulations (preferably with different reactor designs) to get a comparison. -Comparison.EUEUoutput=total output: %s (%s/%s) EU (%s EU/t average (%s/%s), %s EU/t min (%s/%s), %s EU/t max (%s/%s))<br> -Comparison.EUHUoutput=total output: %s EU / %s HU (%s EU/t / %s HU/t average, %s EU/t / %s HU/t min, %s EU/t / %s HU/t max)<br> -Comparison.Header=Most recent simulated reactor (left, in-grid) compared to previous simulated reactor (right, in-tab): -Comparison.HUEUoutput=total output: %s HU / %s EU (%s HU/t / %s EU/t average, %s HU/t / %s EU/t min, %s HU/t / %s EU/t max)<br> -Comparison.HUHUoutput=total output: %s (%s/%s) HU (%s HU/t average (%s/%s), %s HU/t min (%s/%s), %s HU/t max (%s/%s))<br> -Comparison.HullCooling=Hull cooling: %s (%s/%s)<br> -Comparison.HullCoolingPossible=Possible hull cooling: %s (%s/%s)<br> -Comparison.HullHeating=Hull heating: %s (%s/%s)<br> -Comparison.MaterialsEntry=<font color="%s">%s %s (%s/%s)</font><br> -Comparison.MaterialsHeading=Materials:<br> -Comparison.NoDifferences=No significant differences detected. -Comparison.PostsimMaxTemp=Reactor maximum temperature: %s (%s/%s)<br> -Comparison.PostsimMinTemp=Reactor minimum temperature: %s (%s/%s)<br> -Comparison.PredepleteMaxTemp=Reactor maximum temperature (before first fuel rod depleted): %s (%s/%s)<br> -Comparison.PredepleteMinTemp=Reactor minimum temperature (before first fuel rod depleted): %s (%s/%s)<br> -Comparison.Prefix.PostSimulation=After simulation,\u0020 -Comparison.Prefix.PostSimulationTime=Time simulated:\u0020 -Comparison.Prefix.Prebreak=Before first component broken,\u0020 -Comparison.Prefix.PrebreakTime=Time to first component break:\u0020 -Comparison.Prefix.Predeplete=Before first rod depleted,\u0020 -Comparison.Prefix.PredepleteTime=Time to first rod depletion:\u0020 -Comparison.Prefix.TimeToBelow50=Time to below 50%% heat (after being above it):\u0020 -Comparison.Prefix.TimeToBurn=Time to "Burn" temperature:\u0020 -Comparison.Prefix.TimeToEvaporate=Time to "Evaporate" temperature:\u0020 -Comparison.Prefix.TimeToHurt=Time to "Hurt" temperature:\u0020 -Comparison.Prefix.TimeToLava=Time to "Lava" temperature:\u0020 -Comparison.Prefix.TimeToXplode=Time to explode:\u0020 -Comparison.SimpleDecimalFormat=#,##0.## -Comparison.Time.Both=%+,d seconds (%d/%d)<br> -Comparison.Time.BothColored=<font color="%s">%+,d</font> seconds (%d/%d)<br> -Comparison.Time.LeftOnly=%d/\u221e<br> -Comparison.Time.RightOnly=\u221e/%d<br> -Comparison.VentCooling=Vent cooling: %s (%s/%s)<br> -Comparison.VentCoolingPossible=Possible vent cooling: %s (%s/%s)<br> - -# ComponentData keys are for providing extra details in the tooltips for the component palette. -# Suggested by kekzdealer in Pull Request: https://github.com/MauveCloud/Ic2ExpReactorPlanner/pull/67 -# but heavily modified since. - -ComponentData.AdvancedHeatExchanger=Heat Capacity: 10,000 <br> Hull Exchange Rate: 8 heat/s <br> Component Exchange Rate: 24 heat/s -ComponentData.AdvancedHeatVent=Heat Capacity: 1,000 <br> Self Venting Rate: 12 heat/s -ComponentData.ComponentHeatExchanger=Heat Capacity: 5,000 <br> Component Exchange Rate: 36 heat/s -ComponentData.ComponentHeatVent=Component Venting Rate: 4 heat/s -ComponentData.ContainmentReactorPlating=Dampens explosions -ComponentData.CoolantCell10k=Heat Capacity: 10,000 -ComponentData.CoolantCell180kHelium=Heat Capacity: 180,000 -ComponentData.CoolantCell180kNak=Heat Capacity: 180,000 -ComponentData.CoolantCell30k=Heat Capacity: 30,000 -ComponentData.CoolantCell360kHelium=Heat Capacity: 360,000 -ComponentData.CoolantCell360kNak=Heat Capacity: 360,000 -ComponentData.CoolantCell60k=Heat Capacity: 60,000 -ComponentData.CoolantCell60kHelium=Heat Capacity: 60,000 -ComponentData.CoolantCell60kNak=Heat Capacity: 60,000 -ComponentData.CoolantCell180kSpace=Heat Capacity: 180,000 -ComponentData.CoolantCell360kSpace=Heat Capacity: 360,000 -ComponentData.CoolantCell540kSpace=Heat Capacity: 540,000 -ComponentData.CoolantCell1080kSpace=Heat Capacity: 1080,000 -ComponentData.DualFuelRodCesium=Generation Time: 10,861 seconds <br> EU Generation: 40/60/80/100/120 /t <br> Heat Generation: 6/12/20/30/42 /s -ComponentData.DualFuelRodCoaxium=Generation Time: 20,000 seconds <br> EU Generation: 20/30/40/50/60 /t <br> Heat Generation: 0 /s -ComponentData.DualFuelRodMox=Generation Time: 10,000 seconds <br> EU Generation: [20,100)/[30,150)/[40,200)/[50,250)/[60,300) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 24/48/80/120/168 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 48/96/160/240/336 /s -ComponentData.DualFuelRodNaquadah=Generation Time: 100,000 seconds <br> EU Generation: [40,100)/[60,150)/[80,200)/[100,250)/[120,300) /t - scales linearly with hull temperature. <br> Heat Generation in EU reactor or when hull temperature<=50%: 24/48/80/120/168 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 48/96/160/240/336 /s -ComponentData.DualFuelRodNaquadahGTNH=Generation Time: 100,000 seconds <br> EU Generation: 20/30/40/50/60 /t <br> Heat Generation: 24/48/80/120/168 /s -ComponentData.DualFuelRodNaquadria=Generation Time: 100,000 seconds <br> EU Generation: [40,100)/[60,150)/[80,200)/[100,250)/[120,300) /t - scales linearly with hull temperature. <br> Heat Generation in EU reactor or when hull temperature<=50%: 24/48/80/120/168 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 48/96/160/240/336 /s -ComponentData.DualFuelRodThorium=Generation Time: 50,000 seconds <br> EU Generation: 4/6/8/10/12 /t <br> Heat Generation: 6/12/20/30/42 /s -ComponentData.DualFuelRodTiberium=Generation Time: 50,000 seconds <br> EU Generation: 10/20/30/40/50 /t <br> Heat Generation: 12/24/40/60/84 /s -ComponentData.DualFuelRodUranium=Generation Time: 20,000 seconds <br> EU Generation: 20/30/40/50/60 /t <br> Heat Generation: 24/48/80/120/168 /s -ComponentData.FuelRodCesium=Generation Time: 10,861 seconds <br> EU Generation: 10/20/30/40/50 /t <br> Heat Generation: 1/3/8/10/15 /s -ComponentData.FuelRodCoaxium=Generation Time: 20,000 seconds <br> EU Generation: 5/10/15/20/25 /t <br> Heat Generation: 0 /s -ComponentData.FuelRodMox=Generation Time: 10,000 seconds <br> EU Generation: [5,25)/[10,50)/[15,75)/[20,100)/[25,125) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 4/12/24/40/60 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 8/24/48/80/120 /s -ComponentData.FuelRodNaquadah=Generation Time: 100,000 seconds <br> EU Generation: [10,25)/[20,50)/[30,75)/[40,100)/[50,125) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 4/12/24/40/60 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 8/24/48/80/120 /s -ComponentData.FuelRodNaquadahGTNH=Generation Time: 100,000 seconds <br> EU Generation: 5/10/15/20/25 /t <br> Heat Generation: 4/12/24/40/60 /s -ComponentData.FuelRodNaquadria=Generation Time: 100,000 seconds <br> EU Generation: [10,25)/[20,50)/[30,75)/[40,100)/[50,125) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 4/12/24/40/60 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 8/24/48/80/120 /s -ComponentData.FuelRodTheCore=Generation Time: 100,000 seconds <br> EU Generation: 10880 /t <br> Heat Generation: 19584 /s -ComponentData.FuelRodThorium=Generation Time: 50,000 seconds <br> EU Generation: 1/2/3/4/5 /t <br> Heat Generation: 1/3/6/10/15 /s -ComponentData.FuelRodTiberium=Generation Time: 50,000 seconds <br> EU Generation: 5/10/15/20/25 /t <br> Heat Generation: 2/6/12/20/30 /s -ComponentData.FuelRodUranium=Generation Time: 20,000 seconds <br> EU Generation: 5/10/15/20/25 /t <br> Heat Generation: 4/12/24/40/60 /s -ComponentData.HeatCapacityReactorPlating=Increases maximum heat capacity -ComponentData.HeatExchanger=Heat Capacity: 2,500 <br> Hull Exchange Rate: 4 heat/s <br> Component Exchange Rate: 12 heat/s -ComponentData.HeatVent=Heat Capacity: 1,000 <br> Self Venting Rate: 6 heat/s -ComponentData.IridiumNeutronReflector=Durability: Infinite -ComponentData.LzhCondensator=Heat Capacity: 100,000 <br> Cannot be vented from. -ComponentData.NeutronReflector=Durability: 30,000 (10,000 in MC 1.7.10) -ComponentData.OverclockedHeatVent=Heat Capacity: 1,000 <br> Self Venting Rate: 20 heat/s <br> Hull Cooling Rate: 36 heat/s -ComponentData.QuadFuelRodCesium=Generation Time: 10,861 seconds <br> EU Generation: 120/160/200/240/280 /t <br> Heat Generation: 24/40/60/84/112 /s -ComponentData.QuadFuelRodCoaxium=Generation Time: 20,000 seconds <br> EU Generation: 60/80/100/120/140 /t <br> Heat Generation: 0 /s -ComponentData.QuadFuelRodMox=Generation Time: 10,000 seconds <br> EU Generation: [60,300)/[80,400)/[100,500)/[120,600)/[140,700) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 96/160/240/336/448 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 192/320/480/672/896 /s -ComponentData.QuadFuelRodNaquadah=Generation Time: 100,000 seconds <br> EU Generation: [120,300)/[160,400)/[200,500)/[240,600)/[280,700) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 96/160/240/336/448 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 192/320/480/672/896 /s -ComponentData.QuadFuelRodNaquadahGTNH=Generation Time: 100,000 seconds <br> EU Generation: 60/80/100/120/140 /t <br> Heat Generation: 96/160/240/336/448 /s -ComponentData.QuadFuelRodNaquadria=Generation Time: 100,000 seconds <br> EU Generation: [120,300)/[160,400)/[200,500)/[240,600)/[280,700) /t - scales linearly with hull temperature.<br> Heat Generation in EU reactor or when hull temperature<=50%: 96/160/240/336/448 /s <br> Heat Generation in fluid reactor when hull temperature>50%: 192/320/480/672/896 /s -ComponentData.QuadFuelRodThorium=Generation Time: 50,000 seconds <br> EU Generation: 12/16/20/24/28 /t <br> Heat Generation: 24/40/60/84/112 /s -ComponentData.QuadFuelRodTiberium=Generation Time: 50,000 seconds <br> EU Generation: 60/80/100/120/140 /t <br> Heat Generation: 48/80/120/168/224 /s -ComponentData.QuadFuelRodUranium=Generation Time: 20,000 seconds <br> EU Generation: 60/80/100/120/140 /t <br> Heat Generation: 96/160/240/336/448 /s -ComponentData.ReactorHeatExchanger=Heat Capacity: 5,000 <br> Hull Exchange Rate: 72 heat/s -ComponentData.ReactorHeatVent=Heat Capacity: 1,000 <br> Self Venting Rate: 5 heat/s <br> Hull Cooling Rate: 5 heat/s -ComponentData.ReactorPlating=Crafting component for Containment and Heat-Capacity Reactor Plating -ComponentData.RshCondensator=Heat Capacity: 20,000 <br> Cannot be vented from. -ComponentData.ThickNeutronReflector=Durability: 120,000 (40,000 in MC 1.7.10) - -# ComponentInfo keys are for updating information about a component during a simulation. - -ComponentInfo.BrokeTime=\nBroke after %,d seconds. -ComponentInfo.CooldownTime=\nTook %,d seconds to cool down. -ComponentInfo.GeneratedEU=\nGenerated %,.2f to %,.2f EU per second. -ComponentInfo.GeneratedHeat=\nGenerated %,.0f to %,.0f heat per second. -ComponentInfo.ReachedHeat=\nReached up to %,.0f of %,.0f heat. -ComponentInfo.ReceivedHeat=\nReceived at most %,.0f heat per second. -ComponentInfo.RemainingHeat=\nHad %,.0f heat left after main simulation stopped. -ComponentInfo.ReplacedTime=\nReplaced at %,d seconds. -ComponentInfo.ResidualHeat=\nHad %,.0f heat left after cooldown period. -ComponentInfo.UsedCooling=\nUsed %,.0f of %,.0f cooling. - - -# Keys for component names were originally matched to class names, to allow using reflection to look them up. -# However, refactoring eliminated the "one class for each component type" idea. -# These keys will be used both in the reactor area and the component selection area. - -ComponentName.AdvancedHeatExchanger=Advanced Heat Exchanger -ComponentName.AdvancedHeatVent=Advanced Heat Vent -ComponentName.ComponentHeatExchanger=Component Heat Exchanger -ComponentName.ComponentHeatVent=Component Heat Vent -ComponentName.ContainmentReactorPlating=Containment Reactor Plating -ComponentName.CoolantCell10k=10k Coolant Cell -ComponentName.CoolantCell1080kSpace=1080k Space Coolant Cell -ComponentName.CoolantCell180kHelium=180k He Coolant Cell -ComponentName.CoolantCell180kNak=180k NaK Coolant Cell -ComponentName.CoolantCell180kSpace=180k Space Coolant Cell -ComponentName.CoolantCell30k=30k Coolant Cell -ComponentName.CoolantCell360kHelium=360k He Coolant Cell -ComponentName.CoolantCell360kNak=360k NaK Coolant Cell -ComponentName.CoolantCell360kSpace=360k Space Coolant Cell -ComponentName.CoolantCell540kSpace=540k Space Coolant Cell -ComponentName.CoolantCell60k=60k Coolant Cell -ComponentName.CoolantCell60kHelium=60k He Coolant Cell -ComponentName.CoolantCell60kNak=60k NaK Coolant Cell -ComponentName.DualFuelRodCesium=Dual Fuel Rod (Cesium) -ComponentName.DualFuelRodCoaxium=Dual Fuel Rod (Coaxium) -ComponentName.DualFuelRodMox=Dual Fuel Rod (MOX) -ComponentName.DualFuelRodNaquadah=Dual Fuel Rod (Naquadah) -ComponentName.DualFuelRodNaquadahGTNH=Dual Fuel Rod (Naquadah) -ComponentName.DualFuelRodNaquadria=Dual Fuel Rod (Naquadria) -ComponentName.DualFuelRodThorium=Dual Fuel Rod (Thorium) -ComponentName.DualFuelRodTiberium=Dual Fuel Rod (Tiberium) -ComponentName.DualFuelRodUranium=Dual Fuel Rod (Uranium) -ComponentName.FuelRodCesium=Fuel Rod (Cesium) -ComponentName.FuelRodCoaxium=Fuel Rod (Coaxium) -ComponentName.FuelRodMox=Fuel Rod (MOX) -ComponentName.FuelRodNaquadah=Fuel Rod (Naquadah) -ComponentName.FuelRodNaquadahGTNH=Fuel Rod (Naquadah) -ComponentName.FuelRodNaquadria=Fuel Rod (Naquadria) -ComponentName.FuelRodTheCore=Fuel Rod (The Core) -ComponentName.FuelRodThorium=Fuel Rod (Thorium) -ComponentName.FuelRodTiberium=Fuel Rod (Tiberium) -ComponentName.FuelRodUranium=Fuel Rod (Uranium) -ComponentName.HeatCapacityReactorPlating=Heat-Capacity Reactor Plating -ComponentName.HeatExchanger=Heat Exchanger -ComponentName.HeatVent=Heat Vent -ComponentName.IridiumNeutronReflector=Iridium Neutron Reflector -ComponentName.LzhCondensator=LZH-Condensator -ComponentName.NeutronReflector=Neutron Reflector -ComponentName.OverclockedHeatVent=Overclocked Heat Vent -ComponentName.QuadFuelRodCesium=Quad Fuel Rod (Cesium) -ComponentName.QuadFuelRodCoaxium=Quad Fuel Rod (Coaxium) -ComponentName.QuadFuelRodMox=Quad Fuel Rod (MOX) -ComponentName.QuadFuelRodNaquadah=Quad Fuel Rod (Naquadah) -ComponentName.QuadFuelRodNaquadahGTNH=Quad Fuel Rod (Naquadah) -ComponentName.QuadFuelRodNaquadria=Quad Fuel Rod (Naquadria) -ComponentName.QuadFuelRodThorium=Quad Fuel Rod (Thorium) -ComponentName.QuadFuelRodTiberium=Quad Fuel Rod (Tiberium) -ComponentName.QuadFuelRodUranium=Quad Fuel Rod (Uranium) -ComponentName.ReactorHeatExchanger=Reactor Heat Exchanger -ComponentName.ReactorHeatVent=Reactor Heat Vent -ComponentName.ReactorPlating=Reactor Plating -ComponentName.RshCondensator=RSH-Condensator -ComponentName.ThickNeutronReflector=Thick Neutron Reflector - -ComponentTooltip.Broken=Broke during last simulation -ComponentTooltip.ResidualHeat=Had residual heat after last simulation - -Config.CSVCheckbox=Output CSV Data -Config.CSVLimit=For how many simulated seconds: -Config.EUReactor=EU Reactor -Config.FluidReactor=Fluid Reactor -Config.InitialComponentHeat=Initial Heat: -Config.NoComponentSelected=No component selected -Config.OffPulse=Off-pulse duration: -Config.OnPulse=On-pulse duration: -Config.PlacingReactorPause=Reactor Pause: -Config.PlacingReplacementThreshold=Threshold: -Config.PulseHelp=(on-pulse can be set to 5 million to mimic having no redstone timing) -Config.ReactorCoolantInjectors=Use Reactor Coolant Injectors (MC 1.8+ only) -Config.ReactorPause=Reactor Pause (seconds): -Config.ReactorPauseHelp=<html>(This is how long the reactor will pause while replacing this component)</html> -Config.ReplacementThreshold=Replacement Threshold: -Config.ReplacementThresholdHelp=<html>(Set higher than component's initial heat/damage to replace the component when it gets this hot/damaged, or lower to replace a component that has cooled; broken components will be replaced during automation runs regardless of this setting)</html> -Config.ResumeTemp=Resume when reactor temp <= -# Same language string should be usable anywhere "seconds" appears. -Config.Seconds=seconds -Config.SimulationStyle=Simulation Style: -Config.SuspendTemp=Suspend when reactor temp >= -Config.SuspendTempHelp=(both temps can be set to match explode temp to mimic having no temperature control) - -CSVData.EntryComponentValue=,"%.2f" -CSVData.EntryComponentOutput=,%.0f -CSVData.EntryCoreHeat=,%.0f -CSVData.EntryEUOutput=,"%.2f" -CSVData.EntryHUOutput=,%.0f -CSVData.EntryReactorTick=%d -CSVData.HeaderComponentName=,%s (R%dC%d) -CSVData.HeaderComponentOutput=,%s (R%dC%d) Output -CSVData.HeaderCoreHeat=,Core Heat -CSVData.HeaderEUOutput=,EU Output -CSVData.HeaderHUOutput=,HU Output -CSVData.HeaderReactorTick=Reactor Time - -MaterialName.AdvancedAlloy=Advanced Alloy -MaterialName.AdvancedCircuit=Advanced Circuit -MaterialName.Aluminium=Aluminium -MaterialName.BasicCircuit=Basic Circuit -MaterialName.Beryllium=Beryllium -MaterialName.Bronze=Bronze -MaterialName.CallistoIceDust=Callisto Ice Dust -MaterialName.CesiumFuel=Cesium-Enriched Nuclear Fuel -MaterialName.Coal=Coal -MaterialName.CoaxiumFuel=Coaxium-Enriched Nuclear Fuel -MaterialName.Copper=Copper -MaterialName.Diamond=Diamond -MaterialName.DistilledWater=Distilled Water -MaterialName.EmptyCell=Empty Cell -MaterialName.EnrichedNaquadah=Enriched Naquadah -MaterialName.FluxedElectrum=Fluxed Electrum -MaterialName.Glass=Glass -MaterialName.GlowstoneDust=Glowstone Dust -MaterialName.Gold=Gold -MaterialName.Graphite=Graphite -MaterialName.Helium==Helium -MaterialName.Iridium=Iridium -MaterialName.IridiumReinforcedPlate=Iridium Reinforced Plate -MaterialName.Iron=Iron -MaterialName.LapisLazuli=Lapis Lazuli -MaterialName.Lead=Lead -MaterialName.LedoxDust=Ledox Dust -MaterialName.MoxFuel=MOX Fuel -MaterialName.Naquadria=Naquadria -MaterialName.Platinum=Platinum -MaterialName.Potassium=Potassium -MaterialName.Redstone=Redstone -MaterialName.ReinforcedGlass=Reinforced Glass -MaterialName.Rubber=Rubber -MaterialName.Sodium=Sodium -MaterialName.Thorium=Thorium -MaterialName.Tiberium=Tiberium -MaterialName.Tungsten=Tungsten -MaterialName.Tin=Tin -MaterialName.UraniumFuel=Uranium Fuel - -# %s at the end of this string is for optionally showing the range of active time. -Simulation.ActiveTime=Reactor was active for a total of %,d seconds%s.\n -Simulation.ActiveTimeRange=\u0020(%,d to %,d seconds at a time) -Simulation.ActiveTimeSingle=\u0020(%,d seconds at a time) -Simulation.CancelledAtTick=Simulation cancelled after simulating %,d seconds.\n -Simulation.ComponentHeating=Component heating: %.2f average.\n -Simulation.ComponentsReplaced=Components replaced:\n%s -Simulation.CSVOpenFailure=Failed to open CSV file for output.\n -Simulation.CycleCompleteTime=Cycle complete after %,d seconds.\n -# This will be used to optionally show extra precision, in format strings where %s is used when %.2f might otherwise be expected. -Simulation.DecimalFormat=#,##0.## -Simulation.Efficiency=Efficiency: %.2f average, %.2f minimum, %.2f maximum\n -Simulation.ElapsedTime=Simulation took %.2f seconds.\n -Simulation.ErrorCooldown=Error %,d simulated seconds into cooldown.\n -Simulation.ErrorReactor=Error after simulating %d seconds of reactor activity\n -Simulation.EUOutputs=Total output after full simulation: %s EU (%s EU/t average, %s EU/t min, %s EU/t max)\n -Simulation.EUOutputsBeforeDepleted=Total output before first fuel rod depleted: %s EU (%s EU/t average, %s EU/t min, %s EU/t max)\n -Simulation.EUOutputsBeforeBreak=Total output before first component broken: %s EU (%s EU/t average, %s EU/t min, %s EU/t max)\n -Simulation.ExcessCooling=Excess cooling: %.2f\n -Simulation.ExcessHeating=Excess heating: %.2f\n -Simulation.ExplosionPower=Raw explosion power: %,.2f\n -Simulation.FirstComponentBrokenDetails=First Component Broken: %s at row %d column %d, at %d seconds.\n -Simulation.FirstRodDepletedDetails=First Fuel Rod Depleted: %s at row %d column %d, at %d seconds.\n -Simulation.FuelRodsTime=Fuel rods (if any) stopped after %,d seconds.\n -Simulation.HeatOutputs=Total output after full simulation: %s HU (%s HU/t average, %s HU/t minimum, %s HU/t max)\n -Simulation.HeatOutputsBeforeBreak=Total output before first component broken: %s HU (%s HU/t average, %s HU/t minimum, %s HU/t max)\n -Simulation.HeatOutputsBeforeDepleted=Total output before first fuel rod depleted: %s HU (%s HU/t average, %s HU/t minimum, %s HU/t max)\n -Simulation.HullCooling=Hull cooling: %,.2f average of %,.0f possible.\n -Simulation.HullHeating=Hull heating: %,.2f average.\n -Simulation.InactiveTime=Reactor was inactive for a total of %,d seconds%s.\n -Simulation.InactiveTimeRange=\u0020(%,d to %,d seconds at a time) -Simulation.InactiveTimeSingle=\u0020(%,d seconds at a time) -Simulation.LapisUsed=Used %d Lapis Lazuli Blocks.\n -Simulation.MaxHeatGenerated=Max heat generated (internally, by fuel rods): %,.0f\n -Simulation.NoCooldown=No cooldown needed.\n -Simulation.NoFuelRods=No fuel rods found! Simulating a pulsed cycle makes no sense! -Simulation.ReactorCooldownTime=Reactor took %,d seconds to cool down.\n -Simulation.ReactorHeatBuildup=Reactor heat buildup per second (while all components are intact):%,.0f minimum, %,.0f maximum.\n -Simulation.ReactorMaxTemp=Reactor maximum temperature: %,.0f\n -Simulation.ReactorMaxTempBeforeDepleted=Reactor maximum temperature (before first fuel rod depleted): %,.0f\n -Simulation.ReactorMinTemp=Reactor minimum temperature: %,.0f\n -Simulation.ReactorMinTempBeforeDepleted=Reactor minimum temperature (before first fuel rod depleted): %,.0f\n -Simulation.ReactorOverheatedTime=Reactor overheated at %,d seconds.\n -Simulation.ReactorRemainingHeat=Reactor remained at %,.0f heat after main simulation finished.\n -Simulation.ReactorResidualHeat=Reactor remained at %,.0f heat even after cool down period of %,d seconds.\n -Simulation.RedstoneUsed=Used %d Blocks of Redstone.\n -Simulation.Started=Simulation started.\n -Simulation.TimeToBelow50=Reactor will dip below 50%% heat for the first time (after being above it) at %d seconds.\n -Simulation.TimeToBurn=Reactor will reach "Burn" temperature at %d seconds.\n -Simulation.TimeToEvaporate=Reactor will reach "Evaporate" temperature at %d seconds.\n -Simulation.TimeToHurt=Reactor will reach "Hurt" temperature at %d seconds.\n -Simulation.TimeToLava=Reactor will reach "Lava" temperature at %d seconds.\n -# Note: The "e" is deliberately dropped from "Explode" in the key name so that it will sort after the others. -Simulation.TimeToXplode=Reactor will explode at %d seconds.\n -Simulation.TimeWithoutExploding=\nReactor ran for %,d seconds without exploding.\n -Simulation.TotalCellCooling=Total Cell Cooling (peak usages): %,.2f\n -Simulation.TotalCondensatorCooling=Total Condensator Cooling (peak usages): %,.2f\n -Simulation.TotalCooldownTime=Other components took %,d seconds to cool down (as much as they would).\n -Simulation.TotalVentCooling=Total Vent Cooling (peak usages, theoretical maximum): %,.2f of %,.2f\n -Simulation.VentCooling=Vent cooling: %,.2f average of %,.0f possible.\n - -UI.AdvancedTab=Advanced -#Needs to be heavily abbreviated to fit on the button. -UI.AutomateButton=a -UI.AutomateButtonFont=Arial 10 -UI.AutomatedReactor=Automated Reactor -UI.AutomatedReactorTooltip=Turn on to allow automating of adding/removing of components. -UI.AutomationTooltip=Click to define automation rules for this component. -UI.CancelButton=Cancel -UI.ChosenComponentRowCol=%s at row %d column %d -UI.ClearGridButton=Clear Grid -UI.CodeLabel=Code: -UI.ComparisonTab=Comparison -UI.ComponentAutomationTab=Component Automation -#Needs to be heavily abbreviated to fit on the button. -UI.ComponentInfoButton=i -UI.ComponentInfoButtonFont=Arial 10 -UI.ComponentInfoButtonTooltip=Click for information about this component -UI.ComponentInfoDefault=Please run a simulation and select a component in the reactor grid above to see its details. -UI.ComponentInfoLastSimRowCol=%s at row %d column %d\n%s -UI.ComponentListTab=Component List -UI.ComponentPlacingDefault=Placing Component: None -UI.ComponentPlacingSpecific=Placing Component: %s -UI.ComponentTab=Component -UI.CopyCodeButton=Copy Code -UI.CopyComparisonData=Copy Comparison Data -UI.CSVBrowseButton=Browse -UI.CSVFileDefault=No File Selected -UI.CSVHelp=<html>Warnings:<ol><li>Simulation will likely run much slower with CSV Output enabled, especially if the chosen file is on a mechanical hard drive.</li><li>User is responsible for making sure target drive has enough space for the CSV file.</li><li>Additional simulations will overwrite the CSV file unless the target is manually changed.</li></ol></html> -UI.CSVTab=CSV -UI.EnableGT508Components=Enable GT 5.08 Components -UI.EnableGT509Components=Enable GT 5.09 Components -UI.ExpandAdvancedAlloy=Expand Advanced Alloy into constituent materials (invalid when using GregTech) -UI.GregTechVersion=GregTech Version: -UI.GregTechVersionNone=None -UI.GTReactorBehavior=GT 5.09 = (2x base EU). GTNH = (10x base EU, Naq Rods->not-MOX-like). Setting always applies to <version>-only fuel rods regardless. -UI.InitialHeatDisplay=\u0020(initial heat: %,d) -UI.InitialReactorHeat=Initial Reactor Heat: -UI.InitialReactorHeatTooltip=Use this to set a heat value for testing MOX-like reactors. -UI.LockInTabCode=Lock in-tab code -UI.MainTitle=IC2 Experimental Reactor Planner -UI.MaterialDecimalFormat=#,##0.## -UI.MaterialsTab=Materials -UI.MaxHeatDefault=/10,000 -UI.MaxHeatSpecific=/%,.0f -UI.MaxSimulationTicks=Maximum time to simulate: -UI.MaxSimulationTicksTooltip=Forces simulation to stop after simulating this much time, even if reactor hasn't exploded or ceased outputting HU or EU. -UI.MinecraftVersion=Minecraft Version: -UI.NoComponentLastSimRowCol=No component at row %d column %d during last simulation. -UI.NoComponentRowCol=No component at row %d column %d. -UI.NoSimulationRun=No simulation run yet. -UI.OnlyShowDiffData=Only show data that is significantly different -UI.PasteCodeButton=Paste Code -UI.PulseConfigurationTab=Pulse Configuration -UI.PulsedReactor=Pulsed Reactor -UI.RemoveAddonComponentsTitle=Add-on Components Found -UI.RemoveGT508ComponentsText=GT 5.08 components found in current design. Remove them? -UI.RemoveGT509ComponentsText=GT 5.09 components found in current design. Remove them? -UI.ResetPulseConfig=Reset Pulse Configuration -UI.ShowComponentDetailButtons=Show Component Detail Buttons -UI.ShowComponentPreconfigControls=Show Component Pre-configuration Controls -UI.ShowOldStyleReactorCode=Show old-style (pre-2.3.1) reactor code -UI.SimulateButton=Simulate -UI.SimulationTab=Simulation -UI.SimulationTypeAutomation=Pulsed Automation -UI.SimulationTypePulsed=Pulsed Cycle -UI.SimulationTypeSimple=Simple Cycle -UI.TemperatureEffectsDefault=Burn: 4,000 Evaporate: 5,000 Hurt: 7,000 Lava: 8,500 Explode: 10,000 -UI.TemperatureEffectsSpecific=Burn: %,d Evaporate: %,d Hurt: %,d Lava: %,d Explode: %,d -UI.TexturePackBrowseButton=Browse -UI.TexturePackClearButton=Clear -UI.TexturePackDefault=Texture Pack: no file selected -UI.TexturePackHelp=(restart planner to see new textures) -UI.TexturePackSpecific=Texture Pack: %s -UI.UseGTRecipes=Use GregTech recipes for component materials (where applicable and unambiguous) -UI.UseUfcForCoolantCells=Use Universal Fluid Cells for coolant (incompatible with GregTech recipes option) -UI.VersionNumber=Version %s - -Warning.DepletedIsotope=Obsolete component (depleted isotope cell) at row %d column %d removed.\n -Warning.DualPlutonium=Obsolete component (dual plutonium cell) at row %d column %d removed.\n -Warning.Heating=Obsolete component (heating cell) at row %d column %d removed.\n -Warning.InvalidReactorCode=Invalid Reactor Code: %s -Warning.Plutonium=Obsolete component (plutonium cell) at row %d column %d removed.\n -Warning.QuadPlutonium=Obsolete component (quad plutonium cell) at row %d column %d removed.\n -Warning.Title=Warning(s) -Warning.Unrecognized=Unrecognized component (id %d) at row %d column %d removed.\n diff --git a/src/main/java/Ic2ExpReactorPlanner/BundleHelper.java b/src/main/java/Ic2ExpReactorPlanner/BundleHelper.java deleted file mode 100644 index 8bbc9aab45..0000000000 --- a/src/main/java/Ic2ExpReactorPlanner/BundleHelper.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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; - -import java.util.ResourceBundle; - -/** - * Utility class to handle handle access to the planner's resource bundle. - * Methods may be static-imported, and hopefully this will make the code more - * concise, but not to the point of obfuscation. - * @author Brian McCloud - */ -public class BundleHelper { - - private BundleHelper() { - // private no-op constructor to prevent instantiation. - } - - private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("Ic2ExpReactorPlanner/Bundle"); - - /** - * Looks up a key in the planner's resource bundle. - * @param key the key to look up in the resource bundle. - * @return the value from the resource bundle for the default locale of the system the planner is being run on. - */ - public static String getI18n(String key) { - return BUNDLE.getString(key); - } - - /** - * Uses a resource bundle entry as a format specifier. - * @param key the key to look up in the resource bundle. - * @param args the arguments to use in String.format. - * @return the formatted string. - */ - public static String formatI18n(String key, Object... args) { - return String.format(getI18n(key), args); - } - -} diff --git a/src/main/java/Ic2ExpReactorPlanner/Bundle_zh_CN.properties b/src/main/java/Ic2ExpReactorPlanner/Bundle_zh_CN.properties deleted file mode 100644 index b3d5076fb2..0000000000 --- a/src/main/java/Ic2ExpReactorPlanner/Bundle_zh_CN.properties +++ /dev/null @@ -1,373 +0,0 @@ - -# Comparison keys are for comparing two simulated reactors. Instead of being in -# in a TextArea like the main simulation, the comparison will be in a JLabel, wrapped -# in html tags, to allow color coding of the text more easily. - -Comparison.CompareDecimalFormat=+#,##0.##;-# -Comparison.ComponentHeating=\u5143\u4ef6\u4ea7\u70ed: %s (%s/%s)<br> -Comparison.ComponentsHeading=\u5143\u4ef6:<br> -Comparison.ComponentsReplacedHeading=\u66f4\u6362\u5143\u4ef6:<br> -Comparison.Default=\u8bf7\u81f3\u5c11\u8fd0\u884c\u4e24\u6b21\u6a21\u62df (\u6700\u597d\u4f7f\u7528\u4e0d\u540c\u7684\u53cd\u5e94\u5806\u8bbe\u8ba1) \u4ee5\u8fdb\u884c\u6bd4\u8f83. -Comparison.EUEUoutput=\u603b\u4ea7\u80fd: %s (%s/%s) EU (\u5e73\u5747: %s EU/t (%s/%s), \u6700\u5c0f: %s EU/t (%s/%s), \u6700\u5927: %s EU/t (%s/%s))<br> -Comparison.EUHUoutput=\u603b\u4ea7\u80fd/\u4ea7\u70ed: %s EU / %s HU (\u5e73\u5747: %s EU/t / %s HU/t, \u6700\u5c0f: %s EU/t / %s HU/t, \u6700\u5927: %s EU/t / %s HU/t)<br> -Comparison.Header=\u8fd9\u4e00\u6b21\u6a21\u62df (\u5de6\u4fa7, \u4e3b\u4ee3\u7801) \u4e0e\u4e0a\u4e00\u6b21\u6a21\u62df (\u53f3\u4fa7, \u6807\u7b7e\u5185\u4ee3\u7801) \u76f8\u6bd4\u8f83: -Comparison.HUEUoutput=\u603b\u4ea7\u70ed/\u4ea7\u80fd: %s HU / %s EU (\u5e73\u5747: %s HU/t / %s EU/t, \u6700\u5c0f: %s HU/t / %s EU/t, \u6700\u5927: %s HU/t / %s EU/t)<br> -Comparison.HUHUoutput=\u603b\u4ea7\u70ed: %s (%s/%s) HU (\u5e73\u5747: %s HU/t (%s/%s), \u6700\u5c0f: %s HU/t (%s/%s), \u6700\u5927: %s HU/t (%s/%s))<br> -Comparison.HullCooling=\u5916\u58f3\u51b7\u5374: %s (%s/%s)<br> -Comparison.HullCoolingPossible=\u53ef\u80fd\u7684\u5916\u58f3\u51b7\u5374: %s (%s/%s)<br> -Comparison.HullHeating=\u5916\u58f3\u4ea7\u70ed: %s (%s/%s)<br> -Comparison.MaterialsEntry=<font color="%s">%s %s (%s/%s)</font><br> -Comparison.MaterialsHeading=\u6750\u6599:<br> -Comparison.NoDifferences=\u672a\u68c0\u6d4b\u5230\u660e\u663e\u5dee\u5f02. -Comparison.PostsimMaxTemp=\u53cd\u5e94\u5806\u6700\u9ad8\u6e29\u5ea6: %s (%s/%s)<br> -Comparison.PostsimMinTemp=\u53cd\u5e94\u5806\u6700\u4f4e\u6e29\u5ea6: %s (%s/%s)<br> -Comparison.PredepleteMaxTemp=\u53cd\u5e94\u5806\u6700\u9ad8\u6e29\u5ea6 (\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u4e4b\u524d): %s (%s/%s)<br> -Comparison.PredepleteMinTemp=\u53cd\u5e94\u5806\u6700\u4f4e\u6e29\u5ea6 (\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u4e4b\u524d): %s (%s/%s)<br> -Comparison.Prefix.PostSimulation=\u6a21\u62df\u540e,\u0020 -Comparison.Prefix.PostSimulationTime=\u6a21\u62df\u65f6\u95f4:\u0020 -Comparison.Prefix.Prebreak=\u5728\u7b2c\u4e00\u4e2a\u5143\u4ef6\u635f\u574f\u4e4b\u524d,\u0020 -Comparison.Prefix.PrebreakTime=\u7b2c\u4e00\u6b21\u5143\u4ef6\u635f\u574f\u7684\u65f6\u95f4:\u0020 -Comparison.Prefix.Predeplete=\u5728\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u4e4b\u524d,\u0020 -Comparison.Prefix.PredepleteTime=\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u65f6\u95f4:\u0020 -Comparison.Prefix.TimeToBelow50=\u8fbe\u5230\u70ed\u91cf\u964d\u81f3 50%% \u4ee5\u4e0b\u7684\u65f6\u95f4 (\u5728\u9ad8\u4e8e 50%% \u4e4b\u540e):\u0020 -Comparison.Prefix.TimeToBurn=\u8fbe\u5230 "\u71c3\u70e7" \u6e29\u5ea6\u7684\u65f6\u95f4:\u0020 -Comparison.Prefix.TimeToEvaporate=\u8fbe\u5230 "\u84b8\u53d1" \u6e29\u5ea6\u7684\u65f6\u95f4:\u0020 -Comparison.Prefix.TimeToHurt=\u8fbe\u5230 "\u4f24\u5bb3" \u6e29\u5ea6\u7684\u65f6\u95f4:\u0020 -Comparison.Prefix.TimeToLava=\u8fbe\u5230 "\u7194\u5316" \u6e29\u5ea6\u7684\u65f6\u95f4:\u0020 -Comparison.Prefix.TimeToXplode=\u8fbe\u5230\u7206\u70b8\u7684\u65f6\u95f4:\u0020 -Comparison.SimpleDecimalFormat=#,##0.## -Comparison.Time.Both=%+,d \u79d2 (%d/%d)<br> -Comparison.Time.BothColored=<font color="%s">%+,d</font> \u79d2 (%d/%d)<br> -Comparison.Time.LeftOnly=%d/\u221e<br> -Comparison.Time.RightOnly=\u221e/%d<br> -Comparison.VentCooling=\u6563\u70ed\u7247\u51b7\u5374: %s (%s/%s)<br> -Comparison.VentCoolingPossible=\u53ef\u80fd\u7684\u6563\u70ed\u7247\u51b7\u5374: %s (%s/%s)<br> - -# ComponentData keys are for providing extra details in the tooltips for the component palette. -# Suggested by kekzdealer in Pull Request: https://github.com/MauveCloud/Ic2ExpReactorPlanner/pull/67 -# but heavily modified since. - -ComponentData.AdvancedHeatExchanger=\u70ed\u5bb9\u91cf: 10,000 <br> \u53cd\u5e94\u5806\u70ed\u4ea4\u6362\u7387: 8 heat/s <br> \u5143\u4ef6\u70ed\u4ea4\u6362\u7387: 24 heat/s -ComponentData.AdvancedHeatVent=\u70ed\u5bb9\u91cf: 1,000 <br> \u81ea\u6563\u70ed\u7387: 12 heat/s -ComponentData.ComponentHeatExchanger=\u70ed\u5bb9\u91cf: 5,000 <br> \u5143\u4ef6\u70ed\u4ea4\u6362\u7387: 36 heat/s -ComponentData.ComponentHeatVent=\u5143\u4ef6\u51b7\u5374\u901f\u5ea6: 4 heat/s -ComponentData.ContainmentReactorPlating=\u964d\u4f4e\u7206\u70b8\u8303\u56f4 -ComponentData.CoolantCell10k=\u70ed\u5bb9\u91cf: 10,000 -ComponentData.CoolantCell180kHelium=\u70ed\u5bb9\u91cf: 180,000 -ComponentData.CoolantCell180kNak=\u70ed\u5bb9\u91cf: 180,000 -ComponentData.CoolantCell30k=\u70ed\u5bb9\u91cf: 30,000 -ComponentData.CoolantCell360kHelium=\u70ed\u5bb9\u91cf: 360,000 -ComponentData.CoolantCell360kNak=\u70ed\u5bb9\u91cf: 360,000 -ComponentData.CoolantCell60k=\u70ed\u5bb9\u91cf: 60,000 -ComponentData.CoolantCell60kHelium=\u70ed\u5bb9\u91cf: 60,000 -ComponentData.CoolantCell60kNak=\u70ed\u5bb9\u91cf: 60,000 -ComponentData.DualFuelRodCesium=\u6301\u7eed\u65f6\u95f4: 10,861 \u79d2 <br>\u4ea7\u51fa EU: 40/60/80/100/120 <br> \u4ea7\u751f\u70ed\u91cf: 6/12/20/30/42 -ComponentData.DualFuelRodCoaxium=\u6301\u7eed\u65f6\u95f4: 20,000 \u79d2 <br>\u4ea7\u51fa EU: 20/30/40/50/60 <br> \u4ea7\u751f\u70ed\u91cf: 0 -ComponentData.DualFuelRodMox=\u6301\u7eed\u65f6\u95f4: 10,000 \u79d2 <br>\u4ea7\u51fa EU: [20,100)/[30,150)/[40,200)/[50,250)/[60,300) - \u4e0e\u53cd\u5e94\u5806\u6e29\u5ea6\u6210\u7ebf\u6027\u6bd4\u4f8b.<br> EU \u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6<=50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 24/48/80/120/168 <br> \u6d41\u4f53\u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6>50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 48/96/160/240/336 -ComponentData.DualFuelRodNaquadah=\u6301\u7eed\u65f6\u95f4: 100,000 \u79d2 <br>\u4ea7\u51fa EU: [40,100)/[60,150)/[80,200)/[100,250)/[120,300) - \u4e0e\u53cd\u5e94\u5806\u6e29\u5ea6\u6210\u7ebf\u6027\u6bd4\u4f8b. <br> EU \u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6<=50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 24/48/80/120/168 <br> \u6d41\u4f53\u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6>50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 48/96/160/240/336 -ComponentData.DualFuelRodThorium=\u6301\u7eed\u65f6\u95f4: 50,000 \u79d2 <br>\u4ea7\u51fa EU: 4/6/8/10/12 <br> \u70ed\u91cf\u4ea7\u751f: 6/12/20/30/42 -ComponentData.DualFuelRodUranium=\u6301\u7eed\u65f6\u95f4: 20,000 \u79d2 <br>\u4ea7\u51fa EU: 20/30/40/50/60 <br> \u4ea7\u751f\u70ed\u91cf: 24/48/80/120/168 -ComponentData.FuelRodCesium=\u6301\u7eed\u65f6\u95f4: 10,861 \u79d2 <br>\u4ea7\u51fa EU: 10/20/30/40/50 <br> \u4ea7\u751f\u70ed\u91cf: 1/3/8/10/15 -ComponentData.FuelRodCoaxium=\u6301\u7eed\u65f6\u95f4: 20,000 \u79d2 <br>\u4ea7\u51fa EU: 5/10/15/20/25 <br> \u4ea7\u751f\u70ed\u91cf: 0 -ComponentData.FuelRodMox=\u6301\u7eed\u65f6\u95f4: 10,000 \u79d2 <br>\u4ea7\u51fa EU: [5,25)/[10,50)/[15,75)/[20,100)/[25,125) - \u4e0e\u53cd\u5e94\u5806\u6e29\u5ea6\u6210\u7ebf\u6027\u6bd4\u4f8b.<br> EU \u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6<=50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 4/12/24/40/60 <br> \u6d41\u4f53\u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6>50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 8/24/48/80/120 -ComponentData.FuelRodNaquadah=\u6301\u7eed\u65f6\u95f4: 100,000 \u79d2 <br>\u4ea7\u51fa EU: [10,25)/[20,50)/[30,75)/[40,100)/[50,125) - \u4e0e\u53cd\u5e94\u5806\u6e29\u5ea6\u6210\u7ebf\u6027\u6bd4\u4f8b.<br> EU \u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6<=50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 4/12/24/40/60 <br> \u6d41\u4f53\u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6>50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 8/24/48/80/120 -ComponentData.FuelRodThorium=\u6301\u7eed\u65f6\u95f4: 50,000 \u79d2 <br>\u4ea7\u51fa EU: 1/2/3/4/5 <br> \u4ea7\u751f\u70ed\u91cf: 1/3/8/10/15 -ComponentData.FuelRodUranium=\u6301\u7eed\u65f6\u95f4: 20,000 \u79d2 <br>\u4ea7\u51fa EU: 5/10/15/20/25 <br> \u4ea7\u751f\u70ed\u91cf: 4/12/24/40/60 -ComponentData.HeatCapacityReactorPlating=\u589e\u52a0\u6700\u5927\u70ed\u5bb9\u91cf -ComponentData.HeatExchanger=\u70ed\u5bb9\u91cf: 2,500 <br> \u53cd\u5e94\u5806\u70ed\u4ea4\u6362\u7387: 4 heat/s <br> \u5143\u4ef6\u70ed\u4ea4\u6362\u7387: 12 heat/s -ComponentData.HeatVent=\u70ed\u5bb9\u91cf: 1,000 <br> \u81ea\u6563\u70ed\u7387: 6 heat/s -ComponentData.IridiumNeutronReflector=\u8010\u4e45: \u65e0\u9650 -ComponentData.LzhCondensator=\u70ed\u5bb9\u91cf: 100,000 <br> \u65e0\u6cd5\u88ab\u6563\u70ed\u7247\u51b7\u5374. -ComponentData.NeutronReflector=\u8010\u4e45: 30,000 (MC 1.7.10 \u4e2d\u4e3a 10,000) -ComponentData.OverclockedHeatVent=\u70ed\u5bb9\u91cf: 1,000 <br> \u81ea\u6563\u70ed\u7387: 20 heat/s <br> \u51b7\u5374\u901f\u5ea6: 36 heat/s -ComponentData.QuadFuelRodCesium=\u6301\u7eed\u65f6\u95f4: 10,861 \u79d2 <br>\u4ea7\u51fa EU: 120/160/200/240/280 <br> \u4ea7\u751f\u70ed\u91cf: 24/40/60/84/112 -ComponentData.QuadFuelRodCoaxium=\u6301\u7eed\u65f6\u95f4: 20,000 \u79d2 <br>\u4ea7\u51fa EU: 60/80/100/120/140 <br> \u4ea7\u751f\u70ed\u91cf: 0 -ComponentData.QuadFuelRodMox=\u6301\u7eed\u65f6\u95f4: 10,000 \u79d2 <br>\u4ea7\u51fa EU: [60,300)/[80,400)/[100,500)/[120,600)/[140,700) - \u4e0e\u53cd\u5e94\u5806\u6e29\u5ea6\u6210\u7ebf\u6027\u6bd4\u4f8b.<br> EU \u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6<=50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 96/160/240/336/448 <br> \u6d41\u4f53\u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6>50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 192/320/480/672/896 -ComponentData.QuadFuelRodNaquadah=\u6301\u7eed\u65f6\u95f4: 100,000 \u79d2 <br>\u4ea7\u51fa EU: [120,300)/[160,400)/[200,500)/[240,600)/[280,700) - \u4e0e\u53cd\u5e94\u5806\u6e29\u5ea6\u6210\u7ebf\u6027\u6bd4\u4f8b.<br> EU \u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6<=50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 96/160/240/336/448 <br> \u6d41\u4f53\u53cd\u5e94\u5806\u6a21\u5f0f\u4e0b, \u5f53\u5916\u58f3\u6e29\u5ea6>50%\u65f6\u7684\u4ea7\u70ed\u6548\u7387: 192/320/480/672/896 -ComponentData.QuadFuelRodThorium=\u6301\u7eed\u65f6\u95f4: 50,000 \u79d2 <br>\u4ea7\u51fa EU: 12/16/20/24/28 <br> \u4ea7\u751f\u70ed\u91cf: 24/40/60/84/112 -ComponentData.QuadFuelRodUranium=\u6301\u7eed\u65f6\u95f4: 20,000 \u79d2 <br>\u4ea7\u51fa EU: 60/80/100/120/140 <br> \u4ea7\u751f\u70ed\u91cf: 96/160/240/336/448 -ComponentData.ReactorHeatExchanger=\u70ed\u5bb9\u91cf: 5,000 <br> \u53cd\u5e94\u5806\u70ed\u4ea4\u6362\u7387: 72 heat/s -ComponentData.ReactorHeatVent=\u70ed\u5bb9\u91cf: 1,000 <br> \u81ea\u6563\u70ed\u7387: 5 heat/s <br> \u51b7\u5374\u901f\u5ea6: 5 heat/s -ComponentData.ReactorPlating=\u5bc6\u5c01\u53cd\u5e94\u5806\u9694\u70ed\u677f\u4e0e\u9ad8\u70ed\u5bb9\u53cd\u5e94\u5806\u9694\u677f\u7684\u5408\u6210\u6750\u6599 -ComponentData.RshCondensator=\u70ed\u5bb9\u91cf: 20,000 <br> \u65e0\u6cd5\u88ab\u6563\u70ed\u7247\u51b7\u5374. -ComponentData.ThickNeutronReflector=\u8010\u4e45: 120,000 (MC 1.7.10 \u4e2d\u4e3a 40,000) - -# ComponentInfo keys are for updating information about a component during a simulation. - -ComponentInfo.BrokeTime=\n %,d \u79d2\u540e\u635f\u574f. -ComponentInfo.CooldownTime=\n\u51b7\u5374\u4e86 %,d \u79d2. -ComponentInfo.GeneratedEU=\n\u4ea7\u751f %,.2f \u4e8e %,.2f EU/\u79d2. -ComponentInfo.GeneratedHeat=\n\u4ea7\u751f %,.0f \u4e8e %,.0f \u70ed\u91cf/\u79d2. -ComponentInfo.ReachedHeat=\n\u4ea7\u751f %,.0f \u4e8e %,.0f \u70ed\u91cf. -ComponentInfo.ReceivedHeat=\n\u6700\u591a\u4ea7\u751f %,.0f \u70ed\u91cf/\u79d2 -ComponentInfo.RemainingHeat=\n\u6a21\u62df\u505c\u6b62\u540e, \u8fd8\u5269\u4f59 %,.0f \u70ed\u91cf. -ComponentInfo.ReplacedTime=\n \u5728 %,d \u79d2\u540e\u88ab\u66ff\u6362. -ComponentInfo.ResidualHeat=\n\u51b7\u5374\u540e\u8fd8\u6709 %,.0f \u70ed\u91cf. -ComponentInfo.UsedCooling=\n\u4f7f\u7528 %,.0f \u4e8e %,.0f \u51b7\u5374. - - -# Keys for component names were originally matched to class names, to allow using reflection to look them up. -# However, refactoring eliminated the "one class for each component type" idea. -# These keys will be used both in the reactor area and the component selection area. - -ComponentName.AdvancedHeatExchanger=\u9ad8\u7ea7\u70ed\u4ea4\u6362\u5668 -ComponentName.AdvancedHeatVent=\u9ad8\u7ea7\u6563\u70ed\u7247 -ComponentName.ComponentHeatExchanger=\u5143\u4ef6\u70ed\u4ea4\u6362\u5668 -ComponentName.ComponentHeatVent=\u5143\u4ef6\u6563\u70ed\u7247 -ComponentName.ContainmentReactorPlating=\u5bc6\u5c01\u53cd\u5e94\u5806\u9694\u70ed\u677f -ComponentName.CoolantCell10k=10k \u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell180kHelium=180k \u6c26\u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell180kNak=180k \u94a0\u94be\u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell30k=30k \u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell360kHelium=360k \u6c26\u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell360kNak=360k \u94a0\u94be\u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell60k=60k \u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell60kHelium=60k \u6c26\u51b7\u5374\u5355\u5143 -ComponentName.CoolantCell60kNak=60k \u94a0\u94be\u51b7\u5374\u5355\u5143 -ComponentName.DualFuelRodCesium=\u53cc\u8054\u71c3\u6599\u68d2 (\u94ef) -ComponentName.DualFuelRodCoaxium=\u53cc\u8054\u71c3\u6599\u68d2 (Coaxium) -ComponentName.DualFuelRodMox=\u53cc\u8054\u71c3\u6599\u68d2 (MOX) -ComponentName.DualFuelRodNaquadah=\u53cc\u8054\u71c3\u6599\u68d2 (\u7845\u5ca9) -ComponentName.DualFuelRodThorium=\u53cc\u8054\u71c3\u6599\u68d2 (\u948d) -ComponentName.DualFuelRodUranium=\u53cc\u8054\u71c3\u6599\u68d2 (\u94c0) -ComponentName.FuelRodCesium=\u71c3\u6599\u68d2 (\u94ef) -ComponentName.FuelRodCoaxium=\u71c3\u6599\u68d2 (Coaxium) -ComponentName.FuelRodMox=\u71c3\u6599\u68d2 (MOX) -ComponentName.FuelRodNaquadah=\u71c3\u6599\u68d2 (\u7845\u5ca9) -ComponentName.FuelRodThorium=\u71c3\u6599\u68d2 (\u948d) -ComponentName.FuelRodUranium=\u71c3\u6599\u68d2 (\u94c0) -ComponentName.HeatCapacityReactorPlating=\u9ad8\u70ed\u5bb9\u53cd\u5e94\u5806\u9694\u677f -ComponentName.HeatExchanger=\u70ed\u4ea4\u6362\u5668 -ComponentName.HeatVent=\u6563\u70ed\u7247 -ComponentName.IridiumNeutronReflector=\u94f1\u4e2d\u5b50\u53cd\u5c04\u677f -ComponentName.LzhCondensator=\u9752\u91d1\u77f3\u51b7\u51dd\u6a21\u5757 -ComponentName.NeutronReflector=\u4e2d\u5b50\u53cd\u5c04\u677f -ComponentName.OverclockedHeatVent=\u8d85\u9891\u6563\u70ed\u7247 -ComponentName.QuadFuelRodCesium=\u56db\u8054\u71c3\u6599\u68d2 (\u94ef) -ComponentName.QuadFuelRodCoaxium=\u56db\u8054\u71c3\u6599\u68d2 (Coaxium) -ComponentName.QuadFuelRodMox=\u56db\u8054\u71c3\u6599\u68d2 (MOX) -ComponentName.QuadFuelRodNaquadah=\u56db\u8054\u71c3\u6599\u68d2 (\u7845\u5ca9) -ComponentName.QuadFuelRodThorium=\u56db\u8054\u71c3\u6599\u68d2 (\u948d) -ComponentName.QuadFuelRodUranium=\u56db\u8054\u71c3\u6599\u68d2 (\u94c0) -ComponentName.ReactorHeatExchanger=\u53cd\u5e94\u5806\u70ed\u4ea4\u6362\u5668 -ComponentName.ReactorHeatVent=\u53cd\u5e94\u5806\u6563\u70ed\u7247 -ComponentName.ReactorPlating=\u53cd\u5e94\u5806\u9694\u677f -ComponentName.RshCondensator=\u7ea2\u77f3\u51b7\u51dd\u6a21\u5757 -ComponentName.ThickNeutronReflector=\u52a0\u539a\u4e2d\u5b50\u53cd\u5c04\u677f - -ComponentTooltip.Broken=\u4e0a\u6b21\u6a21\u62df\u65f6\u5df2\u635f\u574f -ComponentTooltip.ResidualHeat=\u4e0a\u6b21\u6a21\u62df\u540e\u6709\u4f59\u70ed - -Config.CSVCheckbox=\u8f93\u51fa CSV \u6570\u636e -Config.CSVLimit=\u6a21\u62df\u79d2\u6570: -Config.EUReactor=EU \u53cd\u5e94\u5806 -Config.FluidReactor=\u6d41\u4f53\u53cd\u5e94\u5806 -Config.InitialComponentHeat=\u521d\u59cb\u70ed\u91cf: -Config.NoComponentSelected=\u672a\u9009\u62e9\u5143\u4ef6 -Config.OffPulse=\u8109\u51b2\u7684\u5173\u95ed\u6301\u7eed\u65f6\u95f4: -Config.OnPulse=\u8109\u51b2\u7684\u5f00\u542f\u6301\u7eed\u65f6\u95f4: -Config.PlacingReactorPause=\u53cd\u5e94\u5806\u6682\u505c: -Config.PlacingReplacementThreshold=\u9608\u503c: -Config.PulseHelp=(\u53ef\u4ee5\u5c06\u8109\u51b2\u7684\u5f00\u542f\u6301\u7eed\u65f6\u95f4\u8bbe\u7f6e\u4e3a 5,000,000 \u4ee5\u6a21\u62df\u6ca1\u6709\u7ea2\u77f3\u8ba1\u65f6\u7684\u60c5\u51b5) -Config.ReactorCoolantInjectors=\u4f7f\u7528\u53cd\u5e94\u5806\u51b7\u5374\u6db2\u6ce8\u5165\u5668 (\u4ec5\u9650 MC 1.8 \u4ee5\u4e0a) -Config.ReactorPause=\u53cd\u5e94\u5806\u6682\u505c (\u79d2): -Config.ReactorPauseHelp=<html>(\u8fd9\u662f\u53cd\u5e94\u5806\u5728\u66f4\u6362\u8be5\u5143\u4ef6\u65f6\u6682\u505c\u7684\u65f6\u95f4)</html> -Config.ReplacementThreshold=\u66f4\u6362\u9608\u503c: -Config.ReplacementThresholdHelp=<html>(\u8bbe\u7f6e\u4e3a\u9ad8\u4e8e\u5143\u4ef6\u7684\u521d\u59cb\u70ed\u91cf/\u635f\u574f\u503c, \u4ee5\u5728\u5143\u4ef6\u8fc7\u70ed/\u635f\u574f\u65f6\u66f4\u6362\u8be5\u5143\u4ef6, \u6216\u8bbe\u7f6e\u4e3a\u4f4e\u4e8e\u5143\u4ef6\u7684\u521d\u59cb\u70ed\u91cf/\u635f\u574f\u503c, \u4ee5\u66f4\u6362\u5df2\u51b7\u5374\u7684\u5143\u4ef6; \u65e0\u8bba\u6b64\u8bbe\u7f6e\u5982\u4f55, \u5728\u81ea\u52a8\u5316\u8fd0\u884c\u671f\u95f4, \u90fd\u5c06\u66f4\u6362\u635f\u574f\u7684\u5143\u4ef6)</html> -Config.ResumeTemp=\u6062\u590d\u53cd\u5e94\u5806 \u5f53\u5806\u6e29 <= -# Same language string should be usable anywhere "seconds" appears. -Config.Seconds=\u79d2 -Config.SimulationStyle=\u6a21\u62df\u6837\u5f0f: -Config.SuspendTemp=\u6682\u505c\u53cd\u5e94\u5806 \u5f53\u5806\u6e29 >= -Config.SuspendTempHelp=(\u53ef\u4ee5\u5c06\u4e24\u4e2a\u6e29\u5ea6\u8bbe\u7f6e\u4e3a\u4e0e\u7206\u70b8\u6e29\u5ea6\u5339\u914d, \u4ee5\u6a21\u62df\u6ca1\u6709\u6e29\u5ea6\u63a7\u5236\u7684\u60c5\u51b5) - -CSVData.EntryComponentValue=,"%.2f" -CSVData.EntryComponentOutput=,%.0f -CSVData.EntryCoreHeat=,%.0f -CSVData.EntryEUOutput=,"%.2f" -CSVData.EntryHUOutput=,%.0f -CSVData.EntryReactorTick=%d -CSVData.HeaderComponentName=,%s (R%dC%d) -CSVData.HeaderComponentOutput=,%s (R%dC%d) \u8f93\u51fa -CSVData.HeaderCoreHeat=,\u5806\u82af\u70ed\u91cf -CSVData.HeaderEUOutput=,EU \u8f93\u51fa -CSVData.HeaderHUOutput=,HU \u8f93\u51fa -CSVData.HeaderReactorTick=\u53cd\u5e94\u5806\u65f6\u95f4 - -MaterialName.AdvancedAlloy=\u9ad8\u7ea7\u5408\u91d1 -MaterialName.AdvancedCircuit=\u9ad8\u7ea7\u7535\u8def\u677f -MaterialName.Aluminium=\u94dd -MaterialName.BasicCircuit=\u57fa\u7840\u7535\u8def -MaterialName.Beryllium=\u94cd -MaterialName.Bronze=\u9752\u94dc -MaterialName.CesiumFuel=\u5bcc\u96c6\u94ef\u6838\u71c3\u6599 -MaterialName.Coal=\u7164 -MaterialName.CoaxiumFuel=\u5bcc\u96c6 Coaxium \u6838\u71c3\u6599 -MaterialName.Copper=\u94dc -MaterialName.Diamond=\u94bb\u77f3 -MaterialName.DistilledWater=\u84b8\u998f\u6c34 -MaterialName.EmptyCell=\u7a7a\u5355\u5143 -MaterialName.EnrichedNaquadah=\u5bcc\u96c6\u7845\u5ca9 -MaterialName.Glass=\u73bb\u7483 -MaterialName.GlowstoneDust=\u8424\u77f3\u7c89 -MaterialName.Gold=\u91d1 -MaterialName.Graphite=\u77f3\u58a8 -MaterialName.Helium==\u6c26 -MaterialName.Iridium=\u94f1 -MaterialName.IridiumReinforcedPlate=\u5f3a\u5316\u94f1\u677f -MaterialName.Iron=\u94c1 -MaterialName.LapisLazuli=\u9752\u91d1\u77f3 -MaterialName.Lead=\u94c5 -MaterialName.MoxFuel=MOX \u71c3\u6599 -MaterialName.Potassium=\u94be -MaterialName.Redstone=\u7ea2\u77f3 -MaterialName.Rubber=\u6a61\u80f6 -MaterialName.Sodium=\u94a0 -MaterialName.Thorium=\u948d -MaterialName.Tin=\u9521 -MaterialName.UraniumFuel=\u94c0\u71c3\u6599 - -# %s at the end of this string is for optionally showing the range of active time. -Simulation.ActiveTime=\u53cd\u5e94\u5806\u5904\u4e8e\u542f\u52a8\u72b6\u6001\u7684\u65f6\u95f4\u603b\u8ba1 %,d \u79d2 %s .\n -Simulation.ActiveTimeRange=\u0020(%,d \u5230 %,d \u79d2\u4e00\u6b21) -Simulation.ActiveTimeSingle=\u0020(%,d \u79d2\u4e00\u6b21) -Simulation.CancelledAtTick=\u6a21\u62df %,d \u79d2\u540e\u53d6\u6d88\u6a21\u62df.\n -Simulation.ComponentHeating=\u5143\u4ef6\u4ea7\u70ed: \u5e73\u5747: %.2f .\n -Simulation.ComponentsReplaced=\u66f4\u6362\u7684\u5143\u4ef6:\n%s -Simulation.CSVOpenFailure=\u65e0\u6cd5\u6253\u5f00 CSV \u6587\u4ef6\u8fdb\u884c\u8f93\u51fa.\n -Simulation.CycleCompleteTime=%,d \u79d2\u540e\u5faa\u73af\u5b8c\u6210.\n -# This will be used to optionally show extra precision, in format strings where %s is used when %.2f might otherwise be expected. -Simulation.DecimalFormat=#,##0.## -Simulation.Efficiency=\u6548\u7387: \u5e73\u5747: %.2f , \u6700\u5c0f: %.2f , \u6700\u5927: %.2f \n -Simulation.ElapsedTime=\u6a21\u62df\u8017\u65f6 %.2f \u79d2.\n -Simulation.ErrorCooldown=\u9519\u8bef %,d \u6a21\u62df\u51b7\u5374\u65f6\u95f4.\n -Simulation.ErrorReactor=\u6a21\u62df\u53cd\u5e94\u5806\u542f\u52a8\u7684 %d \u79d2\u540e\u53d1\u751f\u9519\u8bef\n -Simulation.EUOutputs=\u5b8c\u6210\u6a21\u62df\u540e\u7684\u603b\u8f93\u51fa: %s EU (\u5e73\u5747: %s EU/t, \u6700\u5c0f: %s EU/t, \u6700\u5927: %s EU/t)\n -Simulation.EUOutputsBeforeDepleted=\u7b2c\u4e00\u6839\u71c3\u6599\u68d2\u8017\u5c3d\u524d\u7684\u603b\u8f93\u51fa: %s EU (\u5e73\u5747: %s EU/t, \u6700\u5c0f: %s EU/t, \u6700\u5927: %s EU/t)\n -Simulation.EUOutputsBeforeBreak=\u4e00\u4e2a\u5143\u4ef6\u635f\u574f\u524d\u7684\u603b\u8f93\u51fa: %s EU (\u5e73\u5747: %s EU/t, \u6700\u5c0f: %s EU/t, \u6700\u5927: %s EU/t)\n -Simulation.ExcessCooling=\u8fc7\u51b7: %.2f\n -Simulation.ExcessHeating=\u8fc7\u70ed: %.2f\n -Simulation.ExplosionPower=\u7206\u70b8\u5a01\u529b: %,.2f\n -Simulation.FirstComponentBrokenDetails=\u7b2c\u4e00\u4e2a\u5143\u4ef6\u635f\u574f: %s \u7b2c %d \u884c %d \u5217, \u7528\u4e86 %d \u79d2.\n -Simulation.FirstRodDepletedDetails=\u7b2c\u4e00\u6839\u71c3\u6599\u68d2\u8017\u5c3d: %s \u7b2c %d \u884c %d \u5217, \u7528\u4e86 %d \u79d2.\n -Simulation.FuelRodsTime=\u71c3\u6599\u68d2 (\u5982\u679c\u6709) \u5728 %,d \u79d2\u540e\u505c\u6b62.\n -Simulation.HeatOutputs=\u5b8c\u5168\u6a21\u62df\u540e\u7684\u603b\u8f93\u51fa: %s HU (\u5e73\u5747: %s HU/t, \u6700\u5c0f: %s HU/t, \u6700\u5927: %s HU/t)\n -Simulation.HeatOutputsBeforeBreak=\u7b2c\u4e00\u4e2a\u5143\u4ef6\u635f\u574f\u4e4b\u524d\u7684\u603b\u8f93\u51fa: %s HU (\u5e73\u5747: %s HU/t, \u6700\u5c0f: %s HU/t, \u6700\u5927: %s HU/t)\n -Simulation.HeatOutputsBeforeDepleted=\u5728\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u4e4b\u524d\u7684\u603b\u8f93\u51fa: %s HU (\u5e73\u5747: %s HU/t, \u6700\u5c0f: %s HU/t, \u6700\u5927: %s HU/t)\n -Simulation.HullCooling=\u53cd\u5e94\u5806\u51b7\u5374: %,.2f \u5e73\u5747\u4e8e %,.0f \u53ef\u80fd\u503c.\n -Simulation.HullHeating=\u53cd\u5e94\u5806\u4ea7\u70ed: \u5e73\u5747: %,.2f .\n -Simulation.InactiveTime=\u53cd\u5e94\u5806\u5904\u4e8e\u505c\u6b62\u72b6\u6001\u7684\u65f6\u95f4\u603b\u8ba1 %,d \u79d2 %s .\n -Simulation.InactiveTimeRange=\u0020(%,d \u5230 %,d \u79d2\u4e00\u6b21) -Simulation.InactiveTimeSingle=\u0020(%,d \u79d2\u4e00\u6b21) -Simulation.LapisUsed=\u7528\u4e86 %d \u5757\u9752\u91d1\u77f3.\n -Simulation.MaxHeatGenerated=\u4ea7\u751f\u7684\u6700\u5927\u70ed\u91cf (\u5185\u90e8, \u7531\u71c3\u6599\u68d2\u4ea7\u751f): %,.0f\n -Simulation.NoCooldown=\u4e0d\u9700\u8981\u51b7\u5374.\n -Simulation.NoFuelRods=\u6ca1\u6709\u627e\u5230\u71c3\u6599\u68d2! \u6a21\u62df\u8109\u51b2\u5faa\u73af\u65e0\u610f\u4e49! -Simulation.ReactorCooldownTime=\u53cd\u5e94\u5806\u51b7\u5374\u65f6\u95f4\u4e3a %,d \u79d2.\n -Simulation.ReactorHeatBuildup=\u6bcf\u79d2\u53cd\u5e94\u5806\u70ed\u91cf\u7d2f\u79ef (\u6240\u6709\u5143\u4ef6\u90fd\u5b8c\u597d\u65f6): \u6700\u5c0f: %,.0f , \u6700\u5927: %,.0f .\n -Simulation.ReactorMaxTemp=\u53cd\u5e94\u5806\u6700\u9ad8\u6e29\u5ea6: %,.0f\n -Simulation.ReactorMaxTempBeforeDepleted=\u53cd\u5e94\u5806\u6700\u9ad8\u6e29\u5ea6 (\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u4e4b\u524d): %,.0f\n -Simulation.ReactorMinTemp=\u53cd\u5e94\u5806\u6700\u4f4e\u6e29\u5ea6: %,.0f\n -Simulation.ReactorMinTempBeforeDepleted=\u53cd\u5e94\u5806\u6700\u4f4e\u6e29\u5ea6 (\u7b2c\u4e00\u4e2a\u71c3\u6599\u68d2\u8017\u5c3d\u4e4b\u524d): %,.0f\n -Simulation.ReactorOverheatedTime=\u53cd\u5e94\u5806\u5728 %,d \u79d2\u65f6\u8fc7\u70ed.\n -Simulation.ReactorRemainingHeat=\u6a21\u62df\u5b8c\u6210\u540e, \u53cd\u5e94\u5806\u7684\u70ed\u91cf\u4fdd\u6301\u5728 %,.0f .\n -Simulation.ReactorResidualHeat=\u53cd\u5e94\u5806\u5728\u51b7\u5374 %,d \u79d2\u540e\u70ed\u91cf\u4ecd\u4fdd\u6301\u5728 %,.0f .\n -Simulation.RedstoneUsed=\u4f7f\u7528\u4e86 %d \u5757\u7ea2\u77f3.\n -Simulation.Started=\u6a21\u62df\u5f00\u59cb.\n -Simulation.TimeToBelow50=\u53cd\u5e94\u5806\u70ed\u91cf\u5c06\u4f1a\u5728 %d \u79d2\u540e\u9996\u6b21\u964d\u81f3 50%% \u4ee5\u4e0b (\u5728\u9ad8\u4e8e 50%% \u4e4b\u540e).\n -Simulation.TimeToBurn=\u53cd\u5e94\u5806\u5c06\u5728 %d \u79d2\u540e\u8fbe\u5230"\u71c3\u70e7"\u6e29\u5ea6.\n -Simulation.TimeToEvaporate=\u53cd\u5e94\u5806\u5c06\u5728 %d \u79d2\u540e\u8fbe\u5230"\u84b8\u53d1"\u6e29\u5ea6.\n -Simulation.TimeToHurt=\u53cd\u5e94\u5806\u5c06\u5728 %d \u79d2\u540e\u8fbe\u5230"\u4f24\u5bb3"\u6e29\u5ea6.\n -Simulation.TimeToLava=\u53cd\u5e94\u5806\u5c06\u5728 %d \u79d2\u540e\u8fbe\u5230"\u7194\u5316"\u6e29\u5ea6.\n -# Note: The "e" is deliberately dropped from "Explode" in the key name so that it will sort after the others. -Simulation.TimeToXplode=\u53cd\u5e94\u5806\u5c06\u5728 %d \u79d2\u5185\u7206\u70b8.\n -Simulation.TimeWithoutExploding=\n\u53cd\u5e94\u5806\u8fd0\u884c %,d \u79d2\u540e\u6ca1\u6709\u7206\u70b8.\n -Simulation.TotalCellCooling=\u603b\u71c3\u6599\u68d2\u51b7\u5374 (\u5cf0\u503c\u4f7f\u7528): %,.2f\n -Simulation.TotalCondensatorCooling=\u51b7\u51dd\u5668\u603b\u51b7\u5374\u91cf (\u5cf0\u503c\u4f7f\u7528\u91cf): %,.2f\n -Simulation.TotalCooldownTime=\u5176\u4ed6\u5143\u4ef6\u9700\u8981 %,d \u79d2\u6765\u51b7\u5374 (\u5c3d\u53ef\u80fd\u591a\u7684\u65f6\u95f4).\n -Simulation.TotalVentCooling=\u603b\u7a7a\u6c14\u51b7\u5374 (\u5cf0\u503c\u7528\u6cd5, \u7406\u8bba\u6700\u5927\u503c): %,.2f \u4e8e %,.2f\n -Simulation.VentCooling=\u6563\u70ed\u7247\u51b7\u5374: %,.2f \u5e73\u5747\u4e8e %,.0f \u53ef\u80fd\u503c.\n - -UI.AdvancedTab=\u9ad8\u7ea7 -#Needs to be heavily abbreviated to fit on the button. -UI.AutomateButton=a -UI.AutomateButtonFont=Arial 10 -UI.AutomatedReactor=\u81ea\u52a8\u5316\u53cd\u5e94\u5806 -UI.AutomationTooltip=\u5355\u51fb\u6b64\u5904\u53ef\u5b9a\u4e49\u6b64\u5143\u4ef6\u7684\u81ea\u52a8\u5316\u89c4\u5219. -UI.CancelButton=\u53d6\u6d88 -UI.ChosenComponentRowCol=%s \u7b2c %d \u884c %d \u5217 -UI.ClearGridButton=\u6e05\u9664 -UI.CodeLabel=\u4ee3\u7801: -UI.ComparisonTab=\u6bd4\u8f83\u65b9\u5f0f -UI.ComponentAutomationTab=\u5143\u4ef6\u81ea\u52a8\u5316 -#Needs to be heavily abbreviated to fit on the button. -UI.ComponentInfoButton=i -UI.ComponentInfoButtonFont=Arial 10 -UI.ComponentInfoButtonTooltip=\u5355\u51fb\u4ee5\u83b7\u53d6\u6709\u5173\u6b64\u5143\u4ef6\u7684\u4fe1\u606f -UI.ComponentInfoDefault=\u8bf7\u8fd0\u884c\u6a21\u62df\u5e76\u9009\u62e9\u4e0a\u9762\u53cd\u5e94\u5806\u7f51\u683c\u4e2d\u7684\u5143\u4ef6\u4ee5\u67e5\u770b\u5176\u8be6\u7ec6\u4fe1\u606f. -UI.ComponentInfoLastSimRowCol=%s \u7b2c %d \u884c %d \u5217\n%s -UI.ComponentListTab=\u5143\u4ef6\u6e05\u5355 -UI.ComponentPlacingDefault=\u653e\u7f6e\u5143\u4ef6: \u65e0 -UI.ComponentPlacingSpecific=\u653e\u7f6e\u5143\u4ef6: %s -UI.ComponentTab=\u5143\u4ef6 -UI.CopyCodeButton=\u590d\u5236\u4ee3\u7801 -UI.CopyComparisonData=\u590d\u5236\u6bd4\u8f83\u6570\u636e -UI.CSVBrowseButton=\u6d4f\u89c8 -UI.CSVFileDefault=\u672a\u9009\u62e9\u6587\u4ef6 -UI.CSVHelp=<html>\u8b66\u544a:<ol><li>\u542f\u7528 CSV \u8f93\u51fa\u540e, \u6a21\u62df\u8fd0\u884c\u53ef\u80fd\u4f1a\u6162\u5f97\u591a, \u5c24\u5176\u662f\u6240\u9009\u6587\u4ef6\u4f4d\u4e8e\u673a\u68b0\u786c\u76d8\u4e0a\u65f6.</li><li>\u7528\u6237\u5e94\u786e\u4fdd\u76ee\u6807\u9a71\u52a8\u5668\u6709\u8db3\u591f\u7684\u7a7a\u95f4\u5bb9\u7eb3 CSV \u6587\u4ef6.</li><li>\u9664\u975e\u624b\u52a8\u66f4\u6539\u76ee\u6807, \u5426\u5219\u5176\u4ed6\u6a21\u62df\u5c06\u8986\u76d6 CSV \u6587\u4ef6.</li></ol></html> -UI.CSVTab=CSV -UI.EnableGT508Components=\u542f\u7528 GT 5.08 \u5143\u4ef6 -UI.EnableGT509Components=\u542f\u7528 GT 5.09 \u5143\u4ef6 -UI.ExpandAdvancedAlloy=\u5c06\u9ad8\u7ea7\u5408\u91d1\u6269\u5c55\u6210\u5143\u4ef6\u6750\u6599 (\u4f7f\u7528\u683c\u96f7\u79d1\u6280\u65f6\u65e0\u6548) -UI.GregTechVersion=\u683c\u96f7\u79d1\u6280 \u7248\u672c: -UI.GregTechVersionNone=\u65e0 -UI.GT509ReactorBehavior=\u4f7f\u7528 GT 5.09 \u53cd\u5e94\u5806\u7279\u6027 (\u71c3\u6599\u68d2\u4ea7\u751f 2 \u500d\u7684\u57fa\u672c EU \u751f\u6210\u91cf, \u65e0\u8bba\u6b64\u8bbe\u7f6e\u5982\u4f55, \u53ea\u9002\u7528\u4e8e GT 5.09 \u7684\u71c3\u6599\u68d2) -UI.InitialHeatDisplay=\u0020(\u521d\u59cb\u70ed\u91cf: %,d) -UI.InitialReactorHeat=\u53cd\u5e94\u5806\u521d\u59cb\u70ed\u91cf: -UI.LockInTabCode=\u9501\u5b9a\u9009\u9879\u5361\u4ee3\u7801 -UI.MainTitle=\u5de5\u4e1a2 \u5b9e\u9a8c\u7248 \u6838\u7535\u6a21\u62df\u5668 -UI.MaterialDecimalFormat=#,##0.## -UI.MaterialsTab=\u6750\u6599 -UI.MaxHeatDefault=/10,000 -UI.MaxHeatSpecific=/%,.0f -UI.MaxSimulationTicks=\u6700\u5927\u6a21\u62df\u65f6\u95f4: -UI.MaxSimulationTicksTooltip=\u5373\u4f7f\u53cd\u5e94\u5806\u6ca1\u6709\u7206\u70b8\u6216\u505c\u6b62\u8f93\u51fa HU \u6216 EU, \u5728\u957f\u65f6\u95f4\u6a21\u62df\u540e, \u4e5f\u4f1a\u8feb\u4f7f\u6a21\u62df\u505c\u6b62\u3002 -UI.MinecraftVersion=Minecraft \u7248\u672c: -UI.NoComponentLastSimRowCol=\u5728\u4e0a\u6b21\u6a21\u62df\u671f\u95f4\u7b2c %d \u884c %d \u5217 \u6ca1\u6709\u5143\u4ef6. -UI.NoComponentRowCol=\u7b2c %d \u884c %d \u5217 \u6ca1\u6709\u5143\u4ef6. -UI.NoSimulationRun=\u5c1a\u672a\u8fd0\u884c\u6a21\u62df. -UI.OnlyShowDiffData=\u53ea\u663e\u793a\u660e\u663e\u4e0d\u540c\u7684\u6570\u636e -UI.PasteCodeButton=\u7c98\u8d34\u4ee3\u7801 -UI.PulseConfigurationTab=\u8109\u51b2\u914d\u7f6e -UI.PulsedReactor=\u8109\u51b2\u578b\u53cd\u5e94\u5806 -UI.RemoveAddonComponentsTitle=\u627e\u5230\u9644\u52a0\u5143\u4ef6 -UI.RemoveGT508ComponentsText=\u5f53\u524d\u8bbe\u8ba1\u4e2d\u53d1\u73b0 GT 5.08 \u7684\u5143\u4ef6\u3002\u662f\u5426\u79fb\u9664\u5b83\u4eec? -UI.RemoveGT509ComponentsText=\u5f53\u524d\u8bbe\u8ba1\u4e2d\u53d1\u73b0 GT 5.09 \u7684\u5143\u4ef6\u3002\u662f\u5426\u79fb\u9664\u5b83\u4eec? -UI.ResetPulseConfig=\u91cd\u7f6e\u8109\u51b2\u914d\u7f6e -UI.ShowComponentDetailButtons=\u663e\u793a\u5143\u4ef6\u8be6\u7ec6\u4fe1\u606f\u6309\u94ae -UI.ShowComponentPreconfigControls=\u663e\u793a\u5143\u4ef6\u9884\u914d\u7f6e\u63a7\u4ef6 -UI.ShowOldStyleReactorCode=\u663e\u793a\u65e7 (2.3.1 \u4e4b\u524d\u7248\u672c) \u53cd\u5e94\u5806\u4ee3\u7801 -UI.SimulateButton=\u6a21\u62df -UI.SimulationTab=\u6a21\u62df -UI.SimulationTypeAutomation=\u8109\u51b2\u81ea\u52a8\u5316 -UI.SimulationTypePulsed=\u8109\u51b2\u578b\u5faa\u73af -UI.SimulationTypeSimple=\u7b80\u5355\u578b\u5faa\u73af -UI.TemperatureEffectsDefault=\u71c3\u70e7: 4,000 \u84b8\u53d1: 5,000 \u4f24\u5bb3: 7,000 \u7194\u5316: 8,500 \u7206\u70b8: 10,000 -UI.TemperatureEffectsSpecific=\u71c3\u70e7: %,d \u84b8\u53d1: %,d \u4f24\u5bb3: %,d \u7194\u5316: %,d \u7206\u70b8: %,d -UI.TexturePackBrowseButton=\u6d4f\u89c8 -UI.TexturePackClearButton=\u6e05\u9664 -UI.TexturePackDefault=\u6750\u8d28\u5305: \u672a\u9009\u62e9\u6587\u4ef6 -UI.TexturePackHelp=(\u91cd\u65b0\u542f\u52a8\u6a21\u62df\u5668\u4ee5\u67e5\u770b\u65b0\u6750\u8d28) -UI.TexturePackSpecific=\u6750\u8d28\u5305: %s -UI.UseGTRecipes=\u4f7f\u7528\u683c\u96f7\u79d1\u6280\u914d\u65b9\u5236\u4f5c\u5143\u4ef6\u6750\u6599 (\u5982\u9002\u7528\u4e14\u660e\u786e) -UI.UseUfcForCoolantCells=\u4f7f\u7528\u901a\u7528\u6d41\u4f53\u5355\u5143\u4f5c\u4e3a\u51b7\u5374\u5242 (\u4e0e\u683c\u96f7\u79d1\u6280\u914d\u65b9\u4e0d\u517c\u5bb9) -UI.VersionNumber=\u7248\u672c %s - -Warning.DepletedIsotope=\u5220\u9664\u4e86 (\u8fd1\u8870\u53d8\u94c0\u68d2) \u4f4d\u4e8e\u7b2c %d \u884c %d \u5217.\n -Warning.DualPlutonium=\u5220\u9664\u4e86 (\u53cc\u8054\u71c3\u6599\u68d2 (\u949a)) \u4f4d\u4e8e\u7b2c %d \u884c %d \u5217.\n -Warning.Heating=\u5220\u9664\u4e86 (\u52a0\u70ed\u5143\u4ef6) \u4f4d\u4e8e\u7b2c %d \u884c %d \u5217.\n -Warning.InvalidReactorCode=\u65e0\u6548\u7684\u53cd\u5e94\u5806\u4ee3\u7801: %s -Warning.Plutonium=\u5220\u9664\u4e86 (\u71c3\u6599\u68d2 (\u949a)) \u4f4d\u4e8e\u7b2c %d \u884c %d \u5217.\n -Warning.QuadPlutonium=\u5220\u9664\u4e86 (\u56db\u8054\u71c3\u6599\u68d2 (\u949a)) \u4f4d\u4e8e\u7b2c %d \u884c %d \u5217.\n -Warning.Title=\u8b66\u544a -Warning.Unrecognized=\u5220\u9664\u4e86\u65e0\u6cd5\u8bc6\u522b\u7684\u5143\u4ef6 (id %d) \u4f4d\u4e8e\u7b2c %d \u884c %d \u5217.\n diff --git a/src/main/java/Ic2ExpReactorPlanner/MaterialsList.java b/src/main/java/Ic2ExpReactorPlanner/MaterialsList.java deleted file mode 100644 index e798f2d44f..0000000000 --- a/src/main/java/Ic2ExpReactorPlanner/MaterialsList.java +++ /dev/null @@ -1,302 +0,0 @@ -package Ic2ExpReactorPlanner; - -import static Ic2ExpReactorPlanner.BundleHelper.getI18n; -import Ic2ExpReactorPlanner.components.ReactorItem; -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Map; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.TreeMap; -import java.util.TreeSet; - -/** - * Represents a list of materials (such as for an IndustrialCraft2 Nuclear Reactor and components). - * @author Brian McCloud - */ -public final class MaterialsList { - - private final SortedMap<String, Double> materials = new TreeMap<>(); - - private static boolean useGTRecipes = false; - private static boolean useUfcForCoolantCells = false; - private static boolean expandAdvancedAlloy = false; - private static String gtVersion = "none"; - - // pre-load localized material names as constants to make code more readable. - public static final String ALUMINIUM = getI18n("MaterialName.Aluminium"); - public static final String BERYLLIUM = getI18n("MaterialName.Beryllium"); - public static final String BRONZE = getI18n("MaterialName.Bronze"); - public static final String CALLISTOICEDUST = getI18n("MaterialName.CallistoIceDust"); - public static final String CESIUM = getI18n("MaterialName.CesiumFuel"); - public static final String COAL = getI18n("MaterialName.Coal"); - public static final String COAXIUM = getI18n("MaterialName.CoaxiumFuel"); - public static final String COPPER = getI18n("MaterialName.Copper"); - public static final String DIAMOND = getI18n("MaterialName.Diamond"); - public static final String DISTILLED_WATER = getI18n("MaterialName.DistilledWater"); - // Since GT 5.09 allows different materials for making the "empty cell" (steel, tin, or PTFE), it is treated as a primitive material for GT recipes instead of a crafted item that can be further broken down. - public static final String EMPTY_CELL = getI18n("MaterialName.EmptyCell"); - public static final String ENRICHEDNAQUADAH = getI18n("MaterialName.EnrichedNaquadah"); - public static final String FLUXEDELECTRUM = getI18n("MaterialName.FluxedElectrum");//too long - public static final String GOLD = getI18n("MaterialName.Gold"); - public static final String GRAPHITE = getI18n("MaterialName.Graphite"); - public static final String GLASS = getI18n("MaterialName.Glass"); - public static final String GLOWSTONE = getI18n("MaterialName.GlowstoneDust"); - public static final String HELIUM = getI18n("MaterialName.Helium"); - public static final String IRIDIUM = getI18n("MaterialName.Iridium"); - public static final String IRON = getI18n("MaterialName.Iron"); - public static final String LAPIS = getI18n("MaterialName.LapisLazuli"); - public static final String LEAD = getI18n("MaterialName.Lead"); - public static final String LEDOXDUST = getI18n("MaterialName.LedoxDust"); - public static final String MOX = getI18n("MaterialName.MoxFuel"); - public static final String NAQUADRIA = getI18n("MaterialName.Naquadria"); - public static final String PLATINUM = getI18n("MaterialName.Platinum"); - public static final String POTASSIUM = getI18n("MaterialName.Potassium"); - public static final String REDSTONE = getI18n("MaterialName.Redstone"); - public static final String REINFORCEDGLASS = getI18n("MaterialName.ReinforcedGlass");//alt recipes - public static final String RUBBER = getI18n("MaterialName.Rubber"); - public static final String SODIUM = getI18n("MaterialName.Sodium"); - public static final String THORIUM = getI18n("MaterialName.Thorium"); - public static final String TIBERIUM = getI18n("MaterialName.Tiberium"); - public static final String TIN = getI18n("MaterialName.Tin"); - public static final String TUNGSTEN = getI18n("MaterialName.Tungsten"); - public static final String URANIUM = getI18n("MaterialName.UraniumFuel"); - - // Special materials lists for items that may expand differently. - public static MaterialsList basicCircuit = new MaterialsList(IRON, 2, REDSTONE, 2, COPPER, 6, RUBBER); - public static MaterialsList advancedCircuit = new MaterialsList(basicCircuit, 4, REDSTONE, 2, LAPIS, 2, GLOWSTONE); - public static MaterialsList alloy = new MaterialsList(getI18n("MaterialName.AdvancedAlloy")); - public static MaterialsList coolantCell = new MaterialsList(1.0 / 3, TIN, DISTILLED_WATER, LAPIS); - public static MaterialsList iridiumPlate = new MaterialsList(4, IRIDIUM, 4, alloy, DIAMOND); - - // some materials lists for crafted items that are part of reactor components without themselves being reactor components. - public static final MaterialsList TIN_ITEM_CASING = new MaterialsList(0.5, TIN); - public static final MaterialsList COIL = new MaterialsList(IRON, 8.0 / 3, COPPER); - public static final MaterialsList ELECTRIC_MOTOR = new MaterialsList(IRON, 2, COIL, 2, TIN_ITEM_CASING); - public static final MaterialsList IRON_BARS = new MaterialsList(6.0 / 16, IRON); - public static final MaterialsList GLASS_PANE = new MaterialsList(6.0 / 16, GLASS); - public static final MaterialsList TIN_ALLOY = new MaterialsList(0.5, TIN, 0.5, IRON); - - - private static Map<String, MaterialsList> componentMaterialsMap = buildComponentMaterialsMap(); - - /** - * Creates an empty materials list. - */ - public MaterialsList() { - // fields are initialized when declared, so no code is needed in this constructor. - } - - /** - * Creates a materials list with the specified items in it. - * @param materials the materials to add, which can be strings that each represent a single material or other MaterialsList objects, and either can be preceded by a number as a count. - * @throws IllegalArgumentException if other object types are passed as arguments. - */ - public MaterialsList(Object... materials) { - add(materials); - } - - /** - * Adds the specified items to this materials list. - * @param materials the materials to add, which can be strings that each represent a single material or other MaterialsList objects, and either can be preceded by a number as a count. - * @throws IllegalArgumentException if other object types are passed as arguments. - */ - public void add(Object... materials) { - double itemCount = 1; - for (Object material : materials) { - if (material instanceof String) { - final String materialName = (String)material; - if (this.materials.containsKey(materialName)) { - this.materials.put(materialName, this.materials.get(materialName) + itemCount); - } else { - this.materials.put(materialName, itemCount); - } - itemCount = 1; - } else if (material instanceof Number) { - itemCount = ((Number)material).doubleValue(); - } else if (material instanceof MaterialsList) { - for (Map.Entry<String, Double> entrySet : ((MaterialsList)material).materials.entrySet()) { - if (this.materials.containsKey(entrySet.getKey())) { - this.materials.put(entrySet.getKey(), this.materials.get(entrySet.getKey()) + itemCount * entrySet.getValue()); - } else { - this.materials.put(entrySet.getKey(), itemCount * entrySet.getValue()); - } - } - itemCount = 1; - } else { - throw new IllegalArgumentException("Invalid material type: " + material.getClass().getName()); - } - } - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(1000); - DecimalFormat materialDecimalFormat = new DecimalFormat(getI18n("UI.MaterialDecimalFormat")); - for (Map.Entry<String, Double> entrySet : materials.entrySet()) { - double count = entrySet.getValue(); - String formattedNumber = materialDecimalFormat.format(count); - result.append(String.format("%s %s\n", formattedNumber, entrySet.getKey())); //NOI18N - } - return result.toString(); - } - - public String buildComparisonString(MaterialsList rhs, boolean alwaysDiff) { - StringBuilder result = new StringBuilder(1000); - SortedSet<String> keys = new TreeSet<>(materials.keySet()); - keys.addAll(rhs.materials.keySet()); - DecimalFormat comparisonDecimalFormat = new DecimalFormat(getI18n("Comparison.CompareDecimalFormat")); - DecimalFormat simpleDecimalFormat = new DecimalFormat(getI18n("Comparison.SimpleDecimalFormat")); - for (String key : keys) { - double left = 0; - if (materials.containsKey(key)) { - left = materials.get(key); - } - double right = 0; - if (rhs.materials.containsKey(key)) { - right = rhs.materials.get(key); - } - String color = "orange"; - if (left < right) { - color = "green"; - } else if (left > right) { - color = "red"; - } - if (alwaysDiff || left != right) { - result.append(String.format(getI18n("Comparison.MaterialsEntry"), color, - comparisonDecimalFormat.format(left - right), key, - simpleDecimalFormat.format(left), - simpleDecimalFormat.format(right))); - } - } - return result.toString(); - } - - public static void setUseUfcForCoolantCells(boolean value) { - useUfcForCoolantCells = value; - if (value) { - coolantCell = new MaterialsList(4, TIN_ITEM_CASING, GLASS_PANE, DISTILLED_WATER, LAPIS); - } else { - coolantCell = new MaterialsList(1.0 / 3, TIN, DISTILLED_WATER, LAPIS); - } - componentMaterialsMap = buildComponentMaterialsMap(); - } - - public static void setExpandAdvancedAlloy(boolean value) { - expandAdvancedAlloy = value; - if (value) { - alloy = new MaterialsList(3.0 / 2, IRON, 3.0 / 2, BRONZE, 3.0 / 2, TIN); - } else { - alloy = new MaterialsList(getI18n("MaterialName.AdvancedAlloy")); - } - iridiumPlate = new MaterialsList(4, IRIDIUM, 4, alloy, DIAMOND); - componentMaterialsMap = buildComponentMaterialsMap(); - } - - public static void setGTVersion(String value) { - gtVersion = value; - if ("5.08".equals(value) || "5.09".equals(value)) { - coolantCell = new MaterialsList(EMPTY_CELL, DISTILLED_WATER, LAPIS); - alloy = new MaterialsList(getI18n("MaterialName.AdvancedAlloy")); - basicCircuit = new MaterialsList(getI18n("MaterialName.BasicCircuit")); - advancedCircuit = new MaterialsList(getI18n("MaterialName.AdvancedCircuit")); - } else { - basicCircuit = new MaterialsList(IRON, 2, REDSTONE, 2, COPPER, 6, RUBBER); - advancedCircuit = new MaterialsList(basicCircuit, 4, REDSTONE, 2, LAPIS, 2, GLOWSTONE); - if (useUfcForCoolantCells) { - coolantCell = new MaterialsList(4, TIN_ITEM_CASING, GLASS_PANE, DISTILLED_WATER, LAPIS); - } else { - coolantCell = new MaterialsList(1.0 / 3, TIN, DISTILLED_WATER, LAPIS); - } - if (expandAdvancedAlloy) { - alloy = new MaterialsList(3.0 / 2, IRON, 3.0 / 2, BRONZE, 3.0 / 2, TIN); - } else { - alloy = new MaterialsList(getI18n("MaterialName.AdvancedAlloy")); - } - } - iridiumPlate = new MaterialsList(4, IRIDIUM, 4, alloy, DIAMOND); - componentMaterialsMap = buildComponentMaterialsMap(); - } - - public static MaterialsList getMaterialsForComponent(ReactorItem component) { - return componentMaterialsMap.get(component.baseName); - } - - private static Map<String, MaterialsList> buildComponentMaterialsMap() { - Map<String, MaterialsList> result = new HashMap<>(63);//result.put+2? Added 14, but I can't really tell if that's right - result.put("fuelRodUranium", new MaterialsList(IRON, URANIUM)); - result.put("dualFuelRodUranium", new MaterialsList(IRON, 2, result.get("fuelRodUranium"))); - result.put("quadFuelRodUranium", new MaterialsList(3, IRON, 2, COPPER, 4, result.get("fuelRodUranium"))); - result.put("fuelRodMox", new MaterialsList(IRON, MOX)); - result.put("dualFuelRodMox", new MaterialsList(IRON, 2, result.get("fuelRodMox"))); - result.put("quadFuelRodMox", new MaterialsList(3, IRON, 2, COPPER, 4, result.get("fuelRodMox"))); - if ("5.09".equals(gtVersion)) { - result.put("neutronReflector", new MaterialsList(6, TIN_ALLOY, 2, GRAPHITE, BERYLLIUM)); - result.put("thickNeutronReflector", new MaterialsList(4, result.get("neutronReflector"), 2, BERYLLIUM)); - } else { - result.put("neutronReflector", new MaterialsList(COPPER, 4, TIN, 4, COAL)); - result.put("thickNeutronReflector", new MaterialsList(4, result.get("neutronReflector"), 5, COPPER)); - } - if ("5.08".equals(gtVersion) || "5.09".equals(gtVersion)) { - result.put("heatVent", new MaterialsList(4, ALUMINIUM, 4, IRON_BARS)); - } else { - result.put("heatVent", new MaterialsList(ELECTRIC_MOTOR, 4, IRON, 4, IRON_BARS)); - } - result.put("advancedHeatVent", new MaterialsList(2, result.get("heatVent"), 6, IRON_BARS, DIAMOND)); - result.put("reactorHeatVent", new MaterialsList(result.get("heatVent"), 8, COPPER)); - result.put("componentHeatVent", new MaterialsList(result.get("heatVent"), 4, TIN, 4, IRON_BARS)); - result.put("overclockedHeatVent", new MaterialsList(result.get("reactorHeatVent"), 4, GOLD)); - result.put("coolantCell10k", new MaterialsList(coolantCell, 4, TIN)); - result.put("coolantCell30k", new MaterialsList(3, result.get("coolantCell10k"), 6, TIN)); - result.put("coolantCell60k", new MaterialsList(2, result.get("coolantCell30k"), 6, TIN, IRON)); - result.put("heatExchanger", new MaterialsList(basicCircuit, 3, TIN, 5, COPPER)); - result.put("advancedHeatExchanger", new MaterialsList(2, result.get("heatExchanger"), 2, basicCircuit, COPPER, 4, LAPIS)); - result.put("coreHeatExchanger", new MaterialsList(result.get("heatExchanger"), 8, COPPER)); - result.put("componentHeatExchanger", new MaterialsList(result.get("heatExchanger"), 4, GOLD)); - result.put("reactorPlating", new MaterialsList(LEAD, alloy)); - result.put("heatCapacityReactorPlating", new MaterialsList(result.get("reactorPlating"), 8, COPPER)); - if ("5.08".equals(gtVersion) || "5.09".equals(gtVersion)) { - result.put("containmentReactorPlating", new MaterialsList(result.get("reactorPlating"), LEAD)); - } else { - result.put("containmentReactorPlating", new MaterialsList(result.get("reactorPlating"), 2, alloy)); - } - result.put("rshCondensator", new MaterialsList(result.get("heatVent"), result.get("heatExchanger"), 7, REDSTONE)); - result.put("lzhCondensator", new MaterialsList(2, result.get("rshCondensator"), result.get("reactorHeatVent"), result.get("coreHeatExchanger"), 9, LAPIS, 4, REDSTONE)); - result.put("fuelRodThorium", new MaterialsList(IRON, 3, THORIUM)); - result.put("dualFuelRodThorium", new MaterialsList(IRON, 2, result.get("fuelRodThorium"))); - result.put("quadFuelRodThorium", new MaterialsList(3, IRON, 2, COPPER, 4, result.get("fuelRodThorium"))); - result.put("coolantCellHelium60k", new MaterialsList(EMPTY_CELL, HELIUM, 4, TIN)); - result.put("coolantCellHelium180k", new MaterialsList(3, result.get("coolantCellHelium60k"), 6, TIN)); - result.put("coolantCellHelium360k", new MaterialsList(2, result.get("coolantCellHelium180k"), 6, TIN, 9, COPPER)); - result.put("coolantCellNak60k", new MaterialsList(result.get("coolantCell10k"), 4, TIN, 2, POTASSIUM, 2, SODIUM)); - result.put("coolantCellNak180k", new MaterialsList(3, result.get("coolantCellNak60k"), 6, TIN)); - result.put("coolantCellNak360k", new MaterialsList(2, result.get("coolantCellNak180k"), 6, TIN, 9, COPPER)); - result.put("iridiumNeutronReflector", new MaterialsList(6, result.get("thickNeutronReflector"), 18, COPPER, iridiumPlate)); - result.put("fuelRodNaquadah", new MaterialsList(IRON, 3, ENRICHEDNAQUADAH)); - result.put("dualFuelRodNaquadah", new MaterialsList(IRON, 2, result.get("fuelRodNaquadah"))); - result.put("quadFuelRodNaquadah", new MaterialsList(3, IRON, 2, COPPER, 4, result.get("fuelRodNaquadah"))); - result.put("fuelRodCoaxium", new MaterialsList(4, IRIDIUM, 36, DIAMOND, 3, COAXIUM)); - result.put("dualFuelRodCoaxium", new MaterialsList(IRON, 2, result.get("fuelRodCoaxium"))); - result.put("quadFuelRodCoaxium", new MaterialsList(3, IRON, 2, COPPER, 4, result.get("fuelRodCoaxium"))); - result.put("fuelRodCesium", new MaterialsList(IRON, 3, CESIUM)); - result.put("dualFuelRodCesium", new MaterialsList(IRON, 2, result.get("fuelRodCesium"))); - result.put("quadFuelRodCesium", new MaterialsList(3, IRON, 2, COPPER, 4, result.get("fuelRodCesium"))); - result.put("fuelRodNaquadahGTNH", new MaterialsList(4, IRON, 4, TUNGSTEN, 1, PLATINUM, 3, ENRICHEDNAQUADAH)); - result.put("dualFuelRodNaquadahGTNH", new MaterialsList(IRON, TUNGSTEN, 2, result.get("fuelRodNaquadahGTNH"))); - result.put("quadFuelRodNaquadahGTNH", new MaterialsList(3, IRON, 3, TUNGSTEN, 4, result.get("fuelRodNaquadahGTNH"))); - result.put("fuelRodNaquadria", new MaterialsList(4, IRON, 4, TUNGSTEN, 1, PLATINUM, 3, NAQUADRIA)); - result.put("dualFuelRodNaquadria", new MaterialsList(IRON, TUNGSTEN, 2, result.get("fuelRodNaquadria"))); - result.put("quadFuelRodNaquadria", new MaterialsList(3, IRON, 3, TUNGSTEN, 4, result.get("fuelRodNaquadria"))); - result.put("fuelRodTiberium", new MaterialsList(4, IRON, 4, TUNGSTEN, 1, PLATINUM, 3, TIBERIUM)); - result.put("dualFuelRodTiberium", new MaterialsList(IRON, TUNGSTEN, 2, result.get("fuelRodTiberium"))); - result.put("quadFuelRodTiberium", new MaterialsList(3, IRON, 3, TUNGSTEN, 4, result.get("fuelRodTiberium"))); - result.put("fuelRodTheCore", new MaterialsList(96, IRON, 96, TUNGSTEN, 128, TIBERIUM, 32, result.get("fuelRodNaquadah"))); - result.put("coolantCellSpace180k", new MaterialsList(0.5, CALLISTOICEDUST, 0.5, LEDOXDUST, 1000, DISTILLED_WATER, LAPIS, REINFORCEDGLASS, 2, IRON, 2, TUNGSTEN)); - result.put("coolantCellSpace360k", new MaterialsList(1.5, IRON, 1.5, TUNGSTEN, 2, result.get("coolantCellSpace180k"))); - result.put("coolantCellSpace540k", new MaterialsList(3, IRON, 3, TUNGSTEN, 3, result.get("coolantCellSpace180k"))); - result.put("coolantCellSpace1080k", new MaterialsList(3, IRON, 3, TUNGSTEN, 9, FLUXEDELECTRUM, 3, result.get("coolantCellSpace540k"))); - - return result; - } - -} diff --git a/src/main/java/Ic2ExpReactorPlanner/Reactor.java b/src/main/java/Ic2ExpReactorPlanner/Reactor.java index 6febc91b90..83b6c511ad 100644 --- a/src/main/java/Ic2ExpReactorPlanner/Reactor.java +++ b/src/main/java/Ic2ExpReactorPlanner/Reactor.java @@ -5,11 +5,11 @@ */ package Ic2ExpReactorPlanner; -import static Ic2ExpReactorPlanner.BundleHelper.formatI18n; -import static Ic2ExpReactorPlanner.BundleHelper.getI18n; -import Ic2ExpReactorPlanner.components.ReactorItem; import java.awt.HeadlessException; -import javax.swing.JOptionPane; +import java.util.ArrayList; + +import Ic2ExpReactorPlanner.components.ReactorItem; + /** * Represents an IndustrialCraft2 Nuclear Reactor. @@ -152,24 +152,16 @@ public class Reactor { * Gets a list of the materials needed to build the components. * @return a list of the materials needed to build the components. */ - public MaterialsList getMaterials() { - MaterialsList result = new MaterialsList(); - for (int col = 0; col < grid[0].length; col++) { - for (int row = 0; row < grid.length; row++) { - if (getComponentAt(row, col) != null) { - result.add(MaterialsList.getMaterialsForComponent(getComponentAt(row, col))); - } - } - } - return result; + public ArrayList getMaterials() { + return new ArrayList(); } - public MaterialsList getComponentList() { - MaterialsList result = new MaterialsList(); + public ArrayList<ReactorItem> getComponentList() { + ArrayList<ReactorItem> result = new ArrayList<ReactorItem>(); for (int col = 0; col < grid[0].length; col++) { for (int row = 0; row < grid.length; row++) { if (getComponentAt(row, col) != null) { - result.add(getComponentAt(row, col).name); + result.add(getComponentAt(row, col)); } } } @@ -348,7 +340,7 @@ public class Reactor { // Try to handle it as a newer code with the "erp=" prefix stripped readCodeString(code); } else if (!code.isEmpty()) { - JOptionPane.showMessageDialog(null, String.format(getI18n("Warning.InvalidReactorCode"), code), getI18n("Warning.Title"), JOptionPane.WARNING_MESSAGE); + //JOptionPane.showMessageDialog(null, String.format(getI18n("Warning.InvalidReactorCode"), code), getI18n("Warning.Title"), JOptionPane.WARNING_MESSAGE); } } } @@ -381,9 +373,6 @@ public class Reactor { case 3: setComponentAt(y, x, ComponentFactory.createComponent("quadFuelRodUranium")); break; - case 4: - warnings.append(formatI18n("Warning.DepletedIsotope", y, x)); - break; case 5: setComponentAt(y, x, ComponentFactory.createComponent("neutronReflector")); break; @@ -442,7 +431,7 @@ public class Reactor { setComponentAt(y, x, ComponentFactory.createComponent("coolantCell60k")); break; case 24: - warnings.append(formatI18n("Warning.Heating", y, x)); + warnings.append("Warning.Heating", y, x); break; case 32: setComponentAt(y, x, ComponentFactory.createComponent("fuelRodThorium")); @@ -454,13 +443,13 @@ public class Reactor { setComponentAt(y, x, ComponentFactory.createComponent("quadFuelRodThorium")); break; case 35: - warnings.append(formatI18n("Warning.Plutonium", y, x)); + warnings.append("Warning.Plutonium", y, x); break; case 36: - warnings.append(formatI18n("Warning.DualPlutonium", y, x)); + warnings.append("Warning.DualPlutonium", y, x); break; case 37: - warnings.append(formatI18n("Warning.QuadPlutonium", y, x)); + warnings.append("Warning.QuadPlutonium", y, x); break; case 38: setComponentAt(y, x, ComponentFactory.createComponent("iridiumNeutronReflector")); @@ -484,14 +473,14 @@ public class Reactor { setComponentAt(y, x, ComponentFactory.createComponent("coolantCellNak360k")); break; default: - warnings.append(formatI18n("Warning.Unrecognized", nextValue, y, x)); + warnings.append("Warning.Unrecognized", y, x); break; } } } if (warnings.length() > 0) { warnings.setLength(warnings.length() - 1); // to remove last newline character - JOptionPane.showMessageDialog(null, warnings, getI18n("Warning.Title"), JOptionPane.WARNING_MESSAGE); + //JOptionPane.showMessageDialog(null, warnings, "Warning.Title", JOptionPane.WARNING_MESSAGE); } } diff --git a/src/main/java/Ic2ExpReactorPlanner/ReactorPlannerFrame.form b/src/main/java/Ic2ExpReactorPlanner/ReactorPlannerFrame.form deleted file mode 100644 index 40e56f5d3e..0000000000 --- a/src/main/java/Ic2ExpReactorPlanner/ReactorPlannerFrame.form +++ /dev/null @@ -1,2260 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <NonVisualComponents> - <Component class="javax.swing.ButtonGroup" name="componentsGroup"> - </Component> - <Component class="javax.swing.ButtonGroup" name="reactorStyleGroup"> - </Component> - <Container class="javax.swing.JPanel" name="pulsePanel"> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel3"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.OnPulse" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="onPulseSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="5000000" maximum="5000000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="onPulseSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel4"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.Seconds" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel7"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.OffPulse" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="12" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="offPulseSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="0" maximum="5000000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="offPulseSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel8"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.Seconds" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel11"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.PulseHelp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel9"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.SuspendTemp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="suspendTempSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="120000" maximum="120000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="suspendTempSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel10"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.ResumeTemp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="12" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="resumeTempSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="120000" maximum="120000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[80, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="resumeTempSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel16"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.SuspendTempHelp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="resetPulseConfigButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ResetPulseConfig" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="resetPulseConfigButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="1.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - </NonVisualComponents> - <Properties> - <Property name="defaultCloseOperation" type="int" value="3"/> - <Property name="title" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.MainTitle" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[915, 700]"/> - </Property> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="formSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,3,9,0,0,4,85"/> - <SyntheticProperty name="formSizePolicy" type="int" value="0"/> - <SyntheticProperty name="generateSize" type="boolean" value="true"/> - <SyntheticProperty name="generateCenter" type="boolean" value="true"/> - </SyntheticProperties> - <Events> - <EventHandler event="componentResized" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="plannerResized"/> - </Events> - <AuxValues> - <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> - <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/> - <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Container class="javax.swing.JSplitPane" name="jSplitPane1"> - <Properties> - <Property name="orientation" type="int" value="0"/> - <Property name="resizeWeight" type="double" value="1.0"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="1.0" weightY="1.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="jPanel2"> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription"> - <JSplitPaneConstraints position="top"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Container class="javax.swing.JSplitPane" name="jSplitPane2"> - <Properties> - <Property name="resizeWeight" type="double" value="1.0"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="1.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="reactorPanel"> - <Properties> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[450, 300]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[450, 300]"/> - </Property> - </Properties> - <Events> - <EventHandler event="componentResized" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="reactorPanelComponentResized"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription"> - <JSplitPaneConstraints position="left"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout"> - <Property name="columns" type="int" value="9"/> - <Property name="horizontalGap" type="int" value="2"/> - <Property name="rows" type="int" value="6"/> - <Property name="verticalGap" type="int" value="2"/> - </Layout> - </Container> - <Container class="javax.swing.JSplitPane" name="jSplitPane3"> - <Properties> - <Property name="orientation" type="int" value="0"/> - <Property name="resizeWeight" type="double" value="1.0"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription"> - <JSplitPaneConstraints position="right"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="temperatureAndComponentsPanel"> - <Properties> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[475, 240]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[475, 240]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription"> - <JSplitPaneConstraints position="top"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="temperatureEffectsLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.TemperatureEffectsDefault" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Container class="javax.swing.JPanel" name="componentsPanel"> - <Properties> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[160, 80]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[160, 80]"/> - </Property> - </Properties> - <Events> - <EventHandler event="componentResized" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="componentsPanelComponentResized"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="1.0" weightY="1.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout"> - <Property name="columns" type="int" value="9"/> - <Property name="rows" type="int" value="6"/> - </Layout> - <SubComponents> - <Component class="javax.swing.JToggleButton" name="emptyButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="empty" noResource="true"/> - <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[50, 50]"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[50, 50]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[50, 50]"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodUraniumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodUranium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodUranium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodUraniumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodUranium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodUranium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodUraniumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodUranium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodUranium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodMoxButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodMox")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodMox" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodMoxButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodMox")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodMox" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodMoxButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodMox")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodMox" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="neutronReflectorButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("NeutronReflector")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="neutronReflector" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="thickNeutronReflectorButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ThickNeutronReflector")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="thickNeutronReflector" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="iridiumNeutronReflectorButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("IridiumNeutronReflector")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="iridiumNeutronReflector" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="heatVentButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("HeatVent")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="heatVent" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="advancedHeatVentButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("AdvancedHeatVent")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="advancedHeatVent" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="reactorHeatVentButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ReactorHeatVent")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="reactorHeatVent" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="componentHeatVentButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ComponentHeatVent")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="componentHeatVent" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="overclockedHeatVentButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("OverclockedHeatVent")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="overclockedHeatVent" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCell10kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell10k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCell10k" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCell30kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell30k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCell30k" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCell60kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell60k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCell60k" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="heatExchangerButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("HeatExchanger")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="heatExchanger" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="advancedHeatExchangerButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("AdvancedHeatExchanger")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="advancedHeatExchanger" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coreHeatExchangerButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ReactorHeatExchanger")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coreHeatExchanger" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="componentHeatExchangerButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ComponentHeatExchanger")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="componentHeatExchanger" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="reactorPlatingButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ReactorPlating")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="reactorPlating" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="heatCapacityReactorPlatingButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("HeatCapacityReactorPlating")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="heatCapacityReactorPlating" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="containmentReactorPlatingButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("ContainmentReactorPlating")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="containmentReactorPlating" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="rshCondensatorButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("RshCondensator")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="rshCondensator" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="lzhCondensatorButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("LzhCondensator")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="lzhCondensator" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodThoriumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodThorium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodThorium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodThoriumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodThorium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodThorium" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodThoriumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodThorium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodThorium" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellHelium60kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell60kHelium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellHelium60k" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellHelium180kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell180kHelium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellHelium180k" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellHelium360kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell360kHelium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellHelium360k" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellNak60kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell60kNak")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellNak60k" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellNak180kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell180kNak")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellNak180k" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellNak360kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCell360kNak")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellNak360k" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodNaquadahButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodNaquadah")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodNaquadah" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodNaquadahButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodNaquadah")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodNaquadah" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodNaquadahButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodNaquadah")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodNaquadah" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodCoaxiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodCoaxium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodCoaxium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodCoaxiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodCoaxium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodCoaxium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodCoaxiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodCoaxium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodCoaxium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodCesiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodCesium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodCesium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodCesiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodCesium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodCesium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodCesiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodCesium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodCesium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodNaquadahGTNHButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodNaquadahGTNH")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodNaquadahGTNH" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodNaquadahButtonGTNH"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("DualFuelRodNaquadahGTNH")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="dualFuelRodNaquadahGTNH" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodNaquadahGTNHButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodNaquadahGTNH")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodNaquadahGTNH" noResource="true"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodNaquadriaButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodNaquadria")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodNaquadria" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodNaquadriaButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodNaquadria")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodNaquadria" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodNaquadriaButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodNaquadria")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodNaquadria" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodTiberiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodTiberium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodTiberium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="dualFuelRodTiberiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodTiberium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodTiberium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="quadFuelRodTiberiumButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("QuadFuelRodTiberium")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="quadFuelRodTiberium" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="fuelRodTheCoreButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("FuelRodTheCore")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="fuelRodTheCore" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellSpace180kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCellSpace540k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellSpace180k" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellSpace360kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCellSpace540k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellSpace360k" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellSpace540kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCellSpace540k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellSpace540k" noResource="true"/> - </Properties> - </Component> - <Component class="javax.swing.JToggleButton" name="coolantCellSpace1080kButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="componentsGroup"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="buildTooltipInfo("CoolantCellSpace1080k")" type="code"/> - </Property> - <Property name="actionCommand" type="java.lang.String" value="coolantCellSpace1080k" noResource="true"/> - </Properties> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel8"> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="placingLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ComponentPlacingDefault" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="-1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="versionLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="formatI18n("UI.VersionNumber", VERSION)" type="code"/> - </Property> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Component class="javax.swing.JLabel" name="componentHeatLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.InitialComponentHeat" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="componentHeatSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="0" maximum="360000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[70, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[70, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="componentHeatSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="placingThresholdLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.PlacingReplacementThreshold" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="placingThresholdSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="9000" maximum="360000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="placingThresholdSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="placingReactorPauseLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.PlacingReactorPause" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="placingReactorPauseSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="0" maximum="10000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="placingReactorPauseSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel1"> - <Properties> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[392, 170]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[392, 160]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription"> - <JSplitPaneConstraints position="bottom"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="jPanel3"> - <Properties> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="-6" insetsLeft="-6" insetsBottom="-6" insetsRight="-6" anchor="15" weightX="0.0" weightY="1.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JRadioButton" name="euReactorRadio"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="reactorStyleGroup"/> - </Property> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.EUReactor" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="euReactorRadioActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JRadioButton" name="fluidReactorRadio"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="reactorStyleGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.FluidReactor" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="fluidReactorRadioActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel4"> - <Properties> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="-2" insetsLeft="-2" insetsBottom="-2" insetsRight="-2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JButton" name="clearGridButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ClearGridButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="clearGridButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="simulateButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.SimulateButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="simulateButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="cancelButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CancelButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cancelButtonActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel5"> - <Properties> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="-2" insetsLeft="-2" insetsBottom="-2" insetsRight="-2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel1"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.InitialReactorHeat" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - </Component> - <Component class="javax.swing.JSpinner" name="heatSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="0.0" maximum="9999.0" minimum="0.0" numberType="java.lang.Double" stepSize="1.0" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[70, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[70, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="heatSpinnerStateChanged"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="maxHeatLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.MaxHeatDefault" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel6"> - <Properties> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="-4" insetsLeft="-4" insetsBottom="-4" insetsRight="-4" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JCheckBox" name="pulsedReactorCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.PulsedReactor" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pulsedReactorCheckActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JCheckBox" name="automatedReactorCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.AutomatedReactor" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="automatedReactorCheckActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel7"> - <Properties> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="-2" insetsLeft="-2" insetsBottom="-2" insetsRight="-2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="maxSimulationTicksLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.MaxSimulationTicks" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JSpinner" name="maxSimulationTicksSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="5000000" maximum="5000000" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.MaxSimulationTicksTooltip" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="maxSimulationTicksSpinnerStateChanged"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="jLabel6"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.Seconds" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - </Component> - </SubComponents> - </Container> - <Component class="javax.swing.JCheckBox" name="reactorCoolantInjectorCheckbox"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.ReactorCoolantInjectors" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="reactorCoolantInjectorCheckboxActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - </SubComponents> - </Container> - </SubComponents> - </Container> - <Component class="javax.swing.JLabel" name="jLabel2"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CodeLabel" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="12" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JTextField" name="codeField"> - <Properties> - <Property name="editable" type="boolean" value="false"/> - <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[200, 20]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="copyCodeButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CopyCodeButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="copyCodeButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="pasteCodeButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.PasteCodeButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pasteCodeButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JTabbedPane" name="outputTabs"> - <Properties> - <Property name="tabLayoutPolicy" type="int" value="1"/> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[900, 220]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription"> - <JSplitPaneConstraints position="right"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/> - <SubComponents> - <Container class="javax.swing.JScrollPane" name="outputPane"> - <AuxValues> - <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Simulation"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.SimulationTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Component class="javax.swing.JTextArea" name="outputArea"> - <Properties> - <Property name="editable" type="boolean" value="false"/> - <Property name="columns" type="int" value="20"/> - <Property name="rows" type="int" value="5"/> - </Properties> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JScrollPane" name="componentPane"> - <AuxValues> - <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Component"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ComponentTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Component class="javax.swing.JTextArea" name="componentArea"> - <Properties> - <Property name="columns" type="int" value="20"/> - <Property name="rows" type="int" value="5"/> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ComponentInfoDefault" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="automationPanel"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Component Automation"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ComponentAutomationTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="selectedComponentLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.NoComponentSelected" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel12"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.ReplacementThreshold" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="thresholdSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="9000" maximum="360000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="thresholdSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel13"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.ReplacementThresholdHelp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel14"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.ReactorPause" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="pauseSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="0" maximum="10000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="pauseSpinnerStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel15"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.ReactorPauseHelp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="1.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JScrollPane" name="componentListPane"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Component List"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ComponentListTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Component class="javax.swing.JTextArea" name="componentListArea"> - <Properties> - <Property name="columns" type="int" value="20"/> - <Property name="rows" type="int" value="5"/> - </Properties> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JScrollPane" name="materialsListPane"> - <AuxValues> - <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Materials"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.MaterialsTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Component class="javax.swing.JTextArea" name="materialsArea"> - <Properties> - <Property name="editable" type="boolean" value="false"/> - <Property name="columns" type="int" value="20"/> - <Property name="rows" type="int" value="5"/> - </Properties> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="csvPanel"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="CSV"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CSVTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JCheckBox" name="csvOutputCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.CSVCheckbox" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel19"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Config.CSVLimit" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="13" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JSpinner" name="csvLimitSpinner"> - <Properties> - <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> - <SpinnerModel initial="5000" maximum="5000000" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="csvFileLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CSVFileDefault" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo"> - <EtchetBorder/> - </Border> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="-1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.3" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="csvBrowseButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CSVBrowseButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="csvBrowseButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="csvHelpLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CSVHelp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="1.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JScrollPane" name="advancedScroll"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Advanced"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.AdvancedTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="advancedPanel"> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="jPanel10"> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel20"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.MinecraftVersion" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - </Component> - <Component class="javax.swing.JComboBox" name="mcVersionCombo"> - <Properties> - <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> - <StringArray count="6"> - <StringItem index="0" value="1.12.2"/> - <StringItem index="1" value="1.11.2"/> - <StringItem index="2" value="1.10.2"/> - <StringItem index="3" value="1.9.4"/> - <StringItem index="4" value="1.8.9"/> - <StringItem index="5" value="1.7.10"/> - </StringArray> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mcVersionComboActionPerformed"/> - </Events> - <AuxValues> - <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> - </AuxValues> - </Component> - <Component class="javax.swing.JLabel" name="jLabel21"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.GregTechVersion" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JComboBox" name="gtVersionCombo"> - <Properties> - <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="new DefaultComboBoxModel<String>
(new String[]{getI18n("UI.GregTechVersionNone"), "5.08", "5.09", "GTNH"})" type="code"/> - </Property> - <Property name="selectedItem" type="java.lang.Object" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> - <Connection code="getI18n("UI.GregTechVersionNone")" type="code"/> - </Property> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="gtVersionComboActionPerformed"/> - </Events> - <AuxValues> - <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> - </AuxValues> - </Component> - </SubComponents> - </Container> - <Component class="javax.swing.JCheckBox" name="showComponentDetailButtonsCheck"> - <Properties> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ShowComponentDetailButtons" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="showComponentDetailButtonsCheckActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JCheckBox" name="showOldStyleReactorCodeCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ShowOldStyleReactorCode" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="showOldStyleReactorCodeCheckActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JCheckBox" name="showComponentPreconfigCheck"> - <Properties> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ShowComponentPreconfigControls" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="showComponentPreconfigCheckActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="texturePackLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.TexturePackDefault" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="6" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="texturePackBrowseButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.TexturePackBrowseButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="texturePackBrowseButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="texturePackClearButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.TexturePackClearButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="texturePackClearButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="jLabel5"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.TexturePackHelp" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="6" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JCheckBox" name="expandAdvancedAlloyCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ExpandAdvancedAlloy" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="expandAdvancedAlloyCheckActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="1.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - </SubComponents> - </Container> - <Container class="javax.swing.JScrollPane" name="comparisonScroll"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> - <JTabbedPaneConstraints tabName="Comparison"> - <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.ComparisonTab" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </JTabbedPaneConstraints> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="comparisonPanel"> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel17"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CodeLabel" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JTextField" name="comparisonCodeField"> - <Properties> - <Property name="editable" type="boolean" value="false"/> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="1.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="comparisonCopyCodeButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CopyCodeButton" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="comparisonCopyCodeButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Container class="javax.swing.JPanel" name="jPanel9"> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JCheckBox" name="lockPrevCodeCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.LockInTabCode" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JCheckBox" name="onlyShowDiffCheck"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.OnlyShowDiffData" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="onlyShowDiffCheckActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="copyComparisonButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="UI.CopyComparisonData" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="copyComparisonButtonActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - <Component class="javax.swing.JLabel" name="jLabel18"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Comparison.Header" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/> - <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="comparisonLabel"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Arial" size="12" style="0"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="Ic2ExpReactorPlanner/Bundle.properties" key="Comparison.Default" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{key}")"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="18" weightX="0.0" weightY="1.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - </SubComponents> - </Container> - </SubComponents> - </Container> - </SubComponents> - </Container> - </SubComponents> -</Form> diff --git a/src/main/java/Ic2ExpReactorPlanner/SimulationData.java b/src/main/java/Ic2ExpReactorPlanner/SimulationData.java index d6384ef012..39ecdbc5f5 100644 --- a/src/main/java/Ic2ExpReactorPlanner/SimulationData.java +++ b/src/main/java/Ic2ExpReactorPlanner/SimulationData.java @@ -76,6 +76,4 @@ public class SimulationData { public double ventCooling = 0; public double ventCoolingCapacity = 0; - // Automation details - public MaterialsList replacedItems = new MaterialsList(); } diff --git a/src/main/java/Ic2ExpReactorPlanner/components/ReactorItem.java b/src/main/java/Ic2ExpReactorPlanner/components/ReactorItem.java index 4c4e0bb01b..9a9b1ce341 100644 --- a/src/main/java/Ic2ExpReactorPlanner/components/ReactorItem.java +++ b/src/main/java/Ic2ExpReactorPlanner/components/ReactorItem.java @@ -176,8 +176,6 @@ public class ReactorItem { protected double explosionPowerMultiplier = 1; - protected static final ResourceBundle BUNDLE = ResourceBundle.getBundle("Ic2ExpReactorPlanner/Bundle"); - protected ReactorItem(final int id, final String baseName, GT_ItemStack aItem, final double maxDamage, final double maxHeat, String sourceMod) { this.id = id; this.baseName = baseName; @@ -223,7 +221,7 @@ public class ReactorItem { public String toString() { String result = name; if (initialHeat > 0) { - result += String.format(BUNDLE.getString("UI.InitialHeatDisplay"), (int) initialHeat); + result += String.format("\u0020(initial heat: %,d)", (int) initialHeat); } return result; } diff --git a/src/main/java/Ic2ExpReactorPlanner/components/Reflector.java b/src/main/java/Ic2ExpReactorPlanner/components/Reflector.java index 465641972a..7851a62804 100644 --- a/src/main/java/Ic2ExpReactorPlanner/components/Reflector.java +++ b/src/main/java/Ic2ExpReactorPlanner/components/Reflector.java @@ -5,11 +5,8 @@ */ package Ic2ExpReactorPlanner.components; -import Ic2ExpReactorPlanner.MaterialsList; import gregtech.api.objects.GT_ItemStack; -import java.awt.Image; - /** * Represents a neutron reflector in a reactor. * @author Brian McCloud diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java index 1876001f11..cd960e5ca1 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -266,11 +266,31 @@ public class RECIPES_Machines { multiSolarTower(); multiElementalDuplicator(); + computerCube(); + resonanceChambers(); modulators(); } + + private static void computerCube() { + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(20), + CI.getTieredGTPPMachineCasing(4, 1), + CI.getCircuit(4, 8), + CI.getFieldGenerator(2, 4), + CI.getDoublePlate(4, 8), + CI.getRobotArm(4, 8) + }, + Materials.Redstone.getMolten(144 * 32), + GregtechItemList.Gregtech_Computer_Cube_Machine.get(1), + 20 * 60 * 10, + MaterialUtils.getVoltageForTier(4)); + + } private static void gt4FarmManager() { @@ -532,6 +552,25 @@ public class RECIPES_Machines { private static void multiXlTurbines() { + RecipeUtils.addShapedRecipe( + CI.getDoublePlate(4, 1), CI.getElectricMotor(3, 1), CI.getDoublePlate(4, 1), + ItemUtils.getItemStackOfAmountFromOreDict("cellLubricant", 1), ItemList.Casing_Gearbox_Titanium.get(1), ItemUtils.getItemStackOfAmountFromOreDict("cellLubricant", 1), + CI.getDoublePlate(4, 1), CI.getElectricMotor(3, 1), CI.getDoublePlate(4, 1), + GregtechItemList.Casing_Turbine_Shaft.get(1)); + + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(18), + ItemList.Casing_Turbine.get(1), + CI.getPlate(4, 4), + CI.getScrew(4, 8), + CI.getCircuit(4, 4), + CI.getGear(3, 8) + }, + CI.tieredMaterials[3].getMolten(144 * 8), + GregtechItemList.Hatch_Turbine_Rotor.get(1), + 20 * 60, + MaterialUtils.getVoltageForTier(4)); // Steam CORE.RA.addSixSlotAssemblingRecipe( @@ -712,6 +751,84 @@ public class RECIPES_Machines { private static void multiElementalDuplicator() { + CORE.RA.addAssemblylineRecipe( + ItemList.Machine_IV_Replicator.get(1), + 20 * 60 * 60 * 12, + new Object[] { + CI.getTieredMachineHull(7, 4), + CI.getFieldGenerator(5, GTNH ? 32 : 16), + CI.getElectricMotor(7, GTNH ? 32 : 16), + CI.getElectricPiston(7, GTNH ? 16 : 4), + CI.getEnergyCore(6, GTNH ? 8 : 2), + CI.getPlate(7, GTNH ? 32 : 16), + CI.getScrew(7, GTNH ? 64 : 32), + CI.getBolt(6, GTNH ? 64 : 32), + CI.getTieredComponent(OrePrefixes.rod, 6, GTNH ? 20 : 10), + new Object[] {CI.getTieredCircuitOreDictName(7), 20}, + ItemList.Tool_DataOrb.get(32), + GregtechItemList.Laser_Lens_Special.get(1) + }, + new FluidStack[] { + CI.getTieredFluid(7, 144 * 32), + CI.getAlternativeTieredFluid(6, 144 * 16), + CI.getTertiaryTieredFluid(6, 144 * 16), + ALLOY.BABBIT_ALLOY.getFluidStack(128 * 144), + + }, + GregtechItemList.Controller_ElementalDuplicator.get(1), + 20 * 60 * 60 * (GTNH ? 2 : 1), + (int) MaterialUtils.getVoltageForTier(7)); + + CORE.RA.addAssemblylineRecipe( + GregtechItemList.Modulator_III.get(1), + 20 * 60 * 60 * 4, + new Object[] { + CI.getTieredGTPPMachineCasing(7, 2), + CI.getFieldGenerator(4, GTNH ? 8 : 4), + CI.getEnergyCore(4, GTNH ? 8 : 2), + CI.getPlate(7, GTNH ? 16 : 8), + CI.getScrew(6, GTNH ? 32 : 16), + CI.getBolt(6, GTNH ? 32 : 16), + CI.getTieredComponent(OrePrefixes.rod, 5, GTNH ? 32 : 16), + new Object[] {CI.getTieredCircuitOreDictName(6), 32}, + ItemList.Tool_DataOrb.get(32), + }, + new FluidStack[] { + CI.getTieredFluid(6, 144 * 16), + CI.getAlternativeTieredFluid(5, 144 * 8), + CI.getTertiaryTieredFluid(5, 144 * 8), + ALLOY.BABBIT_ALLOY.getFluidStack(64 * 144), + + }, + GregtechItemList.Hatch_Input_Elemental_Duplicator.get(1), + 20 * 60 * 60 * (GTNH ? 4 : 2), + (int) MaterialUtils.getVoltageForTier(6)); + + CORE.RA.addAssemblylineRecipe( + GregtechItemList.ResonanceChamber_III.get(1), + 20 * 60 * 60 * 2, + new Object[] { + CI.getTieredMachineHull(6, 5), + CI.getFieldGenerator(3, GTNH ? 32 : 16), + CI.getEnergyCore(2, GTNH ? 8 : 2), + CI.getPlate(7, GTNH ? 8 : 4), + CI.getScrew(7, GTNH ? 8 : 4), + CI.getBolt(6, GTNH ? 16 : 8), + CI.getTieredComponent(OrePrefixes.rod, 5, GTNH ? 8 : 4), + new Object[] {CI.getTieredCircuitOreDictName(5), 4}, + ItemList.Tool_DataStick.get(4), + }, + new FluidStack[] { + CI.getTieredFluid(5, 144 * 16), + CI.getAlternativeTieredFluid(4, 144 * 8), + CI.getTertiaryTieredFluid(4, 144 * 8), + ALLOY.BABBIT_ALLOY.getFluidStack(16 * 144), + + }, + GregtechItemList.Casing_ElementalDuplicator.get(1), + 20 * 60 * (GTNH ? 20 : 10), + (int) MaterialUtils.getVoltageForTier(6)); + } private static void resonanceChambers() { diff --git a/src/main/java/gtPlusPlus/core/recipe/common/CI.java b/src/main/java/gtPlusPlus/core/recipe/common/CI.java index 6bdf77bec5..c5a514c31a 100644 --- a/src/main/java/gtPlusPlus/core/recipe/common/CI.java +++ b/src/main/java/gtPlusPlus/core/recipe/common/CI.java @@ -541,7 +541,7 @@ public class CI { ALLOY.TUMBAGA, ALLOY.EGLIN_STEEL, ALLOY.INCONEL_792, - ALLOY.TUNGSTEN_TITANIUM_CARBIDE, + ALLOY.INCOLOY_MA956, ALLOY.NITINOL_60, ALLOY.ZERON_100, ALLOY.PIKYONIUM, diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java index c61195a9e8..4d67603db0 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java @@ -501,12 +501,25 @@ public enum GregtechItemList implements GregtechItemContainer { Hatch_SuperBus_Output_MAX, - - //---------------------------------------------------------------------------- + /** + * Blocks + */ + + + ResonanceChamber_I, + ResonanceChamber_II, + ResonanceChamber_III, + ResonanceChamber_IV, + + Modulator_I, + Modulator_II, + Modulator_III, + Modulator_IV, + //---------------------------------------------------------------------------- /** diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_Container_ComputerCube.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_Container_ComputerCube.java index 80202695e7..8abe7bff66 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_Container_ComputerCube.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_Container_ComputerCube.java @@ -4,22 +4,16 @@ import java.util.Iterator; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.gui.GT_ContainerMetaTile_Machine; -import gregtech.api.gui.GT_Slot_Holo; -import gregtech.api.gui.GT_Slot_Output; +import gregtech.api.gui.*; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.slots.SlotDataStick; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.common.tileentities.misc.GT_TileEntity_ComputerCube; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; import net.minecraft.item.ItemStack; public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { @@ -39,6 +33,13 @@ public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { public long mEU; public int mEU1; public int mEU2; + + public long mStoredEU; + public int mStoredEU1; + public int mStoredEU2; + public long mMaxStoredEU; + public int mMaxStoredEU1; + public int mMaxStoredEU2; public int mProgress; @@ -66,90 +67,72 @@ public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { int y; mID = ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mMode; Logger.INFO(""+(Utils.isClient() ? "Client" : "Server")+" Mode: " + mID); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 156 + ((this.mID == 5) ? 50 : 0), 4, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 156 + ((this.mID == 5) ? 50 : 0), 4, false, false, 1)); switch (this.mID) { case 1 : - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 156, 86, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 156, 70, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 156, 54, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 156, 86, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 156, 70, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 156, 54, false, false, 1)); for (y = 0; y < 6; y++) { for (int x = 0; x < 9; x++) - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, x + y * 9, 5 + x * 16, 5 + y * 16, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, x + y * 9, 5 + x * 16, 5 + y * 16, false, false, 64)); } - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 113, 153, 28, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 113, 153, 28, false, false, 64)); break; case 2 : - addSlotToContainer(new Slot((IInventory) this.mTileEntity, 54, 8, 28)); - addSlotToContainer(new Slot((IInventory) this.mTileEntity, 55, 26, 28)); - addSlotToContainer(new GT_Slot_Output((IInventory) this.mTileEntity, 56, 134, 28)); - addSlotToContainer(new GT_Slot_Output((IInventory) this.mTileEntity, 57, 152, 28)); + addSlotToContainer(new SlotDataStick(this.mTileEntity, 54, 8, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 55, 26, 28)); + addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 56, 134, 28)); + addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 57, 152, 28)); break; case 3 : - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 88, 65, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 104, 65, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 59, 122, 35, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 60, 92, 5, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 61, 122, 5, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 62, 152, 35, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 63, 122, 65, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 64, 92, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 88, 65, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 104, 65, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 59, 122, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 60, 92, 5, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 61, 122, 5, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 62, 152, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 63, 122, 65, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 64, 92, 35, false, false, 64)); break; case 4 : - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 88, 65, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 104, 65, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 59, 122, 5, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 60, 122, 65, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 61, 152, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 88, 65, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 104, 65, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 59, 122, 5, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 60, 122, 65, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 61, 152, 35, false, false, 64)); break; case 5 : - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 190, 146, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 206, 146, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 59, 206, 38, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 60, 206, 56, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 61, 206, 74, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 62, 206, 92, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 63, 206, 110, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 64, 153, 7, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 65, 169, 7, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 66, 185, 7, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 67, 153, 23, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 68, 169, 23, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 69, 185, 23, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 70, 153, 39, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 71, 169, 39, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 72, 185, 39, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 190, 146, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 206, 146, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 59, 206, 38, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 60, 206, 56, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 61, 206, 74, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 62, 206, 92, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 63, 206, 110, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 64, 153, 7, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 65, 169, 7, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 66, 185, 7, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 67, 153, 23, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 68, 169, 23, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 69, 185, 23, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 70, 153, 39, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 71, 169, 39, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 72, 185, 39, false, false, 64)); break; case 6 : - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 88, 65, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 58, 104, 65, false, false, 1)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 59, 122, 35, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 60, 92, 5, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 61, 122, 5, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 62, 152, 35, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 63, 122, 65, false, false, 64)); - addSlotToContainer(new GT_Slot_Holo((IInventory) this.mTileEntity, 64, 92, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 88, 65, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 58, 104, 65, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 59, 122, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 60, 92, 5, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 61, 122, 5, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 62, 152, 35, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 63, 122, 65, false, false, 64)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 64, 92, 35, false, false, 64)); break; } } - public int getComputerCubeGUIID() { - switch (getMode()) { - case 1 : - return 32; - case 2 : - return 34; - case 3 : - return 35; - case 4 : - return 36; - case 5 : - return 37; - case 6 : - return 38; - } - return 4; - } - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { //Logger.INFO("Clicked slot " + aSlotIndex); if (aSlotIndex < 0) { @@ -187,51 +170,51 @@ public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { else if (aSlotIndex <= 2 && this.mID == 3) { if (aSlotIndex == 1) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchCentrifugePageBackward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } else if (aSlotIndex == 2) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchCentrifugePageForward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } } else if (aSlotIndex <= 2 && this.mID == 6) { if (aSlotIndex == 1) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchElectrolyzerPageBackward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } else if (aSlotIndex == 2) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchElectrolyzerPageForward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } } else if (aSlotIndex <= 2 && this.mID == 4) { if (aSlotIndex == 1) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchFusionPageBackward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } else if (aSlotIndex == 2) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchFusionPageForward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } } else if (aSlotIndex <= 2 && this.mID == 5) { if (aSlotIndex == 1) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchDescriptionPageBackward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } else if (aSlotIndex == 2) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchDescriptionPageForward(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } } else if (aSlotIndex <= 58 && this.mID == 1) { if (aSlotIndex == 1) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).switchNuclearReactor(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } else if (aSlotIndex == 2) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).loadNuclearReactor(); - onCraftMatrixChanged((IInventory) this.mTileEntity); + onCraftMatrixChanged(this.mTileEntity); } else if (aSlotIndex == 3) { ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).saveNuclearReactor(); @@ -307,6 +290,16 @@ public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) { return; } + mStoredEU = mTileEntity.getStoredEU(); + mMaxStoredEU = mTileEntity.getEUCapacity(); + int[] aStored = MathUtils.splitLongIntoTwoIntegers(mStoredEU); + int[] aMaxStorage = MathUtils.splitLongIntoTwoIntegers(mMaxStoredEU); + mStoredEU1 = aStored[0]; + mStoredEU2 = aStored[1]; + mMaxStoredEU1 = aMaxStorage[0]; + mMaxStoredEU2 = aMaxStorage[1]; + + this.mID = ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mMode; this.mEUOut = ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mEUOut; int[] aEUSplit1 = MathUtils.splitLongIntoTwoIntegers(mEUOut); @@ -318,24 +311,30 @@ public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { this.mExplosionStrength = (int) (((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mExplosionStrength * 100.0F); this.mEU = ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mEU; this.mProgress = ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mProgress; + this.mMaxProgressTime = ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).mMaxProgress; + this.mProgressTime = (int) ((GT_TileEntity_ComputerCube) mTileEntity.getMetaTileEntity()).getEUVar(); int[] aEUSplit2 = MathUtils.splitLongIntoTwoIntegers(mEU); this.mEU1 = aEUSplit2[0]; this.mEU2 = aEUSplit2[1]; Iterator<ICrafting> var2 = this.crafters.iterator(); while (var2.hasNext()) { ICrafting var1 = var2.next(); - var1.sendProgressBarUpdate((Container) this, 101, this.mID); - var1.sendProgressBarUpdate((Container) this, 102, this.mHeat & 0xFFFF); - var1.sendProgressBarUpdate((Container) this, 103, this.mMaxHeat & 0xFFFF); - var1.sendProgressBarUpdate((Container) this, 104, this.mHEM); - var1.sendProgressBarUpdate((Container) this, 105, this.mExplosionStrength); - var1.sendProgressBarUpdate((Container) this, 106, this.mHeat >>> 16); - var1.sendProgressBarUpdate((Container) this, 107, this.mMaxHeat >>> 16); - var1.sendProgressBarUpdate((Container) this, 108, this.mEU1); - var1.sendProgressBarUpdate((Container) this, 109, this.mEU2); - var1.sendProgressBarUpdate((Container) this, 110, this.mProgress); - var1.sendProgressBarUpdate((Container) this, 111, this.mEUOut1); - var1.sendProgressBarUpdate((Container) this, 112, this.mEUOut2); + var1.sendProgressBarUpdate(this, 101, this.mID); + var1.sendProgressBarUpdate(this, 102, this.mHeat & 0xFFFF); + var1.sendProgressBarUpdate(this, 103, this.mMaxHeat & 0xFFFF); + var1.sendProgressBarUpdate(this, 104, this.mHEM); + var1.sendProgressBarUpdate(this, 105, this.mExplosionStrength); + var1.sendProgressBarUpdate(this, 106, this.mHeat >>> 16); + var1.sendProgressBarUpdate(this, 107, this.mMaxHeat >>> 16); + var1.sendProgressBarUpdate(this, 108, this.mEU1); + var1.sendProgressBarUpdate(this, 109, this.mEU2); + var1.sendProgressBarUpdate(this, 110, this.mProgress); + var1.sendProgressBarUpdate(this, 111, this.mEUOut1); + var1.sendProgressBarUpdate(this, 112, this.mEUOut2); + var1.sendProgressBarUpdate(this, 113, mStoredEU1); + var1.sendProgressBarUpdate(this, 114, mStoredEU2); + var1.sendProgressBarUpdate(this, 115, mMaxStoredEU1); + var1.sendProgressBarUpdate(this, 116, mMaxStoredEU2); } } @@ -379,6 +378,20 @@ public class GT_Container_ComputerCube extends GT_ContainerMetaTile_Machine { this.mEUOut2 = par2; this.mEUOut = MathUtils.combineTwoIntegersToLong(mEUOut1, mEUOut2); break; + case 113 : + mStoredEU1 = par2; + break; + case 114 : + mStoredEU2 = par2; + mStoredEU = MathUtils.combineTwoIntegersToLong(mStoredEU1, mStoredEU2); + break; + case 115 : + mMaxStoredEU1 = par2; + break; + case 116 : + mMaxStoredEU2 = par2; + mMaxStoredEU = MathUtils.combineTwoIntegersToLong(mMaxStoredEU1, mMaxStoredEU2); + break; } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_GUIContainer_ComputerCube.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_GUIContainer_ComputerCube.java index c56e167319..71defdc72a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_GUIContainer_ComputerCube.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/computer/GT_GUIContainer_ComputerCube.java @@ -2,21 +2,25 @@ package gtPlusPlus.xmod.gregtech.api.gui.computer; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.common.computer.GT_Computercube_Description; +import gtPlusPlus.xmod.gregtech.common.tileentities.misc.GT_TileEntity_ComputerCube; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; public class GT_GUIContainer_ComputerCube extends GT_GUIContainerMetaTile_Machine { + + public final GT_Container_ComputerCube mPowerContainer; + public GT_GUIContainer_ComputerCube(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aBaseMetaTileEntity, int aID) { super(new GT_Container_ComputerCube(aInventoryPlayer, aBaseMetaTileEntity, aID), CORE.RES_PATH_GUI + "computer/"+aID+".png"); - GT_Container_ComputerCube tContainer = (GT_Container_ComputerCube) this.mContainer; - Logger.INFO("1 GUI Mode: "+aID); - Logger.INFO("2 GUI Mode: "+tContainer.mID); - if (tContainer.mID == 5) { + mPowerContainer = (GT_Container_ComputerCube) mContainer; + if (mPowerContainer.mID == 5) { this.xSize += 50; } } @@ -43,8 +47,8 @@ public class GT_GUIContainer_ComputerCube extends GT_GUIContainerMetaTile_Machin if (tContainer != null) switch (tContainer.mID) { case 0 : - this.fontRendererObj.drawString("G.L.A.D.-OS", 64, 61, 16448255); - this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString("Solaris 1.7.10", 56, 70, Utils.rgbtoHexValue(100, 190, 255)); + //this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); break; case 1 : this.fontRendererObj.drawString("Reactorstats:", 7, 108, 16448255); @@ -58,11 +62,13 @@ public class GT_GUIContainer_ComputerCube extends GT_GUIContainerMetaTile_Machin this.fontRendererObj.drawString("Scanner", 51, 7, 16448255); if (tContainer.mProgress == 0) { this.fontRendererObj.drawString("Can be used to", 51, 24, 16448255); - this.fontRendererObj.drawString("scan Seedbags", 51, 32, 16448255); + this.fontRendererObj.drawString("scan things", 51, 32, 16448255); + this.fontRendererObj.drawString("Currently", 51, 48, Utils.rgbtoHexValue(200, 20, 20)); + this.fontRendererObj.drawString("Disabled", 51, 56, Utils.rgbtoHexValue(200, 20, 20)); } else { this.fontRendererObj.drawString("Progress:", 51, 24, 16448255); - this.fontRendererObj.drawString(tContainer.mProgress + "%", 51, 32, 16448255); + this.fontRendererObj.drawString(MathUtils.findPercentage(tContainer.mProgress, tContainer.mMaxProgressTime) + " %", 51, 32, 16448255); } this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); break; @@ -73,15 +79,17 @@ public class GT_GUIContainer_ComputerCube extends GT_GUIContainerMetaTile_Machin break; case 4 : this.fontRendererObj.drawString("Fusionreactor", 7, 7, 16448255); - this.fontRendererObj.drawString("Recipe: " + (tContainer.mMaxHeat + 1) + "/" + GT_Recipe_Map.sFusionRecipes.mRecipeList.size(), 7, 23, 16448255); - this.fontRendererObj.drawString("Start: " + toNumber(tContainer.mEU) + "EU", 7, 31, 16448255); - this.fontRendererObj.drawString("EU/t: " + toNumber(tContainer.mEUOut), 7, 39, 16448255); - this.fontRendererObj.drawString(toNumber(tContainer.mHeat) + " Ticks", 7, 47, 16448255); + this.fontRendererObj.drawString("Recipe: " + (tContainer.mMaxHeat + 1) + "/" + GT_TileEntity_ComputerCube.sFusionReactorRecipes.size(), 7, 15, 16448255); + this.fontRendererObj.drawString("Start: " + toNumber(tContainer.mEU) + "EU", 7, 23, 16448255); + this.fontRendererObj.drawString("EU/t: " + toNumber(tContainer.mEUOut), 7, 31, 16448255); + this.fontRendererObj.drawString(toNumber(tContainer.mHeat) + " Ticks", 7, 39, 16448255); + GT_Recipe tRecipe = GT_TileEntity_ComputerCube.sFusionReactorRecipes.get(tContainer.mMaxHeat); + this.fontRendererObj.drawString(""+tRecipe.mFluidOutputs[0].getLocalizedName(), 7, 55, 16448255); if (tContainer.mEUOut < 0) { - this.fontRendererObj.drawString("IN: " + toNumber(-tContainer.mEUOut * tContainer.mHeat) + "EU", 7, 55, 16448255); + this.fontRendererObj.drawString("IN: " + toNumber(-tContainer.mEUOut * tContainer.mHeat) + "EU", 7, 47, 16448255); break; } - this.fontRendererObj.drawString("OUT: " + toNumber(tContainer.mEUOut * tContainer.mHeat) + "EU", 7, 55, 16448255); + this.fontRendererObj.drawString("OUT: " + toNumber(tContainer.mEUOut * tContainer.mHeat) + "EU", 7, 47, 16448255); break; case 5 : if (tContainer.mID == 5 && this.xSize == 176) { @@ -114,6 +122,17 @@ public class GT_GUIContainer_ComputerCube extends GT_GUIContainerMetaTile_Machin int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); switch (tContainer.mID) { + case 0 : + if (this.mPowerContainer.mStoredEU > 0 && this.mPowerContainer.mMaxStoredEU > 0) { + final double tScale = MathUtils.findPercentage(this.mPowerContainer.mStoredEU, this.mPowerContainer.mMaxStoredEU); + this.drawTexturedModalRect(x + 44, y + 8, 0, 166, Math.min(MathUtils.roundToClosestInt(tScale), 95), 5); + } + else { + // + //Logger.INFO("1 No Power? "+tContainer.mProgressTime+" | "+tContainer.mTileEntity.getEUCapacity()); + //Logger.INFO("2 No Power? "+aComp.getEUVar()+" | "+aComp.maxEUStore()); + } + break; case 5 : if (tContainer.mExplosionStrength != 0) drawTexturedModalRect(x + 152, y + 6, 0, 166, 50, 50); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaSpecialMultiCasings2.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaSpecialMultiCasings2.java index 7ec655dca5..a80b788aa1 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaSpecialMultiCasings2.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaSpecialMultiCasings2.java @@ -7,6 +7,7 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Textures; import gregtech.api.util.GT_LanguageManager; import gregtech.common.blocks.GT_Material_Casings; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -59,7 +60,14 @@ public class GregtechMetaSpecialMultiCasings2 extends GregtechMetaCasingBlocksAb GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".14.name", ""); // Unused GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".15.name", ""); // Unused - //GregtechItemList.Casing_Turbine_Shaft.set(new ItemStack(this, 1, 0)); + GregtechItemList.ResonanceChamber_I.set(new ItemStack(this, 1, 0)); + GregtechItemList.ResonanceChamber_II.set(new ItemStack(this, 1, 1)); + GregtechItemList.ResonanceChamber_III.set(new ItemStack(this, 1, 2)); + GregtechItemList.ResonanceChamber_IV.set(new ItemStack(this, 1, 3)); + GregtechItemList.Modulator_I.set(new ItemStack(this, 1, 4)); + GregtechItemList.Modulator_II.set(new ItemStack(this, 1, 5)); + GregtechItemList.Modulator_III.set(new ItemStack(this, 1, 6)); + GregtechItemList.Modulator_IV.set(new ItemStack(this, 1, 7)); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java index 033a5f925b..67999087f3 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java @@ -1,39 +1,50 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.misc; +import static gregtech.api.enums.GT_Values.V; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes; + import java.util.ArrayList; import java.util.Collections; import Ic2ExpReactorPlanner.SimulationData; +import cpw.mods.fml.common.FMLCommonHandler; import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; +import gregtech.api.enums.*; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; -import gregtech.api.objects.GT_ItemStack; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_Recipe; +import gregtech.api.objects.*; +import gregtech.api.util.*; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gregtech.api.util.GT_Utility; +import gregtech.common.items.behaviors.Behaviour_DataOrb; import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_Container_ComputerCube; import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_GUIContainer_ComputerCube; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.computer.GT_Computercube_Description; import gtPlusPlus.xmod.gregtech.common.computer.GT_Computercube_Simulator; -import ic2.core.Ic2Items; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { + public static int MODE_MAIN = 0; + public static int MODE_REACTOR_PLANNER = 1; + public static int MODE_SCANNER = 2; + public static int MODE_CENTRIFUGE = 3; + public static int MODE_FUSION = 4; + public static int MODE_INFO = 5; + public static int MODE_ELECTROLYZER = 6; + public static boolean mSeedscanner = true; public static boolean mReactorplanner = true; @@ -48,11 +59,12 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { public long mEUOut = 0; - public int mMaxHeat = 10000; + public int mMaxHeat = 1; public long mEU = 0; public int mProgress = 0; + public int mMaxProgress = 0; public int mEUTimer = 0; @@ -65,13 +77,15 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { public int mEULast4 = 0; public float mHEM = 1.0F, mExplosionStrength = 0.0F; + + public String mFusionOutput = ""; private boolean mNeedsUpdate; private GT_Computercube_Simulator mSimulator; public GT_TileEntity_ComputerCube(final int aID, final String aDescription) { - super(aID, "computer.cube", "Computer Cube", 5, 114, aDescription); + super(aID, "computer.cube", "Computer Cube MKII", 5, 114, aDescription); } public GT_TileEntity_ComputerCube(final String aName, final String aDescription, final ITexture[][][] aTextures) { @@ -91,6 +105,17 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { } @Override + public String[] getDescription() { + return new String[]{ + this.mDescription, + "Built in Reactor Planner", + "Built in Scanner", + "Built in Info-Bank", + "Displays Fusion Recipes", + CORE.GT_Tooltip}; + } + + @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { if (aBaseMetaTileEntity.isClientSide()) { return true; @@ -143,7 +168,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { @Override public long maxEUInput() { - return GT_Values.V[2]; + return GT_Values.V[4]; } @Override @@ -213,6 +238,8 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { this.mHEM = 1.0F; this.mExplosionStrength = 0.0F; this.mProgress = 0; + this.mMaxProgress = 0; + this.mFusionOutput = ""; this.mInventory[113] = null; int i; for (i = 0; i < 54; i++) { @@ -229,37 +256,51 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { } public void switchModeForward() { - this.mMode = (this.mMode + 1) % 7; + int aTempMode = mMode; + aTempMode++; + if (aTempMode == MODE_ELECTROLYZER ||aTempMode == MODE_CENTRIFUGE) { + aTempMode++; + } + if (aTempMode >= 7) { + aTempMode = 0; + } + mMode = aTempMode; switchMode(); } public void switchModeBackward() { - this.mMode--; - if (this.mMode < 0) - this.mMode = 6; + int aTempMode = mMode; + aTempMode--; + if (aTempMode == MODE_ELECTROLYZER ||aTempMode == MODE_CENTRIFUGE) { + aTempMode--; + } + if (aTempMode < 0) { + aTempMode = 6; + } + mMode = aTempMode; switchMode(); } private void switchMode() { reset(); - if (this.mMode == 1 && !mReactorplanner) { + if (this.mMode == MODE_REACTOR_PLANNER && !mReactorplanner) { switchMode(); return; } - if (this.mMode == 2 && !mSeedscanner) { + if (this.mMode == MODE_SCANNER && !mSeedscanner) { switchMode(); return; } - if (this.mMode == 3) { + if (this.mMode == MODE_CENTRIFUGE) { showCentrifugeRecipe(0); } - if (this.mMode == 4) { + if (this.mMode == MODE_FUSION) { showFusionRecipe(0); } - if (this.mMode == 5) { + if (this.mMode == MODE_INFO) { showDescription(0); } - if (this.mMode == 6) { + if (this.mMode == MODE_ELECTROLYZER) { showElectrolyzerRecipe(0); } this.getWorld().addBlockEvent(this.getXCoord(), this.getYCoord(), this.getZCoord(), GregTech_API.sBlockMachines, 10, this.mMode); @@ -540,6 +581,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { this.mEUOut = tRecipe.mEUt; this.mHeat = tRecipe.mDuration; this.mMaxHeat = aIndex; + this.mFusionOutput = tRecipe.mFluidOutputs[0].getLocalizedName(); } this.getWorld().addBlockEvent(this.getXCoord(), this.getYCoord(), this.getZCoord(), GregTech_API.sBlockMachines, 11, this.mMaxHeat); } @@ -582,6 +624,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { super.saveNBTData(aNBT); aNBT.setInteger("mMode", this.mMode); aNBT.setInteger("mProgress", this.mProgress); + aNBT.setInteger("mMaxProgress", this.mMaxProgress); aNBT.setBoolean("mStarted", this.mStarted); int[] aSplitLong1 = MathUtils.splitLongIntoTwoIntegers(mEU); aNBT.setInteger("mEU1", aSplitLong1[0]); @@ -593,6 +636,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { aNBT.setInteger("mMaxHeat", this.mMaxHeat); aNBT.setFloat("mHEM", this.mHEM); aNBT.setFloat("mExplosionStrength", this.mExplosionStrength); + aNBT.setString("mFusionOutput", this.mFusionOutput); } @Override @@ -600,6 +644,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { super.loadNBTData(aNBT); this.mMode = aNBT.getInteger("mMode"); this.mProgress = aNBT.getInteger("mProgress"); + this.mMaxProgress = aNBT.getInteger("mMaxProgress"); this.mStarted = aNBT.getBoolean("mStarted"); int partA = aNBT.getInteger("mEU1"); int partB = aNBT.getInteger("mEU2"); @@ -611,6 +656,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { this.mMaxHeat = aNBT.getInteger("mMaxHeat"); this.mHEM = aNBT.getFloat("mHEM"); this.mExplosionStrength = aNBT.getFloat("mExplosionStrength"); + this.mFusionOutput = aNBT.getString("mFusionOutput"); } @Override @@ -633,17 +679,32 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { this.mNeedsUpdate = false; } if (this.getBaseMetaTileEntity().isServerSide()) { - if (this.mMode == 2) { - if (this.mInventory[55] == null) { + if (this.mMode == MODE_SCANNER) { + /*if (this.mInventory[55] == null) { this.mInventory[55] = this.mInventory[54]; this.mInventory[54] = null; - } + }*/ if (this.mInventory[57] == null) { this.mInventory[57] = this.mInventory[56]; this.mInventory[56] = null; } - if (mSeedscanner && this.mInventory[55] != null && GT_Utility.areStacksEqual(this.mInventory[55], Ic2Items.cropSeed, true) && this.mInventory[55].getTagCompound() != null) { + // 54 - 55 || 56 - 57 + // Do scanny bits + if (mSeedscanner && this.mMode == MODE_SCANNER) { + /*if (doScan(this.mInventory[55]) == 4) { + if ((this.mInventory[57] != null) && (this.mInventory[57].getUnlocalizedName().equals("gt.metaitem.01.32707"))) { + GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "scanning"); + } + }*/ + /*if (this.mEU > 0) { + if (!this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(this.mEU, false)) { + this.mProgress = 0; + } + }*/ + } + + /*if (mSeedscanner && this.mInventory[55] != null && GT_Utility.areStacksEqual(this.mInventory[55], Ic2Items.cropSeed, true) && this.mInventory[55].getTagCompound() != null) { if (this.mInventory[55].getTagCompound().getByte("scan") < 4) { if (this.mProgress >= 100) { this.mInventory[55].getTagCompound().setByte("scan", (byte) 4); @@ -667,10 +728,10 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { this.mInventory[56] = this.mInventory[55]; this.mInventory[55] = null; } - } + }*/ } - if (this.mMode == 1 && mReactorplanner && this.mSimulator != null && this.mSimulator.simulator != null && this.mSimulator.simulatedReactor != null) { + if (this.mMode == MODE_REACTOR_PLANNER && mReactorplanner && this.mSimulator != null && this.mSimulator.simulator != null && this.mSimulator.simulatedReactor != null) { SimulationData aData = this.mSimulator.simulator.getData(); if (aData != null && aData.totalReactorTicks > 0 && this.mProgress != aData.totalReactorTicks) { Logger.INFO("Updating Variables"); @@ -684,50 +745,6 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { } } - /*if (this.mMode == 1 && mReactorplanner && this.mStarted && this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(32, false)) - for (int i = 0; i < 25 && this.mStarted; i++) { - this.mEUOut = 0; - this.mMaxHeat = 10000; - this.mHEM = 1.0F; - this.mExplosionStrength = 10.0F; - float tMultiplier = 1.0F; - for (int y = 0; y < 6; y++) { - for (int x = 0; x < 9; x++) { - ItemStack tStack = getStackInSlot(x + y * 9); - if (tStack != null) - if (tStack.getItem() instanceof IReactorComponent) { - IReactorComponent tComponent = (IReactorComponent) tStack.getItem(); - tComponent.processChamber(this, tStack, x, y, false); //TODO - float tInfluence = ((IReactorComponent) tStack.getItem()).influenceExplosion(this, tStack); - if (tInfluence > 0.0F && tInfluence < 1.0F) { - tMultiplier *= tInfluence; - } - else { - this.mExplosionStrength += tInfluence; - } - } - else if (tStack.isItemEqual(GT_ModHandler.getIC2Item("nearDepletedUraniumCell", 1)) || tStack.isItemEqual(GT_ModHandler.getIC2Item("reEnrichedUraniumCell", 1))) { - stopNuclearReactor(); - } - else { - setInventorySlotContents(x + y * 9, (ItemStack) null); - } - } - } - this.mEUOut *= getReactorEUOutput(); - if ((this.mEUOut == 0 && this.mEUTimer++ > 20) || this.mHeat >= this.mMaxHeat) - stopNuclearReactor(); - if (this.mEUOut != 0) - this.mEUTimer = 0; - this.mExplosionStrength *= this.mHEM * tMultiplier; - this.mEU += this.mEUOut * 20; - int tEU = this.mEULast1; - this.mEULast1 = this.mEULast2; - this.mEULast2 = this.mEULast3; - this.mEULast3 = this.mEULast4; - this.mEULast4 = this.mEUOut; - this.mEUOut = (this.mEUOut + this.mEULast1 + this.mEULast2 + this.mEULast3 + tEU) / 5; - }*/ if (aTick % 20L == 0L) { this.getWorld().addBlockEvent(this.getXCoord(), this.getYCoord(), this.getZCoord(), GregTech_API.sBlockMachines, 10, this.mMode); this.getWorld().addBlockEvent(this.getXCoord(), this.getYCoord(), this.getZCoord(), GregTech_API.sBlockMachines, 11, this.mMaxHeat); @@ -765,12 +782,12 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { @Override public boolean canInsertItem(int i, ItemStack itemstack, int j) { - return (this.mMode == 2) ? ((i == 54 || i == 55)) : false; + return (this.mMode == MODE_SCANNER) ? ((i == 54 || i == 55)) : false; } @Override public boolean canExtractItem(int i, ItemStack itemstack, int j) { - return (this.mMode == 2) ? ((i == 56 || i == 57)) : false; + return (this.mMode == MODE_SCANNER) ? ((i == 56 || i == 57)) : false; } public World getWorld() { @@ -838,5 +855,198 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { public ITexture[] getSides(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Computer_Cube)}; } + + protected static final int + DID_NOT_FIND_RECIPE = 0, + FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS = 1, + FOUND_AND_SUCCESSFULLY_USED_RECIPE = 2; + + /** + * Calcualtes overclocked ness using long integers + * @param aEUt - recipe EUt + * @param aDuration - recipe Duration + */ + protected void calculateOverclockedNess(int aEUt, int aDuration) { + if(mTier==0){ + //Long time calculation + long xMaxProgresstime = ((long)aDuration)<<1; + if(xMaxProgresstime>Integer.MAX_VALUE-1){ + //make impossible if too long + mEU=Integer.MAX_VALUE-1; + mMaxProgress=Integer.MAX_VALUE-1; + }else{ + mEU=aEUt>>2; + mMaxProgress=(int)xMaxProgresstime; + } + }else{ + //Long EUt calculation + long xEUt=aEUt; + //Isnt too low EUt check? + long tempEUt = Math.max(xEUt, V[1]); + + mMaxProgress = aDuration; + + while (tempEUt <= V[mTier -1] * (long)this.maxAmperesIn()) { + tempEUt<<=2;//this actually controls overclocking + //xEUt *= 4;//this is effect of everclocking + mMaxProgress>>=1;//this is effect of overclocking + xEUt = mMaxProgress==0 ? xEUt>>1 : xEUt<<2;//U know, if the time is less than 1 tick make the machine use 2x less power + } + if(xEUt>Integer.MAX_VALUE-1){ + mEU = Integer.MAX_VALUE-1; + mMaxProgress = Integer.MAX_VALUE-1; + }else{ + mEU = (int)xEUt; + if(mEU==0) + mEU = 1; + if(mMaxProgress==0) + mMaxProgress = 1;//set time to 1 tick + } + } + } + + public int doScan(ItemStack aInput) { + if (this.mMode != MODE_SCANNER) { + return DID_NOT_FIND_RECIPE; + } + ItemStack aStack = aInput; + if (this.mInventory[56] != null) { + return DID_NOT_FIND_RECIPE; + } else if ((GT_Utility.isStackValid(aStack)) && (aStack.stackSize > 0)) { + + + if (ItemList.IC2_Crop_Seeds.isStackEqual(aStack, true, true)) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + if (tNBT.getByte("scan") < 4) { + tNBT.setByte("scan", (byte) 4); + calculateOverclockedNess(8, 160); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + } else { + this.mMaxProgress = 1; + this.mEU = 1; + } + aStack.stackSize -= 1; + this.mInventory[57] = GT_Utility.copyAmount(1L, aStack); + this.mInventory[57].setTagCompound(tNBT); + return 2; + } + + + if (ItemList.Tool_DataOrb.isStackEqual(getSpecialSlot(), false, true)) { + if (ItemList.Tool_DataOrb.isStackEqual(aStack, false, true)) { + aStack.stackSize -= 1; + this.mInventory[57] = GT_Utility.copyAmount(1L, getSpecialSlot()); + calculateOverclockedNess(30, 512); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + return 2; + } + ItemData tData = GT_OreDictUnificator.getAssociation(aStack); + if ((tData != null) && ((tData.mPrefix == OrePrefixes.dust) || (tData.mPrefix == OrePrefixes.cell)) && (tData.mMaterial.mMaterial.mElement != null) && (!tData.mMaterial.mMaterial.mElement.mIsIsotope) && (tData.mMaterial.mMaterial != Materials.Magic) && (tData.mMaterial.mMaterial.getMass() > 0L)) { + getSpecialSlot().stackSize -= 1; + aStack.stackSize -= 1; + + this.mInventory[57] = ItemList.Tool_DataOrb.get(1L); + Behaviour_DataOrb.setDataTitle(this.mInventory[57], "Elemental-Scan"); + Behaviour_DataOrb.setDataName(this.mInventory[57], tData.mMaterial.mMaterial.mElement.name()); + calculateOverclockedNess(30, GT_Utility.safeInt(tData.mMaterial.mMaterial.getMass() * 8192L)); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + return 2; + } + } + + + if (ItemList.Tool_DataStick.isStackEqual(getSpecialSlot(), false, true)) { + if (ItemList.Tool_DataStick.isStackEqual(aStack, false, true)) { + aStack.stackSize -= 1; + this.mInventory[57] = GT_Utility.copyAmount(1L, getSpecialSlot()); + calculateOverclockedNess(30, 128); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + return 2; + } + if (aStack.getItem() == Items.written_book) { + getSpecialSlot().stackSize -= 1; + aStack.stackSize -= 1; + + this.mInventory[57] = GT_Utility.copyAmount(1L, getSpecialSlot()); + this.mInventory[57].setTagCompound(aStack.getTagCompound()); + calculateOverclockedNess(30, 128); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + return 2; + } + if (aStack.getItem() == Items.filled_map) { + getSpecialSlot().stackSize -= 1; + aStack.stackSize -= 1; + + this.mInventory[57] = GT_Utility.copyAmount(1L, getSpecialSlot()); + this.mInventory[57].setTagCompound(GT_Utility.getNBTContainingShort(new NBTTagCompound(), "map_id", (short) aStack.getItemDamage())); + calculateOverclockedNess(30, 128); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + return 2; + } + + } + + if (ItemList.Tool_DataStick.isStackEqual(getSpecialSlot(), false, true) && aStack != null) { + for (GT_Recipe.GT_Recipe_AssemblyLine tRecipe : GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes) { + if (GT_Utility.areStacksEqual(tRecipe.mResearchItem, aStack, true)) { + boolean failScanner = true; + for (GT_Recipe scannerRecipe : sScannerFakeRecipes.mRecipeList) { + if (GT_Utility.areStacksEqual(scannerRecipe.mInputs[0], aStack, true)) { + failScanner = false; + break; + } + } + if (failScanner) { + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + } + + + String s = tRecipe.mOutput.getDisplayName(); + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); + if (s == null) + s = tRecipe.mOutput.getDisplayName(); + } + this.mInventory[57] = GT_Utility.copyAmount(1L, getSpecialSlot()); + + + // Use Assline Utils + if (GT_AssemblyLineUtils.setAssemblyLineRecipeOnDataStick(this.mInventory[57], tRecipe)) { + aStack.stackSize -= 1; + calculateOverclockedNess(30, tRecipe.mResearchTime); + //In case recipe is too OP for that machine + if (mMaxProgress == Integer.MAX_VALUE - 1 && mEU == Integer.MAX_VALUE - 1) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + getSpecialSlot().stackSize -= 1; + return 2; + } + + } + } + } + + } + return 0; + } + + private ItemStack getSpecialSlot() { + return this.mInventory[54]; + } + } diff --git a/src/main/resources/assets/miscutils/textures/gui/computer/0.png b/src/main/resources/assets/miscutils/textures/gui/computer/0.png Binary files differindex 8f8a4a8f75..d96545981e 100644 --- a/src/main/resources/assets/miscutils/textures/gui/computer/0.png +++ b/src/main/resources/assets/miscutils/textures/gui/computer/0.png diff --git a/src/main/resources/assets/miscutils/textures/gui/computer/2.png b/src/main/resources/assets/miscutils/textures/gui/computer/2.png Binary files differindex a128743fef..90a9447503 100644 --- a/src/main/resources/assets/miscutils/textures/gui/computer/2.png +++ b/src/main/resources/assets/miscutils/textures/gui/computer/2.png |