Skip to content

Delete unused recipe rows in the production table#172

Draft
DaleStan wants to merge 10 commits intoShadowTheAge:masterfrom
DaleStan:delete-unused
Draft

Delete unused recipe rows in the production table#172
DaleStan wants to merge 10 commits intoShadowTheAge:masterfrom
DaleStan:delete-unused

Conversation

@DaleStan
Copy link
Contributor

@DaleStan DaleStan commented Jul 6, 2022

This is a follow-up to #168. After adding all the recipes in existence, I want to delete the ones the solver decided not to use. It can be merged without #168, if desired.

This adds two buttons to the dropdown on the Recipe column:
image

The first button deletes all recipe rows that have zero assigned buildings, recursively through all nested tables.
The second button also unpacks any nested tables that only have a header recipe.

Given this nested table,
image
the first button converts it to this
image
and the second button converts it to this
image

Omit 1c0d336 to omit the second button. I can create a new PR if that's desired.

Required additional work

  • The undo system cannot reliably undo the actions performed by either of these new buttons. I haven't been able to figure out what I'm doing wrong, so I've marked this as a draft.

Potential future concerns

flow = flowArr;
}

public void RemoveUnusedRecipes(bool unpackToo)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried spamming calls to RecordUndo in this method, but that sent the undo system into a stack overflow loop, both with and without unpacking.

@DaleStan
Copy link
Contributor Author

DaleStan commented Jul 6, 2022

Here's a demonstration of me mis-handling the undo system. Load DeleteUnusedTest.yafc.zip with this mod list, and use either of the two new buttons. Then try to undo the changes. After undo, the page will unexpectedly consume five of the six "Purified *" items, among other things. It will also unexpectedly produce gold ore, titanium sheet coil, uranium ore, nickel carbonyl, and tungsten ore.

If the modlist doesn't work, you should also be able to sync with this save: DeleteUnusedTest.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants