* reorganize init scripts into dfhack-config
allows player init scripts to build on defaults instead of replace them
this also moves the init scripts out of the main df directory
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* escape asterisks in docs
* remove unneeded dfhack.init file creation for test
* write the test init script to the new init dir
* create the init dir before trying to write a file
* rename default init files for clarity
* Update changelog
* Update docs/changelog.txt
Co-authored-by: Alan <lethosor@users.noreply.github.com>
* Try to get buildmaster to work with old branches
* Update changelog
* get keybindings from all init scripts
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix spacing in changelog
* split default loading into its own file
* update docs with new changes
* update help text wording in default init files
* Apply suggestions from code review
Co-authored-by: Alan <lethosor@users.noreply.github.com>
* Alphabetize changelog
* Update onMapLoad.default.init
* Update onMapLoad.init
* Update Core.rst
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alan <lethosor@users.noreply.github.com>
* move professions out of the examples folder
* install professions into professions/library
* guard unguarded header from multiple inclusion
* load and display library professions
* update changelog
* move example professions docs from examples guide
* update dreamfort documentation
* note that professions folder has changed
* Fix bad merge
* move orders out of examples directory
* install orders into library dir
* read orders from new library dir
* update documentation
* update dreamfort references to orders import
* update changelog
* ignore json files in pre-commit
* don't delete general refs from jobs that we cancel
though we still disconnect the refs if we can
* get job remove working in all cases
we apparently need to manually handle DestroyBuilding jobs
everything else we should let cancel_job handle
* update changelog
* Update eventful.lua
Had wrong function. Fixes https://github.com/DFHack/dfhack/issues/2202
* Update Lua API.rst
Update docs to add onReactionCompleting and remove outdated info
* Update Lua API.rst
Some more minor doc fixes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add changelog entry
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* ensure job items are disassociated from the job
when the job is removed. the new df-provided ``cancel_job()`` doesn't do
this for us whereas the old custom implementation did.
ref: #2028
* remove trailing whitespace
* Clean up general refs before removing job
Because the game method doesn't do it itself
* Fix typo in var name
* clean up code
* update changelog
* add alt-f as a hotkey for quickfort
to mimic the existing windows hotkey for the old quickfort
hopefully this will ease the transition from the old quickfort to the
new
* add and document new quickfort aliases
* reduce quantity requirement for dyeing
15 is just too high. the counter counts bags, not units
* dreamfort blueprint improvements
most of these suggested by ldog on the forums. Thanks!
- significantly extend the list of hostile creatures that get stashed in the prisoner quantum stockpile
- send adamantine thread to the metalworker stockpiles
- give from thread/cloth stockpiles to clothier, loom, and dyer to protect the adamantine thread
- automatically create tavern, library, and temple locations (restricted to residents only by default)
- automatically associate the rented rooms with the tavern
- place a stockpile under the dump zone so you can set up stockpile links for dumped items
- doc improvements. in particular, point people to the new assign-minecarts tool for assigning minecarts to quantum stockpile dumps
* update changelog
* fix typo in cloth stockpile settings
* fix typo in guildhall location setup
* don't restrict stockpiles for clothiers and dyers
* deprecate jugs alias and add stone|woodentools
* remove dye thread, make jugs wooden
remove dye thread to protect adamantine
make jugs wooden to differentiate them from scroll rollers. that gives
us a chance to actually have a usable jugs-only stockpile
* dreamfort improvements
- move trap corridor gates and levers before the walls and traps so they get
constructed first
- give useful names to the craftsdwarf's workshops
- redesign the services level to:
- fit better in a 1x1 embark
- add doors to the hospital recovery rooms to protect from
werebeasts-to-be
- add an interrogation room (sheriff's office) next to the jail
* shape hospital zone to exactly the hospital area
* don't clutter the hospital with statues
* update changelog
* basic pause functionality for confirm
* update changelog
* wrap the pause message and output in white
* unpause on viewscreen transition when we can
but still use esc detection when we won't get a viewscreen transition
(like when we're intercepting input on viewscreen_dwarfmodest
* add more code docs about unpause detection
* use new focus subsystem in widgets.EditField
* always eat the enter key if we have an on_submit
* add modal attribute
* give EditFields a default height of 1
so they can be autoarranged
* implement keyboard focus subsystem
* Fix error in focus group combining
* documentation for the inputToSubviews decision
* modify unit tests to catch that last bug
* Add link to the rust api client library
Add a link to https://docs.rs/dfhack-remote/latest/dfhack_remote/index.html a library interacting with DFHack remote API for the Rust programming language
* Use the docs.rs link
* Fix duplicate link label, included the change in the changelog
Co-authored-by: pierre <pierre>
* Adds cxxrandom unit test and fixes interface problems
* Tightens braces
* Adds detection code for Shuffle's seqID/engID
* Adds usage examples for cxxrandom
* Gives cxxrandom objects id ranges, sort of
* Updates changelog
* Updates changelog.txt
* Increases id space for cxxrandom
* Fixes bool distribution error message and improves check
* Adds comment explaining the seeded RNG tests for cxxrandom
* Fixes type problem for 32bit builds
* Reduces loop count a few magnitudes
* Fixes a mistake in test.cxxrandom_seed
* update example init files
replace onLoad.init-example with documentation on how to create scripts that run on world/map load
it was confusing to show it being loaded with sc-script since it gets autorun anyway if it is just named properly
* update changelog
* add quickfort keybinding
* move standard tweaks from dreamfort init to main
* Added (chain) for [CHAIN_METAL_TEXT] armours in gui/materials.lua used by gui/create-item-- again (oops)
* Added customRawData utility
* Oops, whitespace
* Revised rawStringsFieldNames
* Dialed down on lua trickery and fixed wrongly formatted changelog entry
* Fixed changelog in wrong place and made customRawData a proper module
* Fixed not caching not-present tags, revised examples and fixed error
* Fixed whitespace. Changing settings in editor!
* customRawData docs
* Added getCreatureTag for respecting caste tags, "fixed" bizarre caching error (quotes because I don't even know what was causing it) and updated docs
* Added line limiting for docs, I guess
* Added missing string convert argument
* docs indent fix, code block fix, and revision
* Major revision
* gdi, docs error
* Another? But... huh.
* ...
* Made requested changes
* Whoops
* Rearrange docs lines
* Followed example, should fix linter issues
* fix typo. linted offline this time......
* Make it so that last instance of tag is what is read from
* Added requested change
* eventful key change
* i to lenArgs
* change eventful key
* add test for broken caste selection
* Major redesign
* tags --> tokens
* Added plant growth behaviour and did some requested changes
* More error handling
* fix docs
* Added basic error suppression
* Docs clarification.
* Docs registering example and fix error
* Strip errors on frame after onWorldLoad, not on map load
* Revert "Strip errors on frame after onWorldLoad, not on map load"
This reverts commit e20a0ef8d3743f79d961077f46910b77b16f36b9.
* Revert "Docs registering example and fix error"
This reverts commit 9c848c54c3f84e0ecc1dc421137c8a8b4a52280d.
* Revert "Docs clarification."
This reverts commit 6b4b6a1aa40c50398504f37ecf1ff0f93d6459b1.
* Revert "Added basic error suppression"
This reverts commit d11cb1438cf1e56ff700469e944f0b9af64651d7.
* Use more eventful key more consistent with other files
* use onStateChange instead of eventful and remove redundant utils require
* Code review stuff
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update docs/Lua API.rst
committing a suggestion
Co-authored-by: Alan <lethosor@users.noreply.github.com>
* Prepend examples with DFHACK_
* Remove unused parameters
* Use new ensure_key global
* Named a couple of unnamed arguments (untested)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alan <lethosor@users.noreply.github.com>
When active, the displayed names of partially-consumed items (e.g.
hospital cloth) will display a percentage indicator at the end.
Also re-sort a few Tweaks so they're in alphabetical order again.
* visual studio 2022/2019
update instructions to recommend using VS 2022 or VS 2019 with downlevel tool support
* reinsert accidentally deleted line
* fix markup
* notes on abi compatibility, changelog
* Add functions reverse-engineered from ambushing unit code
* Fix whitespace
* Fix debug_showambush check
* Remove getOuterContainerRef from Lua API
Don't think this works properly without allocating a new specific_ref. More trouble that it's worth.
* Fixed tile visibility check
* I don't think gamemode or gametype are ever NULL
* Minor tweaks to documentation
* Reimplement getOuterContainerRef for Lua; fix some comments
* Update Units.cpp and changelog
* Update Units.cpp
* Update changelog.txt
&& has a higher precendence than ||, so this could have resulted in a crash in
some cases. It also produced unintentional behavior where e.g. `tailor 1 foo`
would enable the plugin, unlike `tailor enable foo`.
From #1920
- def.h: changed vectors for inorganics to contain uint8_t instead of bool which improves the performance when using std::fill and std::memset to batch-set the whole array
- survey.cpp: using std::memset instead of direct assignment to reset the inorganic vectors, also using the actual size of each vector for the call
- changelog.txt: add note concerning the changes
To reproduce:
1. Enter the `d`esignation menu
2. Press `-+` to change priorities
3. Create a designation
4. Press `Alt-p` to hide priorities
5. Exit and re-enter the designation menu (`Esc`, `d`)
Previously, priorities would be visible again after step 5. With this change, they are not visible until you press `Alt-p` again.
Fixes#1068. Note that this is a relatively unobtrusive fix: selecting a priority with `+-` will still result in priorities being shown again. This is native DF behavior that I am reluctant to override because users of designation priorities likely want to see them.
Planning a 4x2 construction with DF's `umkh` keys (i.e. not automaterial's box-select) would previously produce a 5x3 construction instead, for example.
Fixes#1803
Running a command that created a new screen would previously result in a screen
order that looked like this, due to how `Screen::Hide` works:
- DF screen
- `command-prompt` screen (dismissed)
- New screen
The `command-prompt` screen remained on the stack until the new screen was
dismissed, so it would intercept viewscreen vmethod calls intended for the
DF screen.
This change adds a new behavior to `Screen::Hide` that results in this screen
order after running a command:
- DF screen
- New screen
- `command-prompt` screen (dismissed) - DF removes this screen immediately
between stockflow and stockpiles
I removed stockpiles's dynamic placement code as well. it attempted to
move the hotkey help text down if it covered any stockpile links, but
this will no longer work since other hotkey text already takes up all
the lines below stockpiles' hotkey text.
- remove buildings_use_blocks setting from quickfort config file
- add a new Buildingplan Global Settings dialog to house global settings
- move Quickfort Mode (for legacy Python Quickfort) into that dialog
- add four settings to control how generic building materials are matched:
- blocks
- boulders
- logs
- bars
- ajust the buildingplan algorithm to register duplicate tasks for
building material item filters, one for each type. since we track how
many items we've matched for a filter, the first matched item will
"win" and the extras will get detected as invalid and popped off the
queue.
- ensure boulders, logs, and bars are scanned last, and in that order
- more global settings planned for the future! see
http://www.bay12forums.com/smf/index.php?topic=176889.msg8202679#msg8202679
to enable writing to a subdir that may not exist, blueprint now automatically
creates folder trees. E.g. ``blueprint 30 30 1 rooms/dining dig`` will create
the file ``blueprints/rooms/dining-dig.csv``). Previously it would fail if the
``blueprints/rooms/`` directory didn't already exist.