[2.0.20] Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Things that we don't consider worth fixing at this moment.
macdjord
Long Handed Inserter
Long Handed Inserter
Posts: 92
Joined: Fri Feb 22, 2013 4:26 am
Contact:

[2.0.20] Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by macdjord »

  1. Build an Assembler 2
  2. Set the recipe to one that requires a fluid ingredient
  3. Use an upgrade planner to downgrade the assembler to an Assembler 1
  4. The recipe is cleared, because Assembler 1s don't support fluid ingredients
  5. Undo the upgrade
  6. The Assembler 2 is back, but the recipe remains blank
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 3753
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by boskid »

This sounds like a duplicate of 121821
macdjord
Long Handed Inserter
Long Handed Inserter
Posts: 92
Joined: Fri Feb 22, 2013 4:26 am
Contact:

Re: Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by macdjord »

Not a duplicate. The problem isn't that downgrading clears the recipe - that is expected and normal when the recipe in question requires a fluid ingredient, which Assembler 1s don't support. The problem is that undoing that downgrade with Ctrl-Z did not restore the recipe once it was an Assembler 2 again.
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 3753
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by boskid »

Regardless of if its a duplicate or not, please provide a log file, or at least game version on which you observed the issue.
macdjord
Long Handed Inserter
Long Handed Inserter
Posts: 92
Joined: Fri Feb 22, 2013 4:26 am
Contact:

Re: Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by macdjord »

Game version: 2.0.20-3

More detailed set of replication instructions:
  1. Constructed a pair of Assembler 2s
  2. Set first one to make red belts, the other to make blue belts
  3. Using a default upgrade planner in right-click mode, marked both Assembler 2s for downgrade into Assembler 1s
  4. Bots from personal roboport applied the change
  5. First assembler recipe was still set to red belts, second one now blank. (This is expected and normal; Ass1 cannot make blue belts.)
  6. Using Ctrl-Z, ordered the downgrade to be undone
  7. Bots from personal roboport applied the change
  8. First assembler recipe was still set to red belts, second one is still blank.
macdjord
Long Handed Inserter
Long Handed Inserter
Posts: 92
Joined: Fri Feb 22, 2013 4:26 am
Contact:

Re: [2.0.20] Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by macdjord »

@boskid: Do you still require more information?
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 3753
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: [2.0.20] Undoing downgrade of Assembler 2 to Assembler 1 does not restore recipe that requires fluid ingredient

Post by boskid »

I am going to mark this as Won't fix. The reason why this scenario fails is in essence the same one as with 118468 which is action done by robot having no access to undo item of a player. Original downgrade does not clear recipe so undo does not record need of restoring recipe and when robot then arrives to perform the downgrade, assembler clears the recipe as it is incompatible yet it is robot replacing the machine, not a player so this recipe change cannot be added anymore to the undo action.

This problem would go into even worst deep hole of corner cases: even if downgrade order would cause recipe to be cleared instantly (so it gets recorded in the undo action), the machine itself would get replaced by assembler-1 which is fine, but if you would undo the downgrade, then assembler-1 would be requested to upgrade to assembler-2 and at the same time a recipe change would be requested but this recipe cannot be applied to the assembler-1. This means that in order to fix the issue, we would have to completly get rid of the upgrade target of entities and instead fallback to always ordering old entity to be deconstructed and placing a configured ghost in its place.
Post Reply

Return to “Won't fix.”