Gregtech++ [GT++] [GTplusplus]

Gregtech++ [GT++] [GTplusplus]

94.1k Downloads

Thermal refinery working speed(at high tiers)

Cinobi opened this issue ยท 1 comments

commented

Expected Behavior

Look like thermal refinery process items in way less speed it should at high-tiers.
image
As data says, it takes 25tick to process operation at UV, but according to base thermal centrifuging time
2018-06-11_14 41 19
it should be much more speedy.
LV: 25s
MV: 12.5s
HV: 6.25s
EV: 3.125s
IV: 1,5625s
LuV: 0,78125s
ZPM: 0,390625s
UV: 0,1953125s
according to this, UV processing speed should be less that 2 tick, almost 13x more faster than right now.

Possible Solution

Recheck the math please =)

Game Environment

GTNH latest, GT++ 1.7.1b

Misc Info

Check all that apply ([ ] -> [x] - use a lowercase x)

  •    Using GT:NH/GT:New Horizons?
  •    Single Player?
  •    Multi Player?
commented

This isn't really a bug.. you just need to know what the math is doing behind the scenes.

This was the algorithm used by GT++ last I checked, please anyone feel free correct me (I don't know the codebase that well, I only looked at one function):

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 x*y, respecting these two conditions:

  1. x*y must be less than the input voltage of your machine
  2. 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:
Thermal centrifuge multi has:
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.