You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
clear-webs: removes all webs on the map and/or frees any webbed creatures
devel/block-borders: overlay that displays map block borders
devel/luacov: generate code test coverage reports for script development. Define the DFHACK_ENABLE_LUACOV=1 environment variable to start gathering coverage metrics.
fix/drop-webs: causes floating webs to fall to the ground
gui/blueprint: interactive frontend for the blueprint plugin (with mouse support!)
gui/mass-remove: mass removal/suspension tool for buildings and constructions
reveal-hidden-sites: exposes all undiscovered sites
set-timeskip-duration: changes the duration of the "Updating World" process preceding the start of a new game, enabling you to jump in earlier or later than usual
Fixes
Fixed an issue preventing some external scripts from creating zones and other abstract buildings (see note about room definitions under "Internals")
Fixed an issue where scrollable text in Lua-based screens could prevent other widgets from scrolling
bodyswap:
stopped prior party members from tagging along after bodyswapping and reloading the map
made companions of bodyswapping targets get added to the adventurer party - they can now be viewed using the in-game party system
buildingplan:
fixed an issue where planned constructions designated with DF's sizing keys (umkh) would sometimes be larger than requested
fixed an issue preventing other plugins like automaterial from planning constructions if the "enable all" buildingplan setting was turned on
made navigation keys work properly in the materials selection screen when alternate keybindings are used
color-schemes: fixed an error in the register subcommand when the DF path contains certain punctuation characters
command-prompt: fixed issues where overlays created by running certain commands (e.g. gui/liquids, gui/teleport) would not update the parent screen correctly
dwarfvet: fixed a crash that could occur with hospitals overlapping with other buildings in certain ways
embark-assistant: fixed faulty early exit in first search attempt when searching for waterfalls
gui/advfort: fixed an issue where starting a workshop job while not standing at the center of the workshop required advancing time manually
gui/unit-info-viewer: fixed size description displaying unrelated values instead of size
orders: fixed crash when importing orders with malformed IDs
quickfort:
comments in blueprint cells no longer prevent the rest of the row from being read. A cell with a single '#' marker in it, though, will still stop the parser from reading further in the row.
fixed an off-by-one line number accounting in blueprints with implicit #dig modelines
changed to properly detect and report an error on sub-alias params with no values instead of just failing to apply the alias later (if you really want an empty value, use {Empty} instead)
improved handling of non-rectangular and non-solid extent-based structures (like fancy-shaped stockpiles and farm plots)
fixed conversion of numbers to DF keycodes in #query blueprints
fixed various errors with cropping across the map edge
properly reset config to default values in quickfort reset even if if the dfhack-config/quickfort/quickfort.txt config file doesn't mention all config vars. Also now works even if the config file doesn't exist.
stonesense: fixed a crash that could occur when ctrl+scrolling or closing the Stonesense window
quickfortress.csv blueprint: fixed refuse stockpile config and prevented stockpiles from covering stairways
Misc Improvements
Added adjectives to item selection dialogs, used in tools like gui/create-item - this makes it possible to differentiate between different types of high/low boots, shields, etc. (some of which are procedurally generated)
blueprint:
made depth and name parameters optional. depth now defaults to 1 (current level only) and name defaults to "blueprint"
depth can now be negative, which will result in the blueprints being written from the highest z-level to the lowest. Before, blueprints were always written from the lowest z-level to the highest.
added the --cursor option to set the starting coordinate for the generated blueprints. A game cursor is no longer necessary if this option is used.
devel/annc-monitor: added report enable|disable subcommand to filter combat reports
embark-assistant: slightly improved performance of surveying and improved code a little
gui/advfort: added workshop name to workshop UI
quickfort:
the Dreamfort blueprint set can now be comfortably built in a 1x1 embark
added the --cursor option for running a blueprint at specific coordinates instead of starting at the game cursor position
added more helpful error messages for invalid modeline markers
added support for extra space characters in blueprints
added a warning when an invalid alias is encountered instead of silently ignoring it
made more quiet when the --quiet parameter is specified
setfps: improved error handling
stonesense: sped up startup time
tweak hide-priority: changed so that priorities stay hidden (or visible) when exiting and re-entering the designations menu
unretire-anyone: the historical figure selection list now includes the SYN_NAME (necromancer, vampire, etc) of figures where applicable
API
Added dfhack.maps.getPlantAtTile(x, y, z) and dfhack.maps.getPlantAtTile(pos), and updated dfhack.gui.getSelectedPlant() to use it
Added dfhack.units.teleport(unit, pos)
Internals
Room definitions and extents are now created for abstract buildings so callers don't have to initialize the room structure themselves
The DFHack test harness is now much easier to use for iterative development. Configuration can now be specified on the commandline, there are more test filter options, and the test harness can now easily rerun tests that have been run before.
The test/main command to invoke the test harness has been renamed to just test
Unit tests can now use delay_until(predicate_fn, timeout_frames) to delay until a condition is met
Unit tests must now match any output expected to be printed via dfhack.printerr()
Unit tests now support fortress mode (allowing tests that require a fortress map to be loaded) - note that these tests are skipped by continuous integration for now, pending a suitable test fortress
Lua
new library: argparse is a collection of commandline argument processing functions
new string utility functions:
string:wrap(width) wraps a string at space-separated word boundaries
string:trim() removes whitespace characters from the beginning and end of the string
string:split(delimiter, plain) splits a string with the given delimiter and returns a table of substrings. if plain is specified and set to true, delimiter is interpreted as a literal string instead of as a pattern (the default)
new utility function: utils.normalizePath(): normalizes directory slashes across platoforms to / and coaleses adjacent directory separators
reveal: now exposes unhideFlood(pos) functionality to Lua
xlsxreader: added Lua class wrappers for the xlsxreader plugin API
now returns negative numbers (e.g. -10) in the list of positional parameters instead of treating it as an option string equivalent to -1 -0
now properly handles -- like GNU getopt as a marker to treat all further parameters as non-options
now detects when required arguments to long-form options are missing
gui.dwarfmode: new function: enterSidebarMode(sidebar_mode, max_esc) which uses keypresses to get into the specified sidebar mode from whatever the current screen is
gui.Painter: fixed error when calling viewport() method
Structures
Identified remaining rhythm beat enum values
ui_advmode.interactions: identified some fields related to party members
ui_advmode_menu: identified several enum items
ui_advmode:
idenfitied several fields
renamed wait to rest_mode and changed to an enum with correct values
viewscreen_legendsst.cur_page: added missing Books enum item, which fixes some other values