Coal generator slider is inconsistent and confusing to use


Nightinggale
  • Branch: Live Branch Version: Windows Pending

The coal generator (GeneratorConfig class) has a slider, but it's not documented ingame and is confusing people. People assume it's for turning the generator on and off, but in reality it is for turning coal deliveries on and off. The forum (again) had a thread about "why won't dupes deliver coal to my empty coal generator". It's not intuitive that it's because the battery is nearly full. Particularly not if there are multiple batteries and they aren't on the screen at the same time as the generator.

The actual calculations affecting this are in EnergyGenerator.EnergySim200ms.

Another issue is that once the batteries are full, it will continue to burn coal until the coal has been consumed. It might have been a good idea when it was new and the idea was that all the coal was added to the firebox, but now we can turn it off with an automation signal, meaning we know it's not all in the firebox. This makes the coal generator seem very wasteful, particularly because after having been filled with coal, it will run for 600 seconds.

I propose the following fixes:

  • Add proper text to tell that it's an on/off for coal deliveries
  • Add a slider for how much coal to store

This will make it easier to understand, less wasteful and actually useful while at the same time it's handicapped enough to ensure that it's not a replacement for controlling with automation wires.

One important thing to remember about the coal generator is that it's likely the first fueled generator new players will encounter. That just makes it worse that it's the most confusing generator to use.

 

UPDATE: mod implementing the proposed solution:

 

EDIT: another issue came up. The coal generator is apparently stuck if there is no battery (I didn't test, just relaying the following post). That's something else the new player can get confused about.

 


Steps to Reproduce
Build a coal generator. Try to control it with the slider.

Status: Pending

This issue has not been confirmed by a developer yet.


  • Like 1
  Report Bug


User Feedback


....

One possible solution make the coal generator easy to use would be to use IActivationRangeTarget. This can be used to set two sliders, one to set when to make refill tasks and the other to refill up to this limit. That way it can be "refill if below 60 kg and then fill up to 120 kg" or whatever the player wants for the current setup.

The rules for refilling should then be: storage below threshold and (either automation port connected or battery below threshold).

This way it is possible to control fairly accurately in early game and once you control with automation, the player can set the generator to fill up with a whole lot more coal. This makes the coal generator a whole lot more useful later when power production is controlled by smart batteries.

 

Also without automation attached and no battery, the generator should run at all time.

Edited by Nightinggale

Share this comment


Link to comment
Share on other sites
....

So this?

It's been suggested tons of times. Maybe this time it will stick. Or maybe a mod that does it will be better.

Share this comment


Link to comment
Share on other sites
....
1 minute ago, mathmanican said:

So this?

Why is it that people from the past keeps stealing my ideas? :o

  • Haha 2

Share this comment


Link to comment
Share on other sites
....

Haha.

1 minute ago, Nightinggale said:

Why is it that people from the past keeps stealing my ideas?

You should have signed up two years ago.:p

Share this comment


Link to comment
Share on other sites
....

Never know when they will see something and fix - so thanks for putting in a report!

 

Share this comment


Link to comment
Share on other sites
....

I created a mod to solve this issue (steam / source). Feel free to include (modified or otherwise) as much as you like in ONI.

The changes from vanilla ONI:

CoalEnergyGenerator: Modified EnergyGenerator, which has the battery check and delivery control code removed.

CoalManualDeliveryKG: ManualDeliveryKG, which has added the bool ignoresOperationStatus. It's only used in  OperationalRequirementsMet. If set, the deliveries will not be interrupted when an automation signal turns the building off. There is also a new method UpdateCapacity (at the bottom), which allows modifying the thresholds during the game.

CoalDeliveryController: Adds the battery slider. Can pause CoalManualDeliveryKG depending on battery status. Will always unpause if the building is connected to an automation wire. In case of automation wire, the batteries aren't even checked (performance optimization). It views the batteries as one giant battery instead of triggering on the lowest battery. It makes the slider more intuitive to the player, hence easier to control the building.

DualSlider: adds two sliders. One is for capacity for delivery (target coal level), the other is for how low the coal storage should be before delivering. Changing those will call CoalManualDeliveryKG. UpdateCapacity to update the values, meaning the DualSlider component isn't called itself unless the sliders are moved or building settings copied.

 

The result is a coal generator, which is both a lot less confusing for the player and easier to set up to match the current battery setup. The coal generator will now also always run when no battery is connected, which makes it consistent with other generators.

Edited by Nightinggale

Share this comment


Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now