Page 1 of 1

Lab/Biolad should have circuit control

Posted: Tue Nov 19, 2024 6:20 pm
by mrvn
TL;DR
The Lab/Biolad entities should allow attaching circuit wires to read contents, recipe and progress.

What?
Attaching a circuit wire to a Lab or Biolab should be allowed. This should allow 5 things to be chosen:

1) read contents

This should be obvious.The number of items currently in the lab just like in any entity with contents.

2) read recipe

This would output the number of science packs required for each cycle of the current research.

3) research completed as <X>

This would output the number of cycles finished for the current research.

4) research required as <Y>

This would output the number of cycles required for the current research, e.g. 10 for automation.

5) total required science packs

This one is a bit tricky. It should output the number of science packs required to finish the current research (rounded up) adjusted for the labs productivity and drain bonus as well as the science packs quality and freshness, if packs of that type are present in the lab. If no packs are present then assume normal quality and 100% freshness.

Even better this option could have an input field for the quality and freshness to use for each pack for the computation with an option to use current quality/freshness. Although that would be a long list with 12 science packs in vanilla. Maybe just have fields for freshness?
Why?
Calculating how many science packs research needs used to be simple: Take the total amount needed and adjust for productivity. The way modules now work depending on how many beacons are around adds a level of complexity. The drain bonus adds a second level of complexity. Quality adds a third level of complexity. All that can be calculated ahead of time so far and while being now way more complex than before it's still managable.

But then comes the kicker, the freshness. That makes it basically impossible to calculate how many science packs are required to finish a research. And there is no way to calculate it with circuit logic as freshness can't be read, preventing this to be a feature request for the selector combinator.

Having the lab output the required amounts would be both informative as well as could be used with circuit logic to produce or request the required science packs as needed without buffering unneeded science packs. Especially science packs that spoil. I know that it would just be an estimate given how freshness works but it would be easy to request extra.

Re: Lab/Biolad should have circuit control

Posted: Thu Nov 21, 2024 2:31 pm
by rollc_at
Related: viewtopic.php?t=117458 viewtopic.php?t=116005

I would like to voice my support for this idea.

Some of this data could be obtained in a different manner, e.g. reading the belt/chest contents allows estimating how many science packs are waiting in a buffer; reading inserters (pulse) allows estimating consumption rate; etc. Then other metrics could be derived/extrapolated from this data, e.g. whether the research has slowed down/stalled, which science pack(s) are missing to continue, etc.

Re: Lab/Biolad should have circuit control

Posted: Thu Nov 21, 2024 4:21 pm
by mrvn
rollc_at wrote: Thu Nov 21, 2024 2:31 pm Related: viewtopic.php?t=117458 viewtopic.php?t=116005

I would like to voice my support for this idea.

Some of this data could be obtained in a different manner, e.g. reading the belt/chest contents allows estimating how many science packs are waiting in a buffer; reading inserters (pulse) allows estimating consumption rate; etc. Then other metrics could be derived/extrapolated from this data, e.g. whether the research has slowed down/stalled, which science pack(s) are missing to continue, etc.
Except with freshness you do not want to put science packs on the belt that aren't needed. They would just spoil.

Spoiling also makes it appear like they get used up while they aren't.

Thirdly one question always is: How many of X can I connect to a belt before it is saturated / exhausted?

Re: Lab/Biolad should have circuit control

Posted: Fri Nov 22, 2024 9:07 am
by rollc_at
Except with freshness you do not want to put science packs on the belt that aren't needed. They would just spoil.
They start spoiling before they even become science packs, you can't stop spoilage, and you can't read spoilage% with a circuit. So where and how you keep them doesn't change it that sometimes you will be processing a nearly-gone science pack.

(One could also argue that using "spoiled first" priority would work thru the stock faster, allowing the fresher packs to stick around for longer. I'd have to test this in a sandbox.)

Note that there's no way to read spoilage%. I'm not sure if this is intended/by design, an engine limitation/perf issue, etc. But you could actually get a pretty decent estimate of spoilage% by comparing the rate of consumption with any other science pack (which would have a funny edge case as health research uses a strictly disjoint set of "base" science packs from productivity).

Re: Lab/Biolad should have circuit control

Posted: Fri Nov 22, 2024 9:38 pm
by mrvn
rollc_at wrote: Fri Nov 22, 2024 9:07 am
Except with freshness you do not want to put science packs on the belt that aren't needed. They would just spoil.
They start spoiling before they even become science packs, you can't stop spoilage, and you can't read spoilage% with a circuit. So where and how you keep them doesn't change it that sometimes you will be processing a nearly-gone science pack.

(One could also argue that using "spoiled first" priority would work thru the stock faster, allowing the fresher packs to stick around for longer. I'd have to test this in a sandbox.)

Note that there's no way to read spoilage%. I'm not sure if this is intended/by design, an engine limitation/perf issue, etc. But you could actually get a pretty decent estimate of spoilage% by comparing the rate of consumption with any other science pack (which would have a funny edge case as health research uses a strictly disjoint set of "base" science packs from productivity).
The point would be to stop producing the science packs in the first place. Which in itself is difficult. Since there is no ground to orbit and interplanetary communications I have to send uncommon wood from Nauvis to Gleba to stop science and an uncommon wooden chest to start science.

I also use "spoiled first" priority to consume the science packs. The more spoiled packs are used up faster so I get to get good packs before they spoil. The other way around the nearly spoiled packs spoil before you get to them. I believe the science output is the same no matter how spoiled the science packs are, they just get used up faster. Then the loss from spoilage every second is proportional to the number of science packs present. So the goal is to have fewer science packs.

Re: Lab/Biolad should have circuit control

Posted: Sat Nov 23, 2024 1:34 pm
by rollc_at
The point would be to stop producing the science packs in the first place. Which in itself is difficult. Since there is no ground to orbit and interplanetary communications I have to send uncommon wood from Nauvis to Gleba to stop science and an uncommon wooden chest to start science.
You can add https://mods.factorio.com/mod/aai-signal-transmission which works in 2.0 - it would be nice to have something like this in vanilla, although I wouldn't hope for a major feature before next year (guys are all busy squashing bugs).

One fun change I'd add to the transmitters/receivers is to scale transmitter/receiver power usage with distance for point-to-point communication. Stationing relays mid-route to reduce power could be a fun little challenge.

Re: Lab/Biolad should have circuit control

Posted: Sun Nov 24, 2024 5:30 pm
by quineotio
mrvn wrote: Fri Nov 22, 2024 9:38 pm The point would be to stop producing the science packs in the first place. Which in itself is difficult. Since there is no ground to orbit and interplanetary communications I have to send uncommon wood from Nauvis to Gleba to stop science and an uncommon wooden chest to start science.
I just disable the request from my platform so no more packs get sent. They produce continually regardless and I just let them spoil on Gleba if I don't need them, because it's set up to handle it.

Re: Lab/Biolad should have circuit control

Posted: Mon Nov 25, 2024 1:34 am
by mrvn
quineotio wrote: Sun Nov 24, 2024 5:30 pm
mrvn wrote: Fri Nov 22, 2024 9:38 pm The point would be to stop producing the science packs in the first place. Which in itself is difficult. Since there is no ground to orbit and interplanetary communications I have to send uncommon wood from Nauvis to Gleba to stop science and an uncommon wooden chest to start science.
I just disable the request from my platform so no more packs get sent. They produce continually regardless and I just let them spoil on Gleba if I don't need them, because it's set up to handle it.
Don't forget to request spoilage or the space platform hub will fill up as science packs in orbit spoil.