Skip to content
This repository has been archived by the owner on May 25, 2024. It is now read-only.

Prevent Instant UCFE Explosions #256

Merged
merged 6 commits into from
May 19, 2024
Merged

Conversation

Steelux8
Copy link

The Universal Chemical Fuel Engine is an LuV powergen multiblock that takes in fuel and Combustion Promoter, and consumes all that it finds in the input hatches every second. If it consumes more fuel and has nowhere to send the EU, because the dynamo's buffer, it explodes. This mechanic causes at least two problems:

  • If the multi is turned on with some amount of fuel inside, from setting up the regulators and then powering on the UCFE after some time, it will instantly explode;
  • On world load, if the EU is not drawn out fast enough, the UCFE will run until the buffer is full and just explode.

I added an explosion safety counter, which counts to 200 ticks (10 seconds). Every time the machine is turned off, or the world is reloaded, the counter goes back to 0. During these 10 seconds, the machine cannot explode, but any "excess" fuel provided to it will be voided while the protection is up.

I also added some extra information to the tooltip, related to its structure, and the fact it does not check for a valid structure automatically: it has to be powered on to re-check the structure. I didn't want to attempt a fix for this in this PR, since the explosion bug is a problem that should be fixed in 2.6.1.

Steelux8 added 3 commits May 15, 2024 00:47
- Added a 10 second counter that fails the normal energy output in the UCFE, but also prevents it from exploding. This fixes the issue of starting it with some fuel in the inputs, and also on world load if EU is not extracted fast enough.
- Added relevant information to tooltip;
- Force shutdown of the multi after explosion, since it keeps running due to some weird structure check.
- Shortened the longest description lines since they were too long;
- Added a note about needing to force structure check by powering on the multi;
- Spotless.
@Steelux8 Steelux8 requested a review from a team May 15, 2024 00:17
@NotAPenguin0
Copy link

Honestly, all other multiblock generators no longer explode when their dynamos are full for a while now. Maybe this is just an oversight and a better fix would be to disable the explosions entirely?

@Steelux8
Copy link
Author

Dream already asked for explosion protection for the first few ticks, in the other PR related to this issue. I made it 10 seconds, for safety.

@OrderedSet86
Copy link

OrderedSet86 commented May 15, 2024

@NotAPenguin0 I definitely agree with full explosion removal to have parity with other powergen. Besides, nobody I know of uses UCFE, so there is no point having it be worse for balance reasons.

I have done some recent analysis of it for our skyblock run and think it is viable, but not nearly as good as meta powergens. I think the main issue preventing usage is that it is tiered at LuV (when people might just rush to ZPM for fusion instead) and is down the relatively unrewarding combustion tree (since LCE is bad and ECE requires significant investment, often HOG). So I don't expect removing explosions to cause any balancing issues.

@Alastors
Copy link

Yeah, honestly multi explosions as a whole are kind of dumb, I mean think about it, all people ever do is rollback anyway, so it's just more of a passive reason to make sure you have active protection, ngl

@Reflex18
Copy link

Full explosion should be added back to the turbines and XL turbines within the pack to ensure full parity with other power generation methods. It is beneficial to the players to know what their power generation method will do and how to setup to avoid failure states. Having power generation methods that explode and ones that don't without tooltips stating this fact is not ideal.

@chochem
Copy link
Member

chochem commented May 15, 2024

Honestly, all other multiblock generators no longer explode when their dynamos are full for a while now. Maybe this is just an oversight and a better fix would be to disable the explosions entirely?

there is no oversight no. the LGT explosion was just removed so that turbine materials can change, no other reason.

- Removed doExplosion from the EU generation part of the cody, now the machine only stops when the dynamo is full;
- Renamed variables and changed comments and tooltip to match the way the code works now.
@Caedis
Copy link
Member

Caedis commented May 19, 2024

@Steelux8
Copy link
Author

I talked with Dream about the explosion, and he discussed with GlodBlock, the person who added the UCFE. The explosion was added to be consistent with GT turbines exploding, so Dream and I agreed that this UCFE explosion should be removed because the GT turbine one was removed in the past, to maintain consistency as it is right now.

@Dream-Master
Copy link
Member

image

@Caedis
Copy link
Member

Caedis commented May 19, 2024

:shipit:

Copy link

Warning: 2 uncommitted changes
#257

Co-authored-by: GitHub GTNH Actions <>
@Steelux8 Steelux8 merged commit 6286ee0 into master May 19, 2024
1 check passed
@Steelux8 Steelux8 deleted the UCFE_Instant_Explosion_Fix branch May 19, 2024 11:02
@Dream-Master
Copy link
Member

Dream-Master commented May 19, 2024

merge master failed 😢

Dream-Master pushed a commit that referenced this pull request May 20, 2024
* Add safety explosion counter to protect multi

- Added a 10 second counter that fails the normal energy output in the UCFE, but also prevents it from exploding. This fixes the issue of starting it with some fuel in the inputs, and also on world load if EU is not extracted fast enough.

* Clarify tooltip and shutdown on explosion

- Added relevant information to tooltip;
- Force shutdown of the multi after explosion, since it keeps running due to some weird structure check.

* Shorten description lines and add structure info

- Shortened the longest description lines since they were too long;
- Added a note about needing to force structure check by powering on the multi;
- Spotless.

* Remove explosion possibility

- Removed doExplosion from the EU generation part of the cody, now the machine only stops when the dynamo is full;
- Renamed variables and changed comments and tooltip to match the way the code works now.

* Change ticks to seconds in final variable

* spotlessApply (#257)

Co-authored-by: GitHub GTNH Actions <>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 6286ee0)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants