IC2 Experimental Reactor Planner

  • I guess my issue is not understanding why he used 2 for single as a base rather then 4 when they say one uranium cell produces 4 on its own.


    I know this reply is a few months late, but look at the formula for [Triangular Numbers](https://en.wikipedia.org/wiki/Triangular_Numbers). The formula is:


    0.5 * (n * (n+1)


    So, if 4 is the base, then the amount for single uranium is likewise:


    4 * (0.5 * (n * (n+1)))


    Since 4 * 0.5 is 2, that's why you see 2 in the code.


    -----


    Speaking of code, I noticed that placing a single Heat Vent increases causes the tool to say "10 iron" for the costs, but from what I can tell, it only costs 8.5 iron, and always has only cost 8.5 iron. You can see a recipe for it [here](http://crafting-guide.com/brow…strial_craft_2/heat_vent/), or by using JEI in the game. I looked in the code to see how it is calculated, and I just see that it is hardcoded to 10:

    Code
    public static final MaterialsList MATERIALS = new MaterialsList(
            10, java.util.ResourceBundle.getBundle("Ic2ExpReactorPlanner/Bundle").getString("IRON"), 
            1, java.util.ResourceBundle.getBundle("Ic2ExpReactorPlanner/Bundle").getString("TIN"), 
            16.0 / 3, "Copper");

    As far as I count, you need 1.5 iron for the iron bars, 4 iron for the plates, and 3 iron for the electric motor, making a total of 8.5.


    Since all the other types of heat vents use the basic heat vent in their material calculations, and since every commonly used reactor contains heat vents of some type, the iron calculations in the official list of reactor designs are wrong on every single reactor listed. Am I just misunderstanding something about the crafting here?


    I also noticed that the heat exchanger code for transfer() looks extremely buggy. Your notes say that you adapted the code from IC2 code, so then I went and checked it, and wow, it matches. I find that to be a bit, um, unsettling. Is there a way that we can file bugs against the IC2 code?


    Likewise, your code for adjustCurrentHeat() returns a negative value in cases where the component overflows and in cases where it underflows. I checked IC2 decompiled code and saw the same thing. Since you are trying to mimic what we see in the game, you did the right thing, but wow, that is really interesting. I'm wondering if it is possible to abuse these bugs and make a reactor that performs far better than it should.

    • Official Post

    I also noticed that the heat exchanger code for transfer() looks extremely buggy. Your notes say that you adapted the code from IC2 code, so then I went and checked it, and wow, it matches. I find that to be a bit, um, unsettling. Is there a way that we can file bugs against the IC2 code?

    Likewise, your code for adjustCurrentHeat() returns a negative value in cases where the component overflows and in cases where it underflows. I checked IC2 decompiled code and saw the same thing. Since you are trying to mimic what we see in the game, you did the right thing, but wow, that is really interesting. I'm wondering if it is possible to abuse these bugs and make a reactor that performs far better than it should.

    Bug reports can go on Mantis if there's something awry, if you don't especially want to create an account there you can just post in here) . I doubt there is any normal scenario where overflowing could happen, at least to any kind of advantage, but a lot of the reactor logic is quite old so imperfections are possible.

    145 Mods isn't too many. 9 types of copper and 8 types of tin aren't too many. 3 types of coffee though?

    I know that you believe that you understood what you think I said, but I am not sure you realise that what you read was not what I meant.


    ---- Minecraft Crash Report ----
    // I just don't know what went wrong :(


    I see this too much.

  • Speaking of code, I noticed that placing a single Heat Vent increases causes the tool to say "10 iron" for the costs, but from what I can tell, it only costs 8.5 iron, and always has only cost 8.5 iron.

    ...

    As far as I count, you need 1.5 iron for the iron bars, 4 iron for the plates, and 3 iron for the electric motor, making a total of 8.5.

    I agree that 10 iron is incorrect, and I'm not sure quite where that came from - in August 2015 I changed the planner to show raw materials instead of components (as requested earlier in this thread), and if I had goofed and thought iron bars were 1:1 with iron ingots, that would have led to a recipe of 11 iron instead of 10. However, your total of "8.5 iron" is ignoring the fact that iron bars have to be crafted in batches of 16 (from 6 iron). If I changed the planner to calculate the iron cost of a heat vent as 8.5, designs with heat vent counts of 1, 5, 9, 13, etc. would undercount the effective iron requirements by 4.5. I haven't figured out how to deal with this yet.

  • In my opinion, if you want to only give one number for the heat vent, it should be 8.5, not 9. If you round up for every heat vent, then the total is going to be off by a lot.


    People who are competing to come up with the most effective design are probably looking at this as "I want to make 5-7 reactors, and get the most EU for the resources I spend". To most of us, we don't mind making a few extra iron bars for the first reactor, because we know that they'll eventually get use somewhere else. We just don't want to spend more on that first reactor than need.


    Also, we may have some iron bars already in our inventory before our first reactor! I don't think that there's any way to accommodate that.


    If you do want to do something far more complicated, you could output something at the end that says "Iron cost: 112-115 ingots". That would indicate to people that if they have 115 ingots, they can build this entire reactor without any more mining. If they are making multiple reactors, the average cost will be 112. Also note that although this concept is pretty easy, it could be somewhat difficult to implement. I'm not saying it's a necessary feature, haha!


  • I looked at the other components that use iron bars in their recipes, and they had the iron counts double what they should be for those iron bars. The only explanation I can think of is that maybe I was looking at the GregTech 5 crafting recipe for iron bars (6 iron rods to 8 iron bars, and if I make the rods by using a file instead of in the lathe or extruder, they take a full ingot each, but that's wasting iron, and by the time a GT5 player is ready to build a nuclear reactor, more material-efficient ways to make iron rods (and iron bars) should be available.


    Also, we may have some iron bars already in our inventory before our first reactor! I don't think that there's any way to accommodate that.

    Considering that iron bars are required for the scuba helmet that is part of the complete hazmat suit, I'd be surprised if you didn't, come to think of it.


    Anyway, material counts should be fixed in v2.2.1.

  • Tried to create a bat file to launch this with the commands:


    Code
    java Ic2ExpReactorPlanner.jar
    pause


    But it displays


    Code
    Picked up _JAVA_OPTIONS: -Xmx4G
    Error: Could not find or load main class Ic2ExpReactorPlanner.jar


    I also tried double clicking it with auto launches Java, but it just closes as soon as I open it, any help?

    • Official Post

    If you're trying to run a jar rather than launch from a class you need to specify explicitly: java -jar Ic2ExpReactorPlanner.jar

    145 Mods isn't too many. 9 types of copper and 8 types of tin aren't too many. 3 types of coffee though?

    I know that you believe that you understood what you think I said, but I am not sure you realise that what you read was not what I meant.


    ---- Minecraft Crash Report ----
    // I just don't know what went wrong :(


    I see this too much.

    • Official Post

    I've got a suggestion/bug for the IC2 reactor planner.


    I suggest putting in a total EU from a 50% Stirling cycle and a 75% steam cycle. I'm also not sure if the heat and the EU are both calculated correctly, this might be a bug.


    So I've got 2 reactor designs:

    Fluid, 1352Hu/s at 6000+ heat, calcs to about 10,000,000 EU generated
    2300120C0A120D0C0A06230C0D0C0D0C0D14230C0D0C0D0C0D0C0D0C0D0C0D0C0D0C0D0C140C0D0C0D0C0D0C140D140C0A120D0C140Drh1770rid01


    EU, 560 EU/tick starting at 7500 Heat, shows 112,000,000 EU generated.

    002300000C000C11002306230C0D0C0D0C1100230C0D0C0D0C0D0C000C0D0C0D0C0D0C000C0D0C0D0C0D0C0D0C110C000C000C000C11

    I would expect 1352 Hu to give more net EU at a 75% steam cycle than a 560 EU reactor, but 1352 Hu/SEC doesn't compute to as much as 560/TICK.


    I think both designs should be able to be compared. If both has expected totals, I think this would work well. I also think both should be shown with "Per Tick" or "Per sec", not each being different.

  • From my testing results the fluid output should be HU/t, not HU/s. I would go with "Per sec", since a tick can refer to a reactor tick (1 sec), a redstone tick (0.1 sec), or a game tick (0.05 sec).


    Also, there is a Github page for the planner. Reporting bugs there is also an option.

    IC2 reactors has 196,627,050,475,552,913,618,075,908,526,912,116,283,103,450,944,214,766,927,315,415,537,966,391,196,809 (2754) combinations. HAYO!

    :Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log:

    My avatar is from a video of Operation Upshot-Knothole.


    Edited once, last by KrisBigK ().

  • I suggest putting in a total EU from a 50% Stirling cycle and a 75% steam cycle. I'm also not sure if the heat and the EU are both calculated correctly, this might be a bug.

    If you look back in the thread, something like that has been suggested before, but it's out of scope for the planner, because it depends too much on setup external to the reactor itself. With just IC2, the HU output of a fluid reactor (in the form of hot coolant sent to one or more liquid heat exchangers) can be passed to stirling generators, steam generators (either just regular steam or superheated and regular steam), or even used for making biogas and feeding that into some semifluid generators (though this might be less effective than the other options). With GT5u (or possibly GTCE), the hot coolant can be transferred to a Large Heat Exchanger, and other mods may have their own ways to use the hot coolant.


    From my testing results the fluid output should be HU/t, not HU/s. I would go with "Per sec", since a tick can refer to a reactor tick (1 sec), a redstone tick (0.1 sec), or a game tick (0.05 sec).

    I tentatively agree with the first part of this - in 1.7.10 a simple design with 1 uranium rod and 1 heat vent shows 8 HU/s output (in the reactor gui), but in 1.12.2 is shows 160 HU/s. I was hoping for confirmation from Chocohead, but he has yet to respond in the GitHub issue. Confirmation from someone else who has knowledge of IC2's inner workings for multiple MC versions would be nice - in-game testing doesn't entirely rule out the possibility that the output was buffed while things like HU to EU conversions were nerfed to match.


    As far as "per tick" or "per sec", I'll admit there are multiple types of ticks involved, but I've never seen "per tick" mean anything but "per game tick", plus that will be more consistent with how EU output is normally shown (as well as energy outputs from other mods, e.g. RF/t, IF/t, MJ/t, µI/t)

  • I tentatively agree with the first part of this - in 1.7.10 a simple design with 1 uranium rod and 1 heat vent shows 8 HU/s output (in the reactor gui), but in 1.12.2 is shows 160 HU/s. I was hoping for confirmation from Chocohead, but he has yet to respond in the GitHub issue. Confirmation from someone else who has knowledge of IC2's inner workings for multiple MC versions would be nice - in-game testing doesn't entirely rule out the possibility that the output was buffed while things like HU to EU conversions were nerfed to match.

    I tested again in 1.7.10, and in that version 1000 mB of hot coolant generates 10000 EU with stirling generators, which is the same in 1.12.2. It might be due to a display bug that didn't got backported. In 1.12.2, the same design outputs 8 mB hot coolant/sec, so display in 1.7.10 should be wrong. It seems that Chocohead only goes on the forum every day - He has not replied to anything in IC2 bug tracker for about a week.

    IC2 reactors has 196,627,050,475,552,913,618,075,908,526,912,116,283,103,450,944,214,766,927,315,415,537,966,391,196,809 (2754) combinations. HAYO!

    :Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log:

    My avatar is from a video of Operation Upshot-Knothole.


    • Official Post

    I tentatively agree with the first part of this - in 1.7.10 a simple design with 1 uranium rod and 1 heat vent shows 8 HU/s output (in the reactor gui), but in 1.12.2 is shows 160 HU/s. I was hoping for confirmation from Chocohead, but he has yet to respond in the GitHub issue. Confirmation from someone else who has knowledge of IC2's inner workings for multiple MC versions would be nice - in-game testing doesn't entirely rule out the possibility that the output was buffed while things like HU to EU conversions were nerfed to match.

    The fluid reactor output units have been an issue for a long time now. There is disagreement within the code too about whether the value is meant to be in HU/s or HU/t, fairly certain in one 1.12.2 build it was switched from ticks to seconds to account for the fact the output value was 20x too high despite the EU value being correct for being per tick. I'm not aware of any balance changes modifying fluid reactors that much, only the slight rationalisation of the steam boiler which could theoretically have changed the heat consumption rate of designs slightly to be more predicable. I'd presume if 1.7.10 was showing conveniently 20x less than 1.12.2, the 1.7.10 value is in ticks and 1.12.2 in seconds (which I think it is in game, would have to check though).

    It seems that Chocohead only goes on the forum every day - He has not replied to anything in IC2 bug tracker for about a week.

    I still check the bug tracker daily but often won't flag things unless I've actually looked into them in case someone else beats me to it. There's a collection of things that need fixing that FTB Ultimate Reloaded found too which will probably all get fixed together. Although some of the bugs on the tracker are easier to deal with than others.

    145 Mods isn't too many. 9 types of copper and 8 types of tin aren't too many. 3 types of coffee though?

    I know that you believe that you understood what you think I said, but I am not sure you realise that what you read was not what I meant.


    ---- Minecraft Crash Report ----
    // I just don't know what went wrong :(


    I see this too much.

  • I have released v2.3 of the reactor planner, with the following changes:

    • Updated default pulse configuration to be the same as no redstone
      control (to avoid unintentional simulation of control types not actually set up in-game).
    • Added default text to "Component" tab.
    • Removed cooldown display for reactor designs/configs that will explode.
    • Added calculation of explosion power (for reactor designs/configs that will explode).
    • Standardized key names in Bundle.properties (for i18n).
    • Added display of heat/eu outputs before first component broken (if any).
    • Added display of time to first dip below 50% heat (after being above it).
    • Made reactor temperature checks more consistent with mod - instead of checking after processing each component, it only checks at the end of the reactor tick.
    • Added min/max EU and Heat outputs for fuel rods (click the "i" button near the fuel rod to see this).
    • Added max reached heat for heat-accepting components (click the "i" button near the component to see this).
    • Slight clarification of what total cell/condensator/vent cooling means.
    • Gave the tab ordering below the reactor grid a bit more logic.
    • Added outputs and min/max heat before first fuel rod depleted.
    • Improved automation handling, allowed pre-specification of automation details when placing components.
    • Added automation details and pulse config to reactor code.
    • Added cancel button.
    • Changed output for fluid reactor to show as HU/t instead of HU/s
    • Added support for CSV Output.


    Note that as far as i18n support, the framework is there, but no translations (aside from the default, which is US English) have been provided yet. If anyone wants to provide such a translation, a GitHub pull request is a good way to do that (provided you're familiar with Java's i18n handling, so you can name the new file appropriately, etc.). Alternatively (if you can't or won't use GitHub for whatever reason), you may attach the translated Bundle.properties to a post in this thread. Please refrain from relying on machine translations, though.

  • Is reactor output added to the CSV output? It seems that I can't find it.

    IC2 reactors has 196,627,050,475,552,913,618,075,908,526,912,116,283,103,450,944,214,766,927,315,415,537,966,391,196,809 (2754) combinations. HAYO!

    :Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log:

    My avatar is from a video of Operation Upshot-Knothole.


  • Is reactor output added to the CSV output? It seems that I can't find it.

    Sorry, I guess that one slipped my mind. I plan to take a few days break from working on the planner, but then this can be the first change to go into the next release. I am starting to see why some developers insist on one bug/feature per issue - having a bunch crammed into one issue makes it too easy to accidentally skip details like this.

  • I plan to take a few days break from working on the planner, but then this can be the first change to go into the next release. I am starting to see why some developers insist on one bug/feature per issue - having a bunch crammed into one issue makes it too easy to accidentally skip details like this.

    Enjoy your break! You did a lot of enhancements recently.


    Also, for the 1 bug/feature 1 issue thing, do you really want 20-30 issues being opened in a single day? Although it is easier to track every single one of them, it is more like spamming with good contents and I also need to open that many tabs to reply to every single one of them. I can do that separately if you want it.

    IC2 reactors has 196,627,050,475,552,913,618,075,908,526,912,116,283,103,450,944,214,766,927,315,415,537,966,391,196,809 (2754) combinations. HAYO!

    :Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log:

    My avatar is from a video of Operation Upshot-Knothole.


  • Also, for the 1 bug/feature 1 issue thing, do you really want 20-30 issues being opened in a single day?

    If you really still have that many ideas, go for it. However, I hope you won't be too upset if I mark some of them as "wontfix" (though I'll try to provide justification for that)

  • Feature request: display the cooling system's total heat removal per second capacity and the fuel rod's total heat per second generation as separate values.

    After some discussion in https://github.com/MauveCloud/Ic2ExpReactorPlanner/issues/36 I have realized I don't fully understand what these meant in Talonius's old planner (or maybe I did, and I've forgotten). Do others here (especially those that have looked at the source code) think my planner calculates these values appropriately? If so, how can I clarify what they mean? If not, how should they be calculated instead and why?

  • Feature request: display the cooling system's total heat removal per second capacity and the fuel rod's total heat per second generation as separate values.

    After some discussion in https://github.com/MauveCloud/Ic2ExpReactorPlanner/issues/36 I have realized I don't fully understand what these meant in Talonius's old planner (or maybe I did, and I've forgotten). Do others here (especially those that have looked at the source code) think my planner calculates these values appropriately? If so, how can I clarify what they mean? If not, how should they be calculated instead and why?

    I think the key word in Omicron's post is "capacity". Here, it should mean the ability of venting heat.



    Some of my ideas here:


    000000000000000000000000000000000000000000000000000000000000000000000000000000000C000000000000000C0B0C000000|esn

    This design can only vent 5 heat/s, since the reactor heat vent can and only pulls 5 every second and it can vent 5 heat that it pulled. Also, if the reactor heat vent is damaged, which is impossible without automation or changing components, then it can vent 17 heat/s until it got repaired as it is shown in the planner.


    00000C0000000C0000000C0A0C000C0A0C000C0A140D0C0D140A0C000C0A140A140A0C0000000C0A0C0A0C00000000000C000C000000|esn

    A more extreme example: Do you think that this can vent 260 as it is shown in the planner without changing components? For this one, the capacity of total heat removal per second is limited by its ability to pull heat - it only has 2 OC vents that can pull heat.


    000000000000000000000000000C000000000000000C0D0C00000000000C0D140D0C00000000000C0D0C000000000000000C00000000|esn

    In this example, the total heat removal per second capacity is limited by its ability of venting heat (not considering OC vent breaking), which (I believe) is correctly calculated at this moment.

    IC2 reactors has 196,627,050,475,552,913,618,075,908,526,912,116,283,103,450,944,214,766,927,315,415,537,966,391,196,809 (2754) combinations. HAYO!

    :Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log::Rubber Log:

    My avatar is from a video of Operation Upshot-Knothole.