Is your feature request related to a problem? Please describe.
Recent developments of steps in recipes have allowed those to use speed modifications due to the qualities of the tools used to modify the time a step takes based on the tools used.
However, as far as I can tell from documentation and a quick look at some code, this speed factor is defined in the item that has the quality, rather than being inherent to the tool quality level itself, which seems sub optimal.
Solution you would like.
-
Allow definitions of "tool_quality" to include an "speed" field which should be a list of all supported quality values and their speed factors.
-
Add sanity checks of these to ensure lower quality values have greater than or equal speed values to higher quality values.
-
Add sanity checks to item and recipe quality values to verify those fall within the range specified by the speed field (which would be ignored if the field doesn't exist).
-
Change item::get_quality_speed() to read the tool_quality data if present, and use the item data only when no tool_quality data exists.
-
Document the new field and mark it as being obsolesced in the item documenation.
-
Eventually get rid of the speed field from items by gradually moving them to their corresponding tool_qualities, and finish it off by removing the field from the item documentation.
Describe alternatives you have considered.
Add speed to e.g. all items providing the "WINNOW" quality in order to allow grain processing recipes to be merged using steps, and do the same thing for recipe merge candidates.
Allow item tool quality speed definitions to override tool_quality definitions if there are cases where different items should have different speed factors despite having the same quality level. However, I suspect that would really be an indication the granularity of the tool_quality levels is insufficient and should be reworked.
Additional context
It's quite possible I've missed something that would require different items to provide the different speed factors despite having the same tool quality. However, I suspect it's more likely for different recipes to want different speed factors for the same tool quality level than for different items with the same level to differ.
Is your feature request related to a problem? Please describe.
Recent developments of steps in recipes have allowed those to use speed modifications due to the qualities of the tools used to modify the time a step takes based on the tools used.
However, as far as I can tell from documentation and a quick look at some code, this speed factor is defined in the item that has the quality, rather than being inherent to the tool quality level itself, which seems sub optimal.
Solution you would like.
Allow definitions of "tool_quality" to include an "speed" field which should be a list of all supported quality values and their speed factors.
Add sanity checks of these to ensure lower quality values have greater than or equal speed values to higher quality values.
Add sanity checks to item and recipe quality values to verify those fall within the range specified by the speed field (which would be ignored if the field doesn't exist).
Change
item::get_quality_speed()to read the tool_quality data if present, and use the item data only when no tool_quality data exists.Document the new field and mark it as being obsolesced in the item documenation.
Eventually get rid of the speed field from items by gradually moving them to their corresponding tool_qualities, and finish it off by removing the field from the item documentation.
Describe alternatives you have considered.
Add speed to e.g. all items providing the "WINNOW" quality in order to allow grain processing recipes to be merged using steps, and do the same thing for recipe merge candidates.
Allow item tool quality speed definitions to override tool_quality definitions if there are cases where different items should have different speed factors despite having the same quality level. However, I suspect that would really be an indication the granularity of the tool_quality levels is insufficient and should be reworked.
Additional context
It's quite possible I've missed something that would require different items to provide the different speed factors despite having the same tool quality. However, I suspect it's more likely for different recipes to want different speed factors for the same tool quality level than for different items with the same level to differ.