GTNewHorizons / GT-New-Horizons-Modpack

New Modpack with Gregtech, Thaumcraft and Witchery
https://www.gtnewhorizons.com/
Other
966 stars 298 forks source link

Fusion Reactor undesirable behavior/void protection #14315

Closed wagon153 closed 6 months ago

wagon153 commented 1 year ago

Your GTNH Discord Username

hildibrandm

Your Pack Version

2.3.7

Your Server

Private server

Java Version

Java 17

Type of Server

Single Player

Your Expectation

When a fusion reactor has room in an output hatch to do another recipe, to also check for energy buffer before beginning the recipe.

The Reality

When a fusion reactor is stopped due to having a full output hatch, it will turn back on once it detects there is room in the output hatch for another recipe. Which is fine. However, it does not check if there is enough energy in its buffer before running the recipe, resulting in it power failing and not turning on again until manually hit with a mallet. While this can be worked around using redstone, it's still very irritating(and redstone is not optimal for server performance anyway).

Your Proposal

Add a check for energy requirement before starting craft. This would get two birds with one stone. That being the original issue with the buffer and its behavior where it will turn on even if there is only room for one recipe, killing efficiency, since fusion reactor buffers take time to fill, and some recipes take a significant amount of EU for initial startup.

Final Checklist

combusterf commented 1 year ago

This is very annoying indeed, since I now have to set up special logic for 20 separate fusion loops so that my base power supply doesn't die repeatedly

chochem commented 1 year ago

shouldnt you deal with that as the player? it seems consistent with how other machines behave.

combusterf commented 1 year ago

Well no, between 2.3.0 and 2.4.0 this default has been changed for a lot of machines. Previously only GT++ machines had the logic smarts not to void outputs, but anything in vanilla GT - EBFs, PAs, LCRs, implosion compressors and of course fusion reactors did not.

For a lot of PAs that expect the waste fluids to get voided I had to manually find and update them and I expect more places in my base to have been broken.

For fusion, there are several problems that severely exacerbate this change:

Bottom line, for fusion reactors, the old voiding behaviour is the only sane default. For materials production blocking behaviour with the suggested startup power checks might be somewhat useful in a pinch, but even then triggering that behaviour is doing your energy economy a disservice.

chochem commented 1 year ago

the void protection that was added to those machines is not about power failure but about stopping when outputs are full.

Ah but you are saying it was changed for fusion?

combusterf commented 1 year ago

Fusion did void previously when full. Now it does not - it will stop and effectively commits suicide doing so.

chochem commented 1 year ago

I see, thank you. So it got void protection but it looks like there is no toggle. All the other machines got a toggle.

boubou19 commented 1 year ago

i guess what happens here is that if you keep hitting the full capacity of the fusion reactor in a short period, it kills the internal buffer of the fusion, which then needs to recharge, deleting a good amount of power.

(i hope it at least wait for enough energy before restarting, otherwise you have a fusion flickering)

But imo it's a false problem: if you want the fusion to trash the excess of output, you might as well extract everything from your fusion and store it in tanks with voiding mode.

Given we are unifying behaviors of every multi to have common code so we can extract it, making the code way more cleaner and easier to deal with, not much we can do, unless there is an actual bug. But the fact it stops when full is intended.

combusterf commented 1 year ago

It doesn't wait for enough startup energy either. Void protection actually causes more voiding than without.

boubou19 commented 1 year ago

i see then 2 issues: