[feature request] quick species-specific stockpiles designations for (non)butcherable, (non)tamable etc
One problem I often run into is that I have two separate "animal" stockpiles:
- one close to the food production for tamable animals
- one mass pit in the warmer regions of my fort
The way I usually do this is by starting with everything enabled on the upper stockpile, and removing individual intelligent species from the upper stockpile (adding them to the mass pit) when I happen to cage them.
For corpses, similar consideration apply: Having a stockpile of butcherable animals next to the butcher's shop will ensure that animals which bled to death while the hunter decided to take a nap will still be put to productive use. Having such a stockpile filled up with rotting goblins is not so productive.
Bone carving supplies are a lesser concern, but generally similar considerations would apply.
Of course, there are limitations on what can be done (without injecting code into the part of DF which decides "can item X be stored in stockpile Y", which would probably be a Bad Idea) -- there is probably no way to only select non-rotting (or non-tame-when-killed) corpses, or undead (for animal stockpiles).
Still, a preconfigured stockpile "animals generally tameable" / "untamable creatures" or "(generally) butcherable corpses" / "never butcherable corpses (in vanilla dwarf ethics)" would be very helpful, because the species lists is that they are really not reasonably hand-configurable.
The protocol buffers used to serialize stockpile configurations in the stockpiles plugin do not really make editing them with external tools easy, however, so a simple (e.g. python) script parsing the raw species definitions will not be able to generate them.
Such a feature might be implementable within dfhack itself, however. One way to do this would be to add extra hotkeys to the dfhack query stockpile menu, e.g.: P: allow processable refuse U: allow unprocessable refuse T: allow tameable animals N: allow non-tameable 'animals'
(One might argue that "processable" is ill defined: bone carving is guided by MAKE_TROPHY_, butchering is governed by EAT_ (and I don't even know if you could e.g. train wild animals using sapient meat acquired somehow -- not that that concerns refuse stockpiles). Still, I would argue that most species-specific refuse clearly falls on one or the other side.)