Blocked output on assemblers or furnaces / is_crafting()

Bugs that are actually features.
User avatar
binbinhfr
Smart Inserter
Smart Inserter
Posts: 1525
Joined: Sat Feb 27, 2016 7:37 pm
Contact:

Blocked output on assemblers or furnaces / is_crafting()

Post by binbinhfr »

I am heavily using entity.is_crafting() on assemblers and furnaces and I notice a problematic difference :
when output of these machines are blocked (no inserters taking out the production) :
- assemblers are returning is_crafting() false and a crafting_progress of 0
- furnaces are still showing is_crafting() true and a crafting_progress that can be blocked at any value (often 1.00066, but also 0.33 or 0.68)

not easy to detect if a furnace is blocked in these conditions...
My mods on the Factorio Mod Portal :geek:
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5407
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: Blocked output on assemblers or furnaces / is_crafting()

Post by Klonan »

Thanks for the report,

There is a big internal difference between furnaces and assembling machines, so this should not be a big surprise,

However the main difference is that assembling machine doesn't 'begin' to craft if the output is blocked, whereas the furnace will craft regardless of the output, and then only stop when the crafting cannot be completed

Im not sure about the crafting progress value of the furnace though, if you can make some comparisons setups and more detailed info on the crafting progress issue please make it in a new bug report
User avatar
binbinhfr
Smart Inserter
Smart Inserter
Posts: 1525
Joined: Sat Feb 27, 2016 7:37 pm
Contact:

Re: Blocked output on assemblers or furnaces / is_crafting()

Post by binbinhfr »

Klonan wrote:However the main difference is that assembling machine doesn't 'begin' to craft if the output is blocked, whereas the furnace will craft regardless of the output, and then only stop when the crafting cannot be completed
I don't understand why they cannot have the same behaviour : they both are consuming items in input and producing items in outputs...
Why the furnace does not behave the same way : don't begin to craft if the ouput is blocked. It would be logical and unified.
And it would permit to detect when a furnace is blocked.
Because it's strange that is-crafting() return true while the furnace is not crafting anymore...

I will make screencopy on the progress problem in another report.
I suppose that in the previous logic, the progress of a blocked furnace should always be =1 ?
My mods on the Factorio Mod Portal :geek:
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5407
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: Blocked output on assemblers or furnaces / is_crafting()

Post by Klonan »

binbinhfr wrote:
Klonan wrote:However the main difference is that assembling machine doesn't 'begin' to craft if the output is blocked, whereas the furnace will craft regardless of the output, and then only stop when the crafting cannot be completed
I don't understand why they cannot have the same behaviour : they both are consuming items in input and producing items in outputs...
Why the furnace does not behave the same way : don't begin to craft if the ouput is blocked. It would be logical and unified.
And it would permit to detect when a furnace is blocked.
Because it's strange that is-crafting() return true while the furnace is not crafting anymore...

I will make screencopy on the progress problem in another report.
I suppose that in the previous logic, the progress of a blocked furnace should always be =1 ?

Yes i think the crafting progress should be 1 when it is full at a blocked output
Post Reply

Return to “Not a bug”