Skip to content

Multiblock Processing Logic

Alkalus edited this page Jun 26, 2018 · 4 revisions

General Information

GT++ machines can have EU_DISCOUNT ("only uses x% of the eu/t normally required"), MAX_PARALLEL ([your tier] * [# parallel items per tier]), and SPEED_BOOST ("x% faster than using single block blah blah").

First, apply EU_DISCOUNT to the recipe's EU/t value. Call this value x.

Second, calculate xy, respecting these two conditions:
x
y must be less than the input voltage of your machine
y is, at max, MAX_PARALLEL. Let's call x*y, TOTAL_EU_PER_TICK

Third, apply SPEED_BOOST to your recipe's time. In this code, if something says "x% faster", we mean multiply the time by 100/(x+100). Let's call the new recipe time NEW_RECIPE_TIME.

Assuming a new recipe EU/t value of TOTAL_EU_PER_TICK, try to GT overclock as many times as you can, starting from a base recipe time of NEW_RECIPE_TIME. The resulting EU/t and time taken are what is reported by the scanner. There's also code saying that the recipe cannot be reduced below 1 second.

Applying this all to your case:

Large Thermal Centrifuge:   
80% eu discount, 8 items per tier, and 150% faster. 
You are doing a recipe that is 48eu/t and 25 seconds long.

So we have MAX_PARALLEL = 64, EU_DISCOUNT = 0.8, SPEED_BOOST = 0.4
x = 38.4 eu/t
y = MAX_PARALLEL in our case, so x * y = 2457.6 eu/t
NEW_RECIPE_TIME = 25 * 0.4 = 10 seconds, TOTAL_EU_PER_TICK = 2457.6 eu/t
Now, we GT overclock from these base numbers as many times as possible:
9830.4 eu/t, 5 seconds, LuV tier
39321.6 eu/t, 2.5 seconds, ZPM tier
157286.4 eu/t, 1.25 seconds, UV tier

1.25s = 25 ticks like you were seeing in your test. If you had gone one tier up more, you would've noticed that the recipe time wouldn't go below 1 second, but anyways that doesn't apply here.

Math SpreadSheet

https://docs.google.com/spreadsheets/d/1eBN5aJf53Quo_nvxFc9DMtu8WIRgd3cm5vMZJxLY38Q/edit?usp=drivesdk

I think all the GT++ ones are right. You can change times and eu/t values for them just fine though. Also, if they ever get faster than an opperation/s, that's because I haven't added a check for that yet. But for HV stuff, it should work fine. - 0lafe

Credits to @0lafe for the spreadsheet.
Credits to @Prewf for writing this information https://github.com/draknyte1/GTplusplus/issues/305#issuecomment-396319958.

Clone this wiki locally