Commit Graph

529 Commits (73427de9946333adf31859aa91577a922ec10525)

Author SHA1 Message Date
Myk Taylor 9f794a0710
filter dialog mock, draft 2; implement Slider 2023-02-27 04:13:29 -08:00
Myk Taylor 9b8400ab40
prevent planned buildings from being resumed
note this only prevents unsuspending from the building sheet panel, not
the tasks screen
2023-02-26 23:45:15 -08:00
Myk Taylor 97ee1022c7
note that filter page is a mock 2023-02-26 10:55:50 -08:00
Myk Taylor fbd3cd44d6
initial mock of filter dialog 2023-02-26 09:49:08 -08:00
Myk Taylor f0ca7ad425
fix all buildings being identified as constructions 2023-02-26 09:49:08 -08:00
Myk Taylor 4b26454696
start of filters dialog 2023-02-26 09:49:08 -08:00
Myk Taylor dadecdcf45
fix inspector screen not resetting the description 2023-02-26 09:49:07 -08:00
Myk Taylor 20a0390c50
no building shadow when other windows are up 2023-02-26 09:49:07 -08:00
Myk Taylor 097e955796
infrastructure for item filtering 2023-02-26 09:49:07 -08:00
Myk Taylor a0798178a6
ensure item quantity is correct when hollow 2023-02-26 09:49:07 -08:00
Myk Taylor c52b2c27c8
implement automaterial in buildingplan 2023-02-26 09:49:07 -08:00
Myk Taylor 4f2d86f50a
implement hollow area placement for constructions 2023-02-26 09:49:07 -08:00
Myk Taylor 1957ad4cdf
move the filter window a bit to the side, can pause 2023-02-26 09:49:07 -08:00
Myk Taylor f09eeee864
only enable clear filter hotkey when a filter is set 2023-02-26 09:49:07 -08:00
Myk Taylor 69e9da2e79
keep target area higlighted while choosing items 2023-02-26 09:49:07 -08:00
Myk Taylor 348ac55f4c
allow singleton selection for items 2023-02-26 09:49:07 -08:00
Myk Taylor e9555c29be
initialize heat safety option to 'Any' 2023-02-26 09:49:07 -08:00
Myk Taylor 273183e864
allow cancel when choosing items 2023-02-26 09:49:07 -08:00
Myk Taylor a0785bded4
implement heat safety 2023-02-26 09:49:07 -08:00
Myk Taylor 2477a23972
pass correct job_item index for item selection 2023-02-26 09:49:07 -08:00
Myk Taylor ee827f5ca1
remember mouse pos from before item choosing 2023-02-26 09:49:07 -08:00
Myk Taylor 4001ef3815
implement selecting specific items 2023-02-26 09:49:07 -08:00
Myk Taylor 66a14ecc74
get UI semi-finalized, prep for item choosing 2023-02-26 09:49:07 -08:00
Myk Taylor daf691839f
item selection, callback skeleton 2023-02-26 09:49:07 -08:00
Myk Taylor c59ad78f40
more tokens, textures, and colors 2023-02-26 09:49:07 -08:00
Myk Taylor aa4ebe6398
remove some cruft 2023-02-26 09:49:07 -08:00
Myk Taylor e92a54deaa
beginning of textures 2023-02-26 09:49:07 -08:00
Myk Taylor b3198c88a0
only block mouse clicks over exactly the panel area 2023-02-26 09:49:07 -08:00
Myk Taylor 96fa7fa1e2
fix position of errors panel 2023-02-26 09:49:07 -08:00
Myk Taylor 3f8be2cd9e
implement make_top_priority, cache inspector data 2023-02-26 09:49:07 -08:00
Myk Taylor 0d3285678c
separate errors panel, fix pb vectors on load 2023-02-26 09:49:07 -08:00
Myk Taylor 56c8927316
better description string for inspection overlay 2023-02-26 09:49:07 -08:00
Myk Taylor 18ad29dde4
show queue position 2023-02-26 09:49:07 -08:00
Myk Taylor e5c3a2b519
dynamically count available materials when placing 2023-02-26 09:49:07 -08:00
Myk Taylor a9d9e0e50c
skeleton for quantity scanning 2023-02-26 09:49:07 -08:00
Myk Taylor 584e891154
more skeleton for inspector 2023-02-26 09:49:07 -08:00
Myk Taylor dd6f71c665
handle stairs and 3 dimensions 2023-02-26 09:49:07 -08:00
Myk Taylor 1c3a5fa170
initial building placement code 2023-02-26 09:49:07 -08:00
Myk Taylor 0cb1c09549
implement skeletons for buildingplan overlays 2023-02-26 09:49:07 -08:00
Myk Taylor b443f81ecd
print out more status info for buildingplan 2023-02-26 09:49:07 -08:00
Kelly Kinkade 7e584df040 misc tailor updates related to adamantine cloth 2023-02-17 12:10:23 -06:00
Myk Taylor bc76fd02e2
prevent mouse clicks from bleeding through when a window is dismissed 2023-02-13 17:35:02 -08:00
Myk Taylor 766738e102
generate names for nameless burrows; check for nil 2023-02-12 15:21:10 -08:00
Myk 90767b83d2
Merge pull request #2852 from myk002/myk_misery
update misery
2023-02-08 14:22:33 -08:00
Myk Taylor 4d4e94c449
convert index 2023-02-08 14:06:19 -08:00
Myk Taylor 5c84d18001
update tailor, persist state, use best practices 2023-02-08 14:06:19 -08:00
Myk Taylor 9f76d64e42
update misery; persist state 2023-02-08 14:02:44 -08:00
pre-commit-ci[bot] bf0b3f8845 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-02-08 19:06:35 +00:00
eamondo2 02a249fdee Fixes the lua stack smashing issue 2023-02-08 14:01:32 -05:00
eamondo2 be0cec9520 Current attempt to fix lua stack smashing 2023-02-08 01:59:57 -05:00
Myk 190b5003c8
Merge branch 'develop' into myk_logo_hide 2023-02-06 09:17:48 -08:00
Myk 0fc7341ce7
Merge pull request #2825 from myk002/myk_focus_strings
support focus paths for overlay widgets
2023-02-06 09:16:37 -08:00
Myk Taylor c0cd37ff6f
protect against NULLs and invalid stockpiles 2023-02-06 09:04:50 -08:00
Myk Taylor bf91ffb1fe
support focus paths for overlay widgets
and migrate existing widgets to use them
2023-02-06 02:37:32 -08:00
Myk Taylor 09e7c14210
hide DFHack logo when it's in the way 2023-02-05 18:27:31 -08:00
Robob27 89761bca0c Remove unnecessary screen params 2023-02-05 19:04:21 -05:00
Robob27 8a08878fd6 Less messy pause display 2023-02-05 19:04:21 -05:00
Robob27 a5de0fb0de Add stockpile removal confirm 2023-02-05 19:04:21 -05:00
Robob27 4a0d542b5e Add more confirms 2023-02-05 19:04:21 -05:00
Robob27 6e442a26ca More WIP 2023-02-05 19:04:21 -05:00
Robob27 a770a4cae4 WIP 2023-02-05 19:04:21 -05:00
Myk Taylor 43d1a1563b
fix param parsing for setting targets 2023-02-03 15:27:01 -08:00
Myk 987597e0af add autolabor warning overlay widget 2023-02-02 15:37:36 -06:00
Myk Taylor be40d55e64
update seedwatch 2023-02-01 04:03:28 -08:00
Myk Taylor 998a63a979
allow overlay widgets to specify a default enabled state
and make relevant library widgets enabled by default
and remove the default overlay.json config file
2023-01-26 00:53:57 -08:00
Myk Taylor 8b98ba5042
allow windows to be defocused instead of pinned 2023-01-23 17:40:16 -08:00
Eamon Bode fc861f1328
Merge branch 'develop' into automelt 2023-01-23 14:20:48 -05:00
eamondo2 7536426929 trailing whitespace trim 2023-01-23 13:36:12 -05:00
eamondo2 6592cadc09 Bugfixes, resolved CTD issue. 2023-01-23 13:35:26 -05:00
Myk Taylor 38e6e0a747
ensure orders overlay is on the correct panel
even when the total screen size is very small
2023-01-23 08:01:45 -08:00
Myk Taylor d7e0dcfcf8
use new frames for hotkey hotspot 2023-01-23 04:03:41 -08:00
Myk Taylor 9aaa55cd7f
add textures and frames for various use cases 2023-01-23 03:58:51 -08:00
eamondo2 78c6b3683e Changes as per GH suggestions. Doc updates. 2023-01-23 01:56:33 -05:00
eamondo2 8f7788ec20 Merge branch 'develop' into automelt 2023-01-22 20:32:43 -05:00
Myk f2c2fffac5
Merge branch 'develop' into myk_click_logo 2023-01-22 17:10:27 -08:00
Myk ab10b84de4
Merge pull request #2693 from myk002/myk_revert_always_enabled
remove unused always_enabled attribute for overlays
2023-01-22 17:10:04 -08:00
Myk Taylor f0d44342d8
first attempt at a manager orders overlay 2023-01-22 03:08:36 -08:00
Eamon Bode e5cbc7fd3c
Merge branch 'develop' into automelt 2023-01-22 04:40:10 -05:00
eamondo2 969f8162a8 Further updates from comments/review. 2023-01-22 04:39:41 -05:00
Myk Taylor b84bce719d
remove unused always_enabled attribute for overlays
it was made for gui/pathable, but that became a ZScreen
this option made me uncomfortable for overlays. it didn't seem like the
right user experience
2023-01-22 01:07:30 -08:00
Myk Taylor 76822ac7b7
remove orphan fortplan.lua file 2023-01-22 00:59:27 -08:00
Myk Taylor 5a4d61e7fc
don't close the hotspot menu if the logo is clicked
some people click the logo by mistake. this shouldn't close the menu
2023-01-22 00:43:10 -08:00
eamondo2 0fbf17f1c8 refactor/fix as per GH suggest 2023-01-21 18:22:15 -05:00
eamondo2 3fc4d056c3 initial automelt 2023-01-20 17:58:48 -05:00
Myk 116f9bf8e6
Merge pull request #2641 from myk002/myk_buildingplan
minimal implementation of buildingplan
2023-01-20 09:28:26 -08:00
Myk Taylor 2cf0d0769c
fix reference to renamed var 2023-01-18 15:44:47 -08:00
Myk Taylor bc42f7c73c
get buildingplan minimally functional for quickfort 2023-01-17 04:05:17 -08:00
Myk Taylor 86ddf43230
add hotkey for launching the quickstart guide from the hover menu 2023-01-15 20:17:23 -08:00
Myk Taylor 1eb5dd9a4f
fix incorrect function name for setting targets 2023-01-14 18:30:44 -08:00
Myk Taylor 807f3f6327
update behavior of hotspot menu
- disappears on click outside its borders
- disappears on r-click
- mouse over the help panel counts as "over the menu" (so the menu
  doesn't close if the player moves the mouse to the help text)
- menu panels appear next to the logo hotspot instead of over it,
  allowing players to avoid clicking on the wrong item if they
  intend to click on the logo
2023-01-13 12:18:18 -08:00
Myk Taylor cc0ff6a93d
raise trigger lock screens (if possible)
so they don't get stuck under new viewscreens and become lost (and
therefore overlay will be forever locked)
2023-01-13 12:16:49 -08:00
Myk Taylor 2877f87d78
implement new autochop 2023-01-08 23:28:06 -08:00
Myk Taylor c4a2bdd08e
update lua too 2023-01-05 17:35:33 -08:00
Myk 78be3a6463
Merge pull request #2548 from myk002/myk_logo
Display DFHack logo for the hotkeys overlay widget
2023-01-04 19:06:05 -08:00
Myk Taylor 8e62a46009
display new logo for the hotkeys overlay widget 2023-01-04 13:30:33 -08:00
Myk Taylor 1b1bfc40e7
move default hotspot pos one tile to the right
so it doesn't overlap with screen borders
2023-01-03 12:07:40 -08:00
Myk bb1a165d5b
Merge pull request #2544 from myk002/myk_hotkeys_revamp
comment out most keybindings and revamp hotkeys widget
2023-01-02 20:43:06 -08:00
Myk 3b572b9a9d
Merge pull request #2541 from myk002/myk_pathable
Update pathable plugin to support v50 maps
2023-01-02 20:42:12 -08:00
Myk Taylor 2119d4fb2a
attach hotkeys widget to all viewscreens
and introduce new snazzy logo
2023-01-01 17:21:35 -08:00
Myk Taylor 09e240b412
allow overlay widgets to 'all' viewscreens 2023-01-01 17:20:06 -08:00
Myk Taylor 11333e3872
update pathable plugin to support v50 maps 2022-12-31 21:05:03 -08:00
Myk Taylor c401154393
widgets inherit from Panel and can be perma-enabled 2022-12-31 21:02:00 -08:00
Myk Taylor ec0b4a9b68
don't let anchor graphics poke through the hotkeys widget 2022-12-27 17:01:39 -08:00
myk002 e88b1fdfe5
move script-manager into core 2022-12-10 21:59:51 -08:00
myk002 0d4d10de08
rename init to reload 2022-12-10 21:59:51 -08:00
myk002 a872cdbcd4
no onChangeState fn, let scripts attach themselves 2022-12-10 21:59:51 -08:00
myk002 426a538e30
refactor overlay to use script-manager code 2022-12-10 21:59:51 -08:00
myk002 b3c8d85637
new plugin: script-manager
scans all scripts and discovers onStateChange and isEnabled functions
2022-12-10 21:59:51 -08:00
myk002 1547d527b7
fix off-by-one error in dwarfmonitor.misery widget 2022-12-04 15:34:00 -08:00
lethosor 40f3a3333e
Make Cursor widget prefix and coordinate types configurable
e.g. the old behavior can be restored with "coords_type": "mouse_ui" and
"coords_short": true
2022-12-01 00:08:56 -05:00
myk002 ce1ef15bb2
reduce hotspot visuals to a single exclamation mark 2022-11-30 18:13:19 -08:00
myk002 1851a82fe1
close the hotkey menu if the mouse "flicks" onto it
also initialize the selected item properly if the widget is anchored to
the bottom of the screen
2022-11-30 18:11:02 -08:00
myk002 f5d20c99a3 prep for usage by gui/overlay 2022-11-29 15:12:02 -08:00
myk002 9d17be84a8 set width to something representative on init
so if the widget is enabled in gui/overlay without ever being resized with real data,
it won't be truncated
2022-11-29 15:12:02 -08:00
myk002 24dc879888
adapt library code to newly correct mouse events 2022-11-21 17:36:46 -08:00
Myk ff447d46bd
don't overcount units for misery widget
addendum to #2366
2022-11-20 09:45:23 -08:00
Myk 35cea1b5e1
Merge pull request #2371 from myk002/myk_overlay_hotkeys
[hotkeys] implement hotspot menu widget
2022-11-14 16:50:30 -08:00
myk002 6635b6489b
handle commands like ':lua <something>' 2022-11-14 16:46:03 -08:00
myk002 1fc30493c0
right align hotkeys for list items
and combine hotkeys for identical commands
and don't hide the menu until the mouse has left the frame
and start the widget one tile closer to the edge so the mouse is already
on the list instead of on the frame
2022-11-14 16:46:02 -08:00
myk002 2b73d6e8e9
allow hotkeys to be invoked as a hotkey
also ensure keybindings are always cleaned up
2022-11-14 16:46:02 -08:00
myk002 c630a71c73
click on arrow to launch gui/launcher with command 2022-11-14 16:46:01 -08:00
myk002 d8c86fd0b1
allow commands with hotkey guards to work 2022-11-14 16:46:01 -08:00
myk002 fb7b55fb11
open gui/launcher with the command on right arrow 2022-11-14 16:46:01 -08:00
myk002 ae2d9008ef
add frames around menu panels 2022-11-14 16:46:00 -08:00
myk002 6e005d4a8d
implement basic logic for hotspot menu 2022-11-14 16:46:00 -08:00
myk002 e3498f275f
fix dwarfmonitor weather widget 2022-11-14 16:45:08 -08:00
myk002 9ce9d2001c
adapt dwarfmonitor widgets to new API 2022-11-14 16:45:07 -08:00
myk002 2cf6767589
migrate dwarfmonitor widgets to overlay v2 2022-11-14 16:45:07 -08:00
myk002 19289bf3c8
clean up docs and code 2022-11-14 16:40:36 -08:00
myk002 208e96c1b7
bounds check overlay_onupdate_max_freq_seconds 2022-11-14 16:40:35 -08:00
myk002 9bdc995f20
write docs and make implementation match the docs
added ability to enable/disable all
added showing current widget configuration
added moving widget back to default coordinates
2022-11-14 16:40:35 -08:00
myk002 ffc09ff25d
record explicitly triggered widget screens 2022-11-14 16:40:35 -08:00
myk002 1ebf58ff83
rewrite conf management according to discord convo
move non-user-editable state into the widget config
remove registry json files
all user-editable state is now in a single overlay.json file
2022-11-14 16:40:35 -08:00
myk002 6e6e174c31
implement CLI interface 2022-11-14 16:40:34 -08:00
myk002 a76c04c9ec
load overlay widget configuration 2022-11-14 16:40:34 -08:00
myk002 bd318b7a21
implement basic overlay event logic 2022-11-14 16:40:34 -08:00
myk002 d7fba5c720
add stub lua layer for overlay 2022-11-14 16:40:34 -08:00
myk002 b1bf80e585
support "group" file split strategy for blueprint 2022-10-14 12:27:24 -07:00
myk002 c52138b168
generate meta blueprints 2022-10-12 17:42:36 -07:00
myk002 80d993e734
split rooms phase from query and record names 2022-10-12 16:01:54 -07:00
myk002 b78af72403
record built constructions in blueprint 2022-10-12 13:31:46 -07:00
myk002 598f2c4b12
support --smooth option for blueprints 2022-10-12 10:10:53 -07:00
myk002 cc61d4a82a
use rendered help instead of hard-coded 2022-10-10 17:03:57 -07:00
myk002 03027b513a
Merge branch 'develop' into docs 2022-08-03 22:55:38 -07:00
myk002 3983b4d75b
update docs 2022-08-03 21:44:25 -07:00
myk002 3f61e2302c
split autobutcher out from zone 2022-08-03 21:44:24 -07:00
myk002 0096f7c882
split autonestbox out from zone 2022-08-03 21:44:24 -07:00
myk002 4cb57d25f1
update dig-now docs 2022-07-22 17:46:33 -07:00
Myk 091068c710
[prospect] give player control over which information is output (#2231)
* give player control over prospect output

* suspend the core *before* we call to Lua
2022-07-06 06:57:13 -07:00
Josh Cooper d38ab1d152
Fix UNIT_NEW_ACTIVE events (#2197)
* Updates eventful.lua to use UNIT_NEW_ACTIVE

* Fixes bug #2189

* Revises activeUnits declaration/initialization

* Fixes build error

* Update changelog.txt

* reword changelog entry

* add changelog entry for event name change

Co-authored-by: Myk <myk002@yahoo.com>
2022-06-17 09:34:41 -07:00
Warmist fc384fd1a2
Update eventful.lua (#2203)
* 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>
2022-06-12 07:12:49 -07:00
Myk 77d045488b
Confirmation dialog for removing manager orders (#2163) 2022-05-23 21:17:52 -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
lethosor d1f0edd33b
Apply initial pre-commit config 2022-04-12 14:48:19 -04:00
myk002 54e8761aa0 capture fortifications and engravings in blueprint 2022-04-01 12:20:37 -07:00
Josh Cooper ba5710f263 Adds new event type NEW_UNIT_ACTIVE 2022-03-12 11:33:27 -08:00
Josh Cooper 2b8024e62f Updates eventful plugin with new EventManager event JOB_STARTED 2022-03-12 11:33:27 -08:00
myk002 434d072919 implement zone phase for blueprint 2021-10-04 15:32:26 -07:00
myk002 ffe5bad66b implement "track" phase in blueprint
required decoupling phases from modes since now we have two "dig" phases
2021-10-04 12:53:31 -07:00
myk002 c23970f36b add unit tests 2021-09-20 16:10:15 -07:00
myk002 596f72f06b implement --playback-start param and logic 2021-09-20 16:10:15 -07:00
myk002 772e386427 implement --format option for minimal and pretty
pretty is currently equivalent to the previous format, though there will
be changes in the future
2021-09-17 10:57:26 -07:00
myk002 0747f872b0 add --splitby param to blueprint
--splitby=none is the new default, allowing all blueprint phases to be
written to a single file. old behavior of one phase per file is
supported via --splitby=phase.
2021-09-09 09:58:53 -07:00
myk002 8fb456313f
allow only one positional param to be specified 2021-07-30 13:09:20 -07:00
myk002 95fa9f3d7a
use new library functions in dig-now 2021-07-30 13:09:20 -07:00
myk002 71c605afd4
make options configurable and document 2021-07-30 13:09:13 -07:00
myk002 20dbd746a8
fix typo 2021-07-09 21:58:32 -07:00
myk002 aba1750bac
use new argparse functions 2021-07-09 21:58:32 -07:00
myk002 a09f4d9b63
add --cursor and --quiet options to tiletypes-here 2021-07-09 21:58:32 -07:00
myk002 f62ff3ecc0
migrate existing lua code to use new library fns 2021-07-05 15:48:51 -07:00
myk002 367fdbd31c
normalize pathnames and handle dirs as basenames 2021-06-29 14:25:30 -07:00
lethosor 2fc5fbacb5
Merge remote-tracking branch 'myk002/myk_reveal_unhideFlood' into develop 2021-06-19 01:08:05 -04:00
myk002 fb8d6614c7
expose core flood unhide logic to Lua
refactor is a straight copy-paste. this code could really stand some
cleanup (unused vars, unnecessary use of the MapCache layer, forced
allocation of all blocks even if they are not being unhidden, etc.), but
that can come in a later PR.
2021-06-02 14:49:19 -07:00
myk002 1b1b4245c9
report output filenames when creating blueprints
also refactor so we can get this data from gui/blueprint
2021-05-31 15:34:19 -07:00
myk002 1aaed3a6ed
error on invalid phase names 2021-05-21 06:34:28 -07:00
myk002 256ca13668
make short help text more generic 2021-05-14 23:07:44 -07:00
myk002 5a149f44e0
use setHotkeyCmd instead of dfhack.run_script 2021-05-14 23:02:04 -07:00
myk002 816cd5cf27
add unit tests 2021-05-10 21:11:13 -07:00
myk002 cc489db084
add comment to parse_gui_commandline function 2021-05-10 21:11:13 -07:00
myk002 7c7d96b5c1
output args being passed to gui/blueprint 2021-05-10 21:11:13 -07:00
myk002 a7a5a48c7a
first stage of blueprint overhaul
- make depth and name parameters optional
- allow depth to be negative to indicate top-down instead of the
  previous hard-coded bottom-up
- add --cursor for specifying start position (game cursor is not needed
  if this param is specified)
2021-05-10 21:11:10 -07:00
lethosor 257f8dbe00
buildingplan: fix size calculation for constructions
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.
2021-04-01 00:16:54 -04:00
myk002 aac958aa50
add open() wrapper fn and document class methods 2021-03-22 09:38:20 -07:00
myk002 69a2f44020
Lua class wrappers for the xlsxreader plugin API 2021-03-08 15:04:50 -08:00
lethosor 1b2eed7c5e
confirm convict: use visible name to avoid exposing alternate identities
Ref #1593
See also:
https://www.reddit.com/r/dwarffortress/comments/ltzu82/if_i_wasnt_sure_i_found_the_vampire_before/
http://www.bay12forums.com/smf/index.php?topic=164123.msg8253738#msg8253738
2021-02-28 01:01:47 -05:00
Myk Taylor d0fc448a39
add 'enable all' option for buildingplan
This kind of functionality is much more important now than it used to
be since there are so many supported building types.

Also modified the 'Planning Mode' status on the building placement
screen to reflect whether we're in quickfort mode, enable all mode, or
whether just the building type is enabled.

this setting is not persisted (just like quickfort_mode is not
persisted), but it can be set from onMapLoad.init
2021-01-24 09:08:36 -08:00
lethosor d437cfe649
Add test for invalid job types in workflow's job_outputs 2020-12-15 21:36:57 -05:00
lethosor 5d3924a8c0
Remove old jobs from plant_products
Identified by Quietust in #1722
2020-12-14 00:04:53 -05:00
lethosor 123c207d9c
Fix error in material_defs lookups
Changed in dfhack/df-structures@7dfea1f1d4
Fixes #1722
2020-12-14 00:03:29 -05:00
myk002 efdba8b596
add buildingplan.isPlannedBuilding 2020-11-13 10:18:54 -08:00
lethosor 9c13b497bf
Merge remote-tracking branch 'myk002/myk_automaterial_buildingplan_fix' into develop 2020-11-11 23:36:42 -05:00
Myk Taylor fbc26336cf don't show quality properties for no-quality items
for items that cannot have a quality or be decorated:

in place mode, don't show quality adjustment hotkeys (or isDecorated
flag hotkey) and don't interpret the associated keycodes if they are
pressed.

in query mode, don't show quality or decorated fields.
2020-10-31 02:25:26 -07:00
Myk Taylor 22ac163d55 improve UX between automaterial and buildingplan
solves the confusing behavior when both automaterial and buildingplan
are enabled for constructions. the two plugins now communicate with each
other over the Lua layer to negotiate consistent behavior.

if neither plugin is enabled, the standard DF UI acts as normal

if automaterial is enabled but buildingplan is not, then automaterial
behavior is unchanged.

if buildingplan is enabled and automaterial is not then behavior is
the same as other buildings with buildingplan (no material selection
screen, screen stays on building placement screen after placement).
this commit fixes a bug, though, where buildingplan would only lay
down a single tile of contruction instead of a solid block when a
block is requested.

if both plugins are enabled but buildingplan is not enabled for the
building type then automaterial is unchanged from previous behavior,
execpt for an additional header showing the separation between
automaterial hotkeys and buildingplan hotkeys.

finally, if both plugins are enabled and buildingplan is enabled for the
building type then buildingplan behavior prevails, but the box select and
hollow designations features of automaterial are still usable and
useful. the 'Auto Mat-select', 'Reselect Type', and "Open Placement"
automaterial hotkeys are hidden in the UI and ignored in the feed. This
is because buildingplan takes over material selection, so 'Auto
Mat-select' doesn't make sense. Buildingplan also already stays on the
placement screen after placement, so 'Reselect Type' is not necessary.
And all buildingplan-placed buildings have relaxed placement
restrictions (e.g. they can be built in mid-air) so 'Open Placement' is
also not necessary. The missing options are replaced with blank lines so
the vertical alignment of all other options stays constant.

we also remove a few extra lua_pop() calls that are made superfluous by
the StackUnwinder.
2020-10-29 11:00:49 -07:00
lethosor 08bb6ca35e
Tweak colors
Ref #1684
2020-10-29 00:03:07 -04:00
Myk Taylor c1af3e2817 document what happens if no types are allowed 2020-10-26 21:13:11 -07:00
Myk Taylor 7e78d8802e migrate qf's buildings_use_blocks to buildingplan
- 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
2020-10-22 21:37:49 -07:00
Myk Taylor 09fbaba726 buildingplan: support all building types
Allow buildingplan to handle all building types, update the docs, and add in little extra fixes to ensure all the new types work correctly.
2020-10-16 14:23:35 -07:00
Myk Taylor 100b374af7 generalize buildingplan for all building types
but restrict to only the currently supported set so we can still assume only one filter is required for each building.

changes:
- update buildingplan plugin version to 2.0
- new serialization format for planned buildings
- old persistent data is automatically migrated to new format on load
- algorithm now respects job_item filters; items must match job_item filter and buildingplan ItemFilter
- more invalid items are now filtered out, like items encased in ice. are there any others we should be checking (see BadFlags struct)
- items are sorted before job is unsuspended so final item ordering is correct regardless of what order the items were matched and attached
- item counts in filters are kept up to date so if buildingplan is disabled before all filters are matched and the building is completed by DF itself, the item counts will come out correct (though the item ordering and building "roughness" may be incorrect)
- fixes two memory leaks in building finalization code
- allows artifacts to be matched (ItemFilter defaults now top out at Masterful -- Artifact is selectable but must be manually specified)
- add gui to switch between items for buildings that require multiple item types
2020-10-16 14:08:52 -07:00
Myk Taylor 1368fb4003 buildingplan: construct buildings from lua
Replace C++ building construction code with lua constructBuilding so we can get the proper job_item filters set. these filters will be used when we replace the core buildingplan algorithm in the next PR.
2020-10-16 14:03:05 -07:00
Myk Taylor 82013c0c5e prep buildingplan for core algorithm changes
Lots of refactoring and reorganizing, with only cosmetic player-visible changes.

- show quickfort mode hotlkey label regardless of whether the current building type has buildingplan enabled. before, it was only shown after the user enabled buildingplan for the current building. this eliminates the extra step when enabling quickfort mode, which force-enables all building types.
- changed signature of lua-exported isPlannableBuilding to take subtype
  and custom type in addition to building type. this is only used by
  quickfort, and it already sends all three params in preparation for
  this change
- added lua-exported scheduleCycle(), which is like doCycle(), but only
  takes effect on the next non-paused frame. this lets quickfort
  run only one buildingplan cycle regardless of how many #build
  blueprints were run
- declared a few dfhack library methods and params const so buildingplan
  could call them from const methods
- converted buildingplan internal debug logging fn to have a printf api
- reshaped buildingplan-planner API and refactored implementation in
  preparation for upcoming core algorithm changes for supporing all
  building types (no externally-visible functionality changes)
  - changed df::building_type params to type, subtype, custom tuple keys
  - introduced capability to return multiple filters per building type
    (though the current buildings all only have one filter per)
- split monolith hook functions in buildingplan.cpp into one per scope.
  this significantly cleans up the code and preps the hooks to handle
  iterating through multiple item filters.
- got rid of send_key function and replaced with better reporting of
  whether keys have been handled
2020-10-16 13:52:23 -07:00