Commit Graph

4702 Commits (3fc4d056c30905ea2e793003e1de5f5c4fa5eb7b)

Author SHA1 Message Date
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
Myk Taylor facdb61e42
explicitly declare namespaces and proto versions 2022-12-10 18:06:53 -08:00
myk002 dec6d3d379
Revert "update google protobuf to 3.21.10"
This reverts commit 9dabf51ac7.
2022-12-07 11:59:48 -08:00
myk002 9dabf51ac7
update google protobuf to 3.21.10 2022-12-07 11:59:15 -08:00
myk002 6fc62946e4
remove obsolete fix_job_postings command 2022-12-06 16:22:39 -08:00
myk002 7e6b8618ea
remove command-prompt 2022-12-04 15:56:11 -08:00
myk002 1547d527b7
fix off-by-one error in dwarfmonitor.misery widget 2022-12-04 15:34:00 -08:00
Myk fb42951afe
Merge pull request #2464 from myk002/myk_cleanup
remove unused "plugin" file
2022-12-03 18:47:04 -08:00
Myk 017d473903
Merge pull request #2460 from myk002/myk_buildingplan
move buildingplan into subdir
2022-12-03 18:46:42 -08:00
myk002 8d9fba665e
remove unused "plugin" file 2022-12-02 17:04:18 -08:00
myk002 fa9a3fcbbf
add missing CMakeLists file 2022-12-02 16:32:21 -08:00
Kelly Kinkade d62514b201 fix stupid typo in cmakefile 2022-12-02 17:08:17 -06:00
Kelly Kinkade 231b521c02 INFO -> TRACE in autolabor
sorry about that
2022-12-02 17:05:26 -06:00
myk002 e0aff474f3
move buildingplan into subdir 2022-12-02 14:22:48 -08:00
Myk ed52c4cd6e
Merge pull request #2374 from wolfboyft/movement-timer-api
Action timer API
2022-12-02 09:31:13 -08:00
Myk 08f267955c
Merge pull request #2454 from cppcooper/channel-safely
Implements plugin: channel-safely v1.1.1b
2022-12-01 16:49:32 -08:00
Josh Cooper e316b7aa75 Implements plugin: channel-safely v1.1.1b 2022-12-01 16:36:32 -08:00
Tachytaenius 0836962007 Rename [xyz]CategoryActionTimers to [xyz]GroupActionTimers in action timer API 2022-12-01 23:24:04 +00:00
Myk e7ca1cb0c1
Merge pull request #2452 from lethosor/dwarfmonitor-cursor-widget-config
Dwarfmonitor cursor widget config
2022-12-01 11:49:17 -08:00
Kelly Kinkade 437335454d make autohauler not be a chatty cathy
INFO -> TRACE
2022-12-01 09:00:50 -06:00
Tachytaenius f863b9807a Add action timer API input validation 2022-12-01 13:34:54 +00:00
Tachytaenius 7f54a77ed9 Continue work on unit action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius 16ef4f8313 Rename action_type_group to unit_timer_action_type_group 2022-12-01 13:34:54 +00:00
Tachytaenius fa589b5764 Make progress with action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius 0f8ce360ac Make first pass of action timer API 2022-12-01 13:34:54 +00: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
Kelly Kinkade 9b5a693637 death to whitespace 2022-11-30 21:46:35 -06:00
Kelly Kinkade cea9e144c6 switch autolabor & autohauler to debugging api
might need to change some of the message levels, time will tell
2022-11-30 21:46:35 -06:00
Kelly Kinkade 8d95d20852 remove stray whitespace 2022-11-30 21:43:56 -06:00
Kelly Kinkade 9fcb20888f realign autohauler and autolabor with each other
also clean up C++ code smells in both
2022-11-30 21:43:56 -06: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
lethosor 3b7206777e
spectate: avoid printing or taking action on load when disabled 2022-11-30 20:31:59 -05:00
Myk 760fbf7b8f
Merge pull request #2434 from cppcooper/channel-safely
Implements plugin: channel-safely v1.1b
2022-11-30 08:28:08 -08:00
Myk Taylor 8900bc84d8
fix crash in buildingplan
when a player cancels out of placing a building type with plan mode
enabled and then immediately switches to placing a different building
type where plan mode is not enabled, the placement errors array would be
erroneously cleared and allow placement of the building. this would
cause DF to crash if there were no materials available to build the
building with.
2022-11-30 04:51:11 -08:00
Kelly Kinkade bc502f8132 correct QUERN construct labor 2022-11-29 18:32:57 -06: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
Josh Cooper 3999ed5c72 Implements plugin: channel-safely v1.1b 2022-11-28 17:10:55 -08:00
myk002 23e467deaf
use consistent bounds checking style in hotkeys 2022-11-28 15:50:05 -08:00
myk002 4e7b4dc554
show hotkeys bound to number keys, F11, and F12 2022-11-28 15:37:01 -08:00
Myk 344ed4312b
Merge pull request #2111 from cppcooper/channel-safely
Channel safely
2022-11-23 12:41:50 -08:00
Myk e943b4ed31
Merge pull request #2413 from myk002/myk_resume
Turn down resume plugin
2022-11-23 11:29:56 -08:00
Myk a900b1789a
Merge pull request #2414 from myk002/myk_mouse_buttons
Make mouse button event behavior conform to docs
2022-11-23 11:29:20 -08:00
Josh Cooper c6b15b1ccb Implements plugin: channel-safely v1.2a 2022-11-22 11:03:28 -08:00
myk002 24dc879888
adapt library code to newly correct mouse events 2022-11-21 17:36:46 -08:00
myk002 cb338e4257
remove resume plugin
all functionality has been migrated to unsuspend
2022-11-21 15:27:40 -08:00
Josh Cooper 8a0999ffdc Implements plugin: channel-safely v1.1a 2022-11-21 12:39:26 -08:00
Josh Cooper 5352649b88 Implements plugin: spectate v1.0.3b
test
2022-11-21 12:26:40 -08:00
Josh Cooper 4a0abd1915 Implements plugin: spectate v1.0.2b 2022-11-21 12:26:40 -08:00
Josh Cooper b99e948b8a Implements plugin: spectate v1.0.1a 2022-11-21 12:26:40 -08:00
Josh Cooper 40cbe4fe88 Implements plugin: spectate v1.0a 2022-11-21 12:26:40 -08:00
Josh Cooper ec6cd8d53a Implements plugin: spectate v0.5
Fixes spectate not starting with the first job

