Commit Graph

1116 Commits (ed2ba697138d5807d370b6a94a45a4834cf4602f)

Author SHA1 Message Date
Myk ed2ba69713
Improvements to dreamfort, quickfort keystroke aliases, and example orders (#2162)
* 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
2022-06-02 15:51:45 -07:00
Myk 27bf4c758b
Allow player to pause the confirmation dialog without disabling (#2164)
* 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
2022-06-02 06:24:13 -07:00
Myk 89d3d45e87
Allow EditField widgets to manage their own activation and keyboard focus (#2147)
* 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
2022-06-01 21:48:21 -07:00
Myk ad2d9cad03
[lua] implement keyboard focus subsystem (#2160)
* implement keyboard focus subsystem

* Fix error in focus group combining

* documentation for the inputToSubviews decision

* modify unit tests to catch that last bug
2022-06-01 17:42:13 -07:00
Ryan Williams bc0def4342
MiscUtils word_wrap: Add option to trim only leading whitespace after wrapping (#2169)
* Update changelog.txt
2022-05-30 22:58:46 -04:00
Myk 77d045488b
Confirmation dialog for removing manager orders (#2163) 2022-05-23 21:17:52 -07:00
Myk 8b1070b553
tombstone deteriorate*rb scripts (#2157)
* tombstone deteriorate*rb scripts

* update to scripts head so we can build docs

* fix anchors
2022-05-19 15:27:08 -07:00
myk002 18628ff5b8 make key_sep more configurable
and add more configuration to HotkeyLabel and EditField to take
advantage of it
2022-05-18 16:46:33 -07:00
myk002 53609db1f9 let CycleHotkeyLabels take numeric initial_options
even if all of the option values are non-numeric
2022-05-18 15:39:52 -07:00
myk002 d6df928d69 update changelog 2022-05-13 14:36:49 -07:00
myk002 7439678214 tombstone devel/unforbidall script 2022-05-10 15:37:37 -07:00
lethosor 1203274e9f
Update Authors.rst
This time with missing scripts and df-structures authors since 0.47.04-r1

Just one: DFHack/scripts#339
2022-05-10 00:51:16 -04:00
myk002 585888c2d3
update version, changelog, modules for 0.47.05-r5 2022-05-04 17:21:31 -07:00
Myk 0389637ac8 clean up changelog.txt 2022-05-02 21:54:41 -07:00
lethosor cc20d9fbb7
Update Authors.rst
Checked as far back as 0.47.04-r1.
Oldest missing was chrismdp from before 0.47.05-r3.
2022-05-01 13:35:30 -04:00
Pierre Lulé 876d9132b1
Add a link to the rust library for interacting with the remote API (#2121)
* 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>
2022-05-01 06:31:59 -07:00
Josh Cooper fe29bff845
Adds cxxrandom unit test and fixes interface problems (#2099)
* 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
2022-04-30 21:46:47 -07:00
Myk e2fb15a3a5
add dwarfmode.MenuOverlay:renderMapOverlay() (#2119)
* add dwarfmode.MenuOverlay:renderMapOverlay()

* ensure we move with the viewport when bounds_rect is nil
2022-04-29 20:32:22 -07:00
Myk 24dd4d8ac0
Update init files (#2117)
* 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
2022-04-29 20:24:09 -07:00
Tachytaenius b9c36c1e63
Added custom-raw-tokens utility (#2038)
* 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>
2022-04-29 08:39:59 -07:00
Timur Kelman f08a268e8a
add scroll icons to Label widget (#2101)
* WIP: add scroll icons to Label widget

It's an opt-out. The icons are rendered in the right-most column of the 1st and last row. They are only rendered when text can actually be scrolled in the corresponding direction.

WIP: Currently, the icons might overlay text characters, there is no mechanism preventing it

* gui.lua: expose the `parse_inset()` function

* refactor Label's scroll icon code

* since `render_scroll_icons` only works with a label, it's now a class function
* `update_scroll_inset` ensures `frame_inset.r` or `.l` is at least 1, according to `show_scroll_icons`
* `show_scroll_icons` has 4 possible values: `false` for no icons, `left` for icons on the first column on the left (also ensuring `frame_inset.l >= 1`), `right` - last column on the right, `DEFAULT_NIL` - same as `right` if text height greater than `frame_body.height`, else same as `false`.

* make `render_scroll_icons` always draw icons

The check now happens in `onRenderFrame`

* draw frame's background

calling `Label.super.onRenderFrame(self, dc, rect)` makes frame's background invisible for some reason

* remove trailing spaces

* fix scroll icons placed far above/below text

 With `Label.frame_inset = 1` the text could be vertically centered with plenty of space below and above,
but not all rendered. Before this change, the scroll icons would be at the very top and bottom of the frame
instead of near the first and last rendered text line.

* always `update_scroll_inset` to react to resized window

* draw scroll icons next to text

* update `Lua API.rst` with new `Label` parameters

* move comment separator up

This way every scroll related parameter is in one group

* list default values for new parameters in docs

* add missing description of `Label.scroll_keys`
2022-04-29 06:55:08 -07:00
myk002 dcadde38d7 add new global function: ensure_key 2022-04-27 17:35:49 -07:00
myk002 6ad362d698
return a reference to the created dialogs 2022-04-27 11:51:46 -07:00
Quietust dc2a14c0c2 Add "partial-items" tweak.
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.
2022-04-27 11:27:11 -07:00
Nik Nyby fe0b33d9c4 fix typo: equiptment 2022-04-26 17:11:21 -07:00
myk002 ed5523152c
factor text wrapping out of TooltipLabel into WrappedLabel 2022-04-22 09:53:10 -07:00
Guilherme Abraham 2aa28d34b6
Adding ids output to cursecheck (#2093)
Co-authored-by: Guilherme Abraham <guilherme.abraham@zpesystems.com>
Co-authored-by: Myk <myk002@yahoo.com>
2022-04-21 20:22:05 -07:00
Josh Cooper 2bbe1aa6f5 Alphabetizes job-(material/duplicate) correctly 2022-04-18 17:40:12 -07:00
Josh Cooper f570b5441a Alphabetizes confirm/command-prompt correctly 2022-04-18 17:40:12 -07:00
Josh Cooper 634751a12c Alphabetizes the sections of Plugins.rst 2022-04-18 17:40:12 -07:00
Josh Cooper e7062e2e45 Alphabetizes the "Mods and Cheating" section 2022-04-18 17:40:12 -07:00
Josh Cooper b13b927a70 Alphabetizes the "Map modification" section 2022-04-18 17:40:12 -07:00
Josh Cooper 1c825baac1 Alphabetizes the "Job and Fortress management" section 2022-04-18 17:40:12 -07:00
Josh Cooper e9c0c01364 Alphabetizes the "UI Upgrades" section 2022-04-18 17:40:12 -07:00
Josh Cooper d5c4ad4ccc Alphabetizes the "Bugfixes" section 2022-04-18 17:40:12 -07:00
Josh Cooper 96fa0b4241 Alphabetizes the "Data inspection and visualizers" section 2022-04-18 17:40:12 -07:00
myk002 07761e1d5d add some more handy widgets to the library
TooltipLabel
HotkeyLabel
CycleHotkeyLabel
ToggleHotkeyLabel
2022-04-18 17:37:11 -07:00
Timur Kelman cb123e5076
default unset `frame_inset` values to 0 (#2100)
* default unset `frame_inset` values to 0

This change allows writing `frame_inset = {r=1}` instead of `frame_inset = {l=0, r=1, t=0, b=0}`
2022-04-16 08:17:35 -07:00
Tim Siegel bf60879c81 [tweak/stable-cursor] Keep stable cursor when viewport is near enough
Allow the viewport to move a bit and still keep the cursor location.
2022-04-12 19:53:16 -07:00
lethosor 0f464b13b3
Merge remote-tracking branch 'lethosor/pre-commit' into develop 2022-04-12 21:17:15 -04:00
lethosor d1f0edd33b
Apply initial pre-commit config 2022-04-12 14:48:19 -04:00
Myk fd1ee233a2
automatically manage sidebar modes in MenuOverlay (#2083) 2022-04-11 20:58:54 -07:00
Myk 10f22ecc27
add ResizingPanel class and autolayout for Panels (#2086)
* add autolayout for Panels and new ResizingPanel
2022-04-11 18:25:00 -07:00
Myk e6299700bf
Handle punctuation in FilteredList filter matching (#2085)
* allow punctuation to be typed into a filter

and allow the filter to match keys with punctuation
2022-04-11 18:22:31 -07:00
myk002 4a383b1c84 handle number-indexed lua maps in safe_index 2022-04-11 18:02:57 -07:00
Myk 4f9608da13
Document and update argparse module (#2089)
also add unit tests and use new string fns in processArgs and allow it to recognize parameters with two dashes instead of just one
2022-04-11 16:16:55 -07:00
Myk 9a8fd12785
ensure ListBoxes always have enough height (#2084)
so they can always display an error message if the filter doesn't match anything
2022-04-11 16:15:50 -07:00
Myk 96b5b4420b
Add string:escape_pattern() utility function (#2082)
* add string:escape_pattern() to dfhack.lua

stolen from devel/query.lua. will migrate scripts to use the common implementation later
2022-04-10 21:18:01 -07:00
Myk c603d6a9f3 Move docs for include_prefix param to correct function
It was listed under listdir, but it only appears in listdir_recursive
2022-04-08 23:13:10 -07:00
Myk 3aebc6776a Disambiguate Lua API header in plugins 2022-04-06 05:54:20 -07:00