Ok, time to think about what's next. I'm focusing on feedback and refining the user experience right now, so no major new features. Just quality-of-life stuff. Here's my shortlist:
- Move alias documentation from aliases.txt to the user guide
As requested by A_Curious_Cat. One of the major problems with the alias documentation being in aliases.txt is that aliases.txt is a user configuration file and it doesn't get overwritten when you install a new version of DFHack. Therefore, if the docs in aliases.txt get updated, players with existing aliases.txt files *will never see the updated docs*. Pure silliness. Alias documentation belongs on docs.dfhack.org with the rest of the docs.
- more flexible script commandline argument parsing
Right now the parsing function we're using is overly strict about parameter order. For example,
quickfort list dreamfort -l is legal syntax but
quickfort list -l dreamfort is not. The second form is a more natural ordering and should totally be valid.
- quickfort GUI entry point at gui/quickfort
Essentially add
gui/quickfort as another way to call
quickfort gui so people who look for gui-driven scripts in the
gui/ directory can find quickfort.
- Hotkey to enable buildingplan for all building types
When buildingplan only supported a few building types, it wasn't such a big deal to enable buildingplan for each building type you want to use it for. Now that there are so many supported building types, though, we need a quick way to just enable everything.
- Set buildingplan global settings from DFHack prompt
Implement 'buildingplan set [settingname] [value]' so settings can be initialized from dfhack.init or onMapLoad.init. I'm personally going to use this to configure buildingplan to enable all building types and only use blocks (and not logs, boulders, or bars) when finding items for buildings that require generic construction materials:
buildingplan set all_enabled true
on-new-fortress buildingplan set boulders false; buildingplan set logs false
bars are off by default so we don't actually have to set that one. Note that I just set
boulders and
logs on new fortresses. They'll get saved with the fortress after that, and if I do change them in-game, I don't want those changes to be overwritten by commands in my onMapLoad.init.
- Scrollable message boxes in gui
Without this it is impossible to read long messages when using
quickfort gui. This came up because the dreamfort help text has been getting longer and longer, and now is longer than my screen can accommodate.
- new blueprint mode: #ignore
For stuff that shouldn’t be visible to quickfort, like personal development notes. These "blueprints" won't appear in
quickfort list- Write walkthrough checklist for dreamfort
Dreamfort has a good, thorough walkthrough, but it is kinda long. I think it could use a condensed checklist that basically says: "here are the commands you need to run, in the order you need to run them in (see walkthough for details)". It will include all quickfort commands as well as calls to other scripts (like
orders import
)
- Give descriptive names to dreamfort levers, bridges, and stockpiles
So dreamfort is more usable and understandable.
- --pretend mode for quickfort commands
So players can error-check blueprints and get statistics on what would be done, but not actually change any game state.
- Don’t require a game cursor for #notes blueprints
Right now, quickfort requires a game cursor before it will "run" a blueprint. Otherwise it wouldn't know where on the map to apply it. This made sense when the only blueprint types affected the map, but #notes blueprints just display help text. Requiring a cursor when running these blueprints is just annoying.
This is the only complex new feature I'm planning for the next wave. It will define a new blueprint mode:
#aliases. Aliases defined in that "blueprint" can be used by any #query blueprint in the same file (i.e. a multi-blueprint .csv file or any sheet in an .xlsx file). With file-scoped aliases, players can share their blueprints on the forums/wikis and be sure that they will work correctly for other people, even if the blueprints use aliases that are not found in the DFHack aliases-common.txt "standard library".
Ok, that's it for now. Happy quickforting!