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...
Blocked output on assemblers or furnaces / is_crafting()
Re: Blocked output on assemblers or furnaces / is_crafting()
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
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
Re: Blocked output on assemblers or furnaces / is_crafting()
I don't understand why they cannot have the same behaviour : they both are consuming items in input and producing items in outputs...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
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 

Re: Blocked output on assemblers or furnaces / is_crafting()
binbinhfr wrote:I don't understand why they cannot have the same behaviour : they both are consuming items in input and producing items in outputs...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
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