Updates spectate.cpp

- refactors features/settings to under a `Configuration` struct with a global variable `config`
- refactors existing `config` => `pconfig`
- moves plugin logic, mostly, to namespace SP (spectate plugin)
- utilizes debugging log macros
- updates status format
- refactors status print code into a separate function
2022-11-21 12:26:27 -08:00
Josh Cooper 9959ef1b36 Implements plugin: channel-safely v1.0.1a 2022-11-21 09:26:55 -08:00
Josh Cooper 6c68e72295 Implements plugin: channel-safely v1.0a 2022-11-21 09:26:55 -08:00
Josh Cooper c4e55f1cc9 Implements plugin: channel-safely v0.6.1.3 2022-11-21 09:26:55 -08:00
Josh Cooper 3cb186a62f Implements plugin: channel-safely v0.6.1.2 2022-11-21 09:26:55 -08:00
Josh Cooper 8847ed23b4 Implements plugin: channel-safely v0.6.1.1 2022-11-21 09:26:55 -08:00
Josh Cooper a9f0021927 Implements plugin: channel-safely v0.6.1 2022-11-21 09:26:55 -08:00
Josh Cooper 92537bc459 Implements plugin: channel-safely v0.6 2022-11-21 09:26:55 -08:00
Josh Cooper fcd6696768 Implements plugin: channel-safely v0.5.3 2022-11-21 09:26:55 -08:00
Josh Cooper 84ffeef092 Implements plugin: channel-safely v0.5.2 2022-11-21 09:26:55 -08:00
Josh Cooper 9db0d809fa Implements plugin: channel-safely v0.5.1 2022-11-21 09:26:55 -08:00
Josh Cooper e5dbaac85d Implements plugin: channel-safely v0.5 2022-11-21 09:26:55 -08:00
Josh Cooper c2d346fc84 Implements plugin: channel-safely v0.4 2022-11-21 09:26:55 -08:00
Josh Cooper a8dcfeead9 Implements plugin: channel-safely v0.3.1 2022-11-21 09:26:55 -08:00
Josh Cooper b7ee01108e Implements plugin: channel-safely v0.3 2022-11-21 09:26:55 -08:00
Josh Cooper 3a6205d19e Removes extra EOF lines 2022-11-21 09:26:55 -08:00
Josh Cooper bd6c748d00 Implements plugin: channel-safely v0.2 2022-11-21 09:26:55 -08:00
Josh Cooper 22414f26fa Implements plugin: channel-safely v0.1 2022-11-21 09:26:55 -08:00
myk002 5967e5c9e0
fix up cleanowned status message
print unit id instead of raw pointer and display "wear level" instead of
just "wear"
2022-11-20 16:03:08 -08:00
Myk ff447d46bd
don't overcount units for misery widget
addendum to #2366
2022-11-20 09:45:23 -08:00
Kelly Kinkade 2bc2dd8f5b remove unnecessary 'const'
wouldn't it be nice if there was a single C++ standard that all compilers adhered to?
2022-11-20 10:21:32 -06:00
Kelly Kinkade 2453b34194 refactor common labor state map table
eliminates code duplication
2022-11-20 10:09:52 -06:00
Kelly Kinkade aa78c626f9 collect autolabor plugins into one directory
these plugins all share code, moving them into a common directory will make refactoring the code shared between them more straightforward
2022-11-20 01:58:08 -06:00
Kelly Kinkade 99f919c3dc autofarm: insert missing output flushes
insert calls to std::flush as appropriate

