github DFHack/dfhack 0.47.05-r5
DFHack 0.47.05-r5

latest releases: 50.14-r1.1, 50.14-r1, 50.13-r5...
2 years ago

DFHack 0.47.05-r5

New Plugins

  • spectate: "spectator mode" -- automatically follows dwarves doing things in your fort

New Scripts

  • devel/eventful-client: useful for testing eventful events

New Tweaks

  • tweak: partial-items displays percentage remaining for partially-consumed items such as hospital cloth

Fixes

  • autofarm: removed restriction on only planting "discovered" plants
  • cxxrandom: fixed exception when calling bool_distribution
  • devel/query:
    • fixed a problem printing parents when the starting path had lua pattern special characters in it
    • fixed a crash when trying to iterate over linked lists
  • gui/advfort: encrust and stud jobs no longer consume reagents without actually improving the target item
  • luasocket: return correct status code when closing socket connections so clients can know when to retry
  • quickfort: contructions and bridges are now properly placed over natural ramps
  • setfps: keep internal ratio of processing FPS to graphics FPS in sync when updating FPS

Misc Improvements

  • autochop:
    • only designate the amount of trees required to reach max_logs
    • preferably designate larger trees over smaller ones
  • autonick:
    • now displays help instead of modifying dwarf nicknames when run without parameters. use autonick all to rename all dwarves.
    • added --quiet and --help options
  • blueprint:
    • track phase renamed to carve
    • carved fortifications and (optionally) engravings are now captured in generated blueprints
  • cursecheck: new option, --ids prints creature and race IDs of the cursed creature
  • debug:
    • DFHack log messages now have configurable headers (e.g. timestamp, origin plugin name, etc.) via the debugfilter command of the debug plugin
    • script execution log messages (e.g. "Loading script: dfhack_extras.init" can now be controlled with the debugfilter command. To hide the messages, add this line to your dfhack.init file: debugfilter set Warning core script
  • dfhack-examples-guide:
    • add mugs to basic manager orders
    • onMapLoad_dreamfort.init remove "cheaty" commands and new tweaks that are now in the default dfhack.init-example file
  • dig-now: handle fortification carving
  • EventManager:
    • add new event type JOB_STARTED, triggered when a job first gains a worker
    • add new event type UNIT_NEW_ACTIVE, triggered when a new unit appears on the active list
  • gui/blueprint: support new blueprint options and phases
  • gui/create-item: Added "(chain)" annotation text for armours with the [CHAIN_METAL_TEXT] flag set
  • manipulator: tweak colors to make the cursor easier to locate
  • quickfort:
    • support transformations for blueprints that use expansion syntax
    • adjust direction affinity when transforming buildings (e.g. bridges that open to the north now open to the south when rotated 180 degrees)
    • automatically adjust cursor movements on the map screen in #query and #config modes when the blueprint is transformed. e.g. {Up} will be played back as {Right} when the blueprint is rotated clockwise and the direction key would move the map cursor
    • new blueprint mode: #config; for playing back key sequences that don't involve the map cursor (like configuring hotkeys, changing standing orders, or modifying military uniforms)
    • API function apply_blueprint can now take data parameters that are simple strings instead of coordinate maps. This allows easier application of blueprints that are just one cell.
  • stocks: allow search terms to match the full item label, even when the label is truncated for length
  • tweak: stable-cursor now keeps the cursor stable even when the viewport moves a small amount
  • dfhack.init-example: recently-added tweaks added to example dfhack.init file

API

  • add functions reverse-engineered from ambushing unit code: Units::isHidden(), Units::isFortControlled(), Units::getOuterContainerRef(), Items::getOuterContainerRef()

Lua

  • custom-raw-tokens: library for accessing tokens added to raws by mods
  • dfhack.units: Lua wrappers for functions reverse-engineered from ambushing unit code: isHidden(unit), isFortControlled(unit), getOuterContainerRef(unit), getOuterContainerRef(item)
  • dialogs: show* functions now return a reference to the created dialog
  • dwarfmode.enterSidebarMode(): passing df.ui_sidebar_mode.DesignateMine now always results in you entering DesignateMine mode and not DesignateChopTrees, even when you looking at the surface (where the default designation mode is DesignateChopTrees)
  • dwarfmode.MenuOverlay:
    • if sidebar_mode attribute is set, automatically manage entering a specific sidebar mode on show and restoring the previous sidebar mode on dismiss
    • new class function renderMapOverlay to assist with painting tiles over the visible map
  • ensure_key: new global function for retrieving or dynamically creating Lua table mappings
  • safe_index: now properly handles lua sparse tables that are indexed by numbers
  • string: new function escape_pattern() escapes regex special characters within a string
  • widgets:
    • unset values in frame_inset table default to 0
    • FilteredList class now allows all punctuation to be typed into the filter and can match search keys that start with punctuation
    • minimum height of ListBox dialog is now calculated correctly when there are no items in the list (e.g. when a filter doesn't match anything)
    • if autoarrange_subviews is set, Panel\s will now automatically lay out widgets vertically according to their current height. This allows you to have widgets dynamically change height or become visible/hidden and you don't have to worry about recalculating frame layouts
    • new class ResizingPanel (subclass of Panel) automatically recalculates its own frame height based on the size, position, and visibility of its subviews
    • new class HotkeyLabel (subclass of Label) that displays and reacts to hotkeys
    • new class CycleHotkeyLabel (subclass of Label) allows users to cycle through a list of options by pressing a hotkey
    • new class ToggleHotkeyLabel (subclass of CycleHotkeyLabel) toggles between On and Off states
    • new class WrappedLabel (subclass of Label) provides autowrapping of text
    • new class TooltipLabel (subclass of WrappedLabel) provides tooltip-like behavior

Structures

  • adventure_optionst: add missing getUnitContainer vmethod
  • historical_figure.T_skills: add account_balance field
  • job: add improvement field (union with hist_figure_id and race)
  • report_init.flags: rename sparring flag to hostile_combat
  • viewscreen_loadgamest: add missing LoadingImageSets and LoadingDivinationSets enum values to cur_step field

Documentation

  • add more examples to the plugin example skeleton files so they are more informative for a newbie
  • update download link and installation instructions for Visual C++ 2015 build tools on Windows
  • update information regarding obtaining a compatible Windows build environment
  • confirm: correct the command name in the plugin help text
  • cxxrandom: added usage examples
  • lua-string: document DFHack string extensions (startswith(), endswith(), split(), trim(), wrap(), and escape_pattern())
  • quickfort-blueprint-guide: added screenshots to the Dreamfort case study and overall clarified text
  • remote-client-libs: add new Rust client library
  • Lua API.rst: added isHidden(unit), isFortControlled(unit), getOuterContainerRef(unit), getOuterContainerRef(item)

Don't miss a new dfhack release

NewReleases is sending notifications on new releases.