-
-
Notifications
You must be signed in to change notification settings - Fork 27
Multiblock Processing Logic
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:
xy 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.
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.