fixes #2365
2022-11-15 20:00:27 -06:00
Kelly Kinkade d191993376 autolabor/autohauler: add labor entries for 241-243
add missing entries for jobs 241, 242, and 243

this was fixed in labormanager in PR #1566 (see #1561) but was never addressed in autolabor or autohauler

should close #1994
2022-11-15 13:13:33 -06: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 bdf201c670
ensure keybinding shows up in hotkeys command
not overlay
2022-11-14 16:46:03 -08:00
myk002 47d7c477b3
show menu hotkey for list but not on the menu 2022-11-14 16:46:02 -08:00
myk002 a2efc41fef
use new anywhere hotkey and filter out own hotkey 2022-11-14 16:46:02 -08:00
myk002 de20603080
implement CLI commands 2022-11-14 16:46:02 -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 8bf987e7db
use a more natural ordering for modifier keys 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 66d3409a65
solve concurrency issues 2022-11-14 16:46:01 -08:00
myk002 5d29da31b0
rework hotkeys plugin to support the widget 2022-11-14 16:46:01 -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 56cf7e945c
use anywhere hotkey so the overlay can be invoked 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 6e0a583e8d
enable overlay from init scripts; self-enable bad
loading other plugin modules during plugin_init results in those other
plugin modules not getting initialized properly. specifically, their
DFHACK_PLUGIN_LUA_FUNCTIONS and commands don't get added to their lua
module namespaces.
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 94c6bc8063
refactor generic lua function caller to Lua ns 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
lethosor 2d40626912
Change other instances of "0x%p" to "%p"
Followup to c0f9488b61
2022-11-10 16:02:28 -05:00
myk002 c0f9488b61
fix double "0x" when printing address in probe 2022-11-10 10:48:04 -08:00
Myk eac7fac8e9
Merge pull request #2389 from myk002/myk_gui_anywhere
[Gui] add "anywhere" keybinding guard
2022-11-09 15:48:04 -08:00
myk002 8cd9c88981
use new standard "anywhere" hotkey in Gui 2022-11-09 14:34:39 -08:00
myk002 d95a5ac238
add string_to_int to MiscUtils.h 2022-11-09 11:55:29 -08:00
Myk 8a47c103fc
Merge pull request #2379 from myk002/myk_overlay_reset_and_simplify
[overlay] reset implementation and simplify with lovely preprocessor macros
2022-11-09 10:32:15 -08:00
myk002 dce312b83b
Revert "use preprocessor foreach to reduce boilerplate"
This reverts commit 5e845ec7983555a3577e583038da824902dbf477.
not compatible with our MSVC toolchain. we can revert this revert once
we update MSVC for the steam release
2022-11-09 09:37:51 -08:00
myk002 69673c2472
remove unused (and unusable) instance fields 2022-11-09 09:37:43 -08:00
myk002 2f81c3a696
use preprocessor foreach to reduce boilerplate 2022-11-09 09:37:43 -08:00
myk002 78e5c072e5
reset overlay code to skeleton 2022-11-09 09:37:43 -08:00
myk002 3a713c6368
update devel plugins 2022-11-07 17:52:39 -08:00
myk002 5b9c18fc3c
migrate string fns from uicommon to MiscUtils
and clean up some leaky usings
2022-11-07 15:36:16 -08:00
Myk 1e31cc197d
Merge branch 'develop' into spectate 2022-10-26 12:30:58 -07:00
Myk c7f4f57367
Merge pull request #2360 from myk002/myk_automaterial_render
[automaterial] fix render errors with box boundaries
2022-10-26 12:25:48 -07:00
Myk e60cbfc743
Merge pull request #2361 from myk002/myk_zjump_twbt
[mousequery] fix z-level jumps when clicking quickly
2022-10-26 12:25:40 -07:00
Josh Cooper 9dc199dac3
Apply suggestions from code review 2022-10-25 15:01:57 -07:00
Josh Cooper 48e0b53adc
Fixes logical error in new failsafe 2022-10-24 17:59:29 -07:00
Josh Cooper 606f204b82
Apply suggestions from code review 2022-10-24 17:57:14 -07:00
myk002 7b2119c4d1
remove debug statement that doesn't help 2022-10-24 17:03:28 -07:00
myk002 8b61a17009
prevent z-level from changing after box select
if the player clicks the mouse too fast after finishing a selection
2022-10-24 12:46:31 -07:00
myk002 01c46f7a7e
fix z-level jumps when clicking quickly
this happens when TWBT is enabled and multilevel is > 0
getDepthAt() returns inconsistent values for the same position, leading
to a mismatch when we "unshift" the coordinates to account for render
depth
2022-10-24 12:44:25 -07:00
myk002 6a57cc4450
fix render errors with automaterial box boundaries 2022-10-24 12:41:17 -07:00
Josh Cooper a39d3f20a7 Replaces unsigned integer for freq map's value to ensure reasonable p's 2022-10-21 00:02:42 -07:00
Josh Cooper f0baaff9db Merge remote-tracking branch 'origin/spectate' into spectate 2022-10-20 23:53:20 -07:00
Josh Cooper f66dd6f404 Implements change requests
- removes redundant `if (df::global::ui)` checks; and tested to ensure no segfaults cropped up like in the past times I've removed these
- removes useless `if (pause_lock)` pause lock is set when plugin initializes, even if pause lock was left null (since we technically don't need it, and that was the point of the null check) it still would be a useless check (actually an impediment preventing functionality)
- removes disabled interpose code
- removes lua linkage
- updates doc

extra:
- surrounds user input for tick frequency with `std::abs()` not that we would have ended up with a negative value, but it was probably a typo and this is easier than printing an error or letting it underflow past max int (on most systems)
2022-10-20 23:52:30 -07:00
Josh Cooper fd747525d0
Removes atomic_bool from pause.h
this is 99% for triggering CI
2022-10-15 22:58:21 -07:00
Josh Cooper 851ff10959 Fixes uninitialized warning 2022-10-14 18:23:48 -07:00
Josh Cooper 9b1541add5 Merge branch 'develop' into spectate 2022-10-14 17:41:34 -07:00
Josh Cooper 45ac340f37 Finalizes spectate update
- Fixes for state transitions that were found broken. eg. plugin disabled -> enable auto-unpause feature -> enable plugin (auto-unpause will not truly be enabled; similar transitions were broken)
- Adds a commented out lock for if the pause code is ever adopted into the core API, as to enable many mods to use the `World::SetPauseState()` without walking over each other, and in the case of `reveal hell` also be able to avoid needing to set the state every tick in onupdate
- Revises the usage docs with `enable|disable|set` syntax
2022-10-14 17:02:43 -07:00
Josh Cooper 736313d16b Extends pause api 2022-10-14 15:55:44 -07:00
Josh Cooper aa64dea61d Revert "Includes pause.h in spectate's cmake"
This reverts commit 2c9ce5f316.
2022-10-14 15:44:52 -07:00
Josh Cooper d53746ed48 Fixes various state transition edge cases 2022-10-14 15:43:39 -07:00
myk002 20c0b75f8b
reduce size of overlay button 2022-10-14 13:20:50 -07:00
myk002 fea0ce0718
fix cvs quoting 2022-10-14 13:11:26 -07:00
Josh Cooper 7c769ebb9c Disables pause locking and announcement manipulation code in spectate 2022-10-14 12:42:20 -07:00
Josh Cooper ff072bf0c2 Updates spectate's pause locking 2022-10-14 12:41:36 -07:00
myk002 b1bf80e585
support "group" file split strategy for blueprint 2022-10-14 12:27:24 -07:00
Josh Cooper ffed499057 Swaps static variable instantiation order in pause.cpp 2022-10-13 23:22:51 -07:00
Josh Cooper c9165f8999 Adds the pause.h World::Update() to onupdate, to keep settings locked 2022-10-13 11:57:05 -07:00
Josh Cooper 2c9ce5f316 Includes pause.h in spectate's cmake
as to.. "changes to the header file will trigger recompliation"
2022-10-13 11:52:39 -07:00