Commit Graph

3268 Commits (48444afbd522434c41b58937c2e4d903be0a1917)

Author SHA1 Message Date
myk002 a6561911c1
error on unmatched printerr output during a test
- provides expect,printerr_match for matching printerr output
- fails tests if printerr is called outside the printerr_match wrapper
- changes api of expect.error_match to mirror the new printerr_match api
2021-04-04 17:37:33 -07:00
lethosor dfb52a2aba
Merge remote-tracking branch 'lethosor/command-prompt-fix-gui-scripts' into develop
Conflicts:
	docs/changelog.txt
2021-04-02 21:53:14 -04:00
lethosor 8129fdab4e
Merge remote-tracking branch 'myk002/myk_invalidate_scripts' into develop 2021-03-31 00:50:31 -04:00
Ben Lubar c06d1f8e52
tagged union support for lua (#1818) 2021-03-30 15:55:06 -05:00
myk002 4e844f39ae
undo formatting change in script_environment 2021-03-29 12:29:15 -07:00
myk002 54a1e8d98a
move script_environment changes to test.lua 2021-03-29 12:23:53 -07:00
myk002 e4cab1b1c6
load scripts into different namespace for testing 2021-03-29 11:26:28 -07:00
DFHack-Urist via GitHub Actions badf471434 Auto-update submodules
library/xml: master
2021-03-29 07:07:32 +00:00
lethosor 2332009825
Merge remote-tracking branch 'myk002/myk_enable_luacov' into develop 2021-03-28 00:38:36 -04:00
lethosor 5e09fd882d
Fix Painter:viewport()
This works because Painter inherits from ViewRect. Unsure how this went unnoticed.
2021-03-27 16:55:48 -04:00
DFHack-Urist via GitHub Actions d5ba1a3d23 Auto-update submodules
library/xml: master
2021-03-27 07:11:38 +00:00
lethosor dbd35359be
Update xml 2021-03-24 22:07:37 -04:00
lethosor 62776f5568
Move `expect` functions to a separate file
This allows tests to test these functions without needing to include the test
wrapper directly (now ci/test.lua, formerly test/main.lua). Hopefully this
location is also more stable, similar to other libraries that are already tested.
2021-03-24 00:48:52 -04:00
lethosor e9efa6c961
Update xml, fix + improve robustness of unions.lua unit tests
- unit_action_fields(): handled primitive union members correctly
- unit_action_type(): added messages to make failures easier to diagnose
    - Also removed redundant checks that effectively checked that
      `enum.attrs[k] == enum.attrs[v]` - this is out of scope of union tests
2021-03-23 21:24:57 -04:00
DFHack-Urist via GitHub Actions d5d41cd374 Auto-update submodules
library/xml: master
2021-03-22 07:20:39 +00:00
lethosor 59b023c71d
Ensure that command-prompt is dismissed after a command creates a new screen
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
2021-03-21 20:42:50 -04:00
lethosor fcb17da223
Update authors (#1801), xml 2021-03-20 19:21:39 -04:00
lethosor e8f8471af4
Update xml
Ref DFHack/df-structures#423
2021-03-12 00:26:02 -05:00
myk002 8fe3dac0b1
only enable luacov for the core context 2021-03-10 23:31:30 -08:00
lethosor 890fd5c746
Merge remote-tracking branch 'myk002/myk_no_test_docstrings' into develop 2021-03-10 00:44:23 -05:00
DFHack-Urist via GitHub Actions 7ea44010e0 Auto-update submodules
library/xml: master
2021-03-09 07:15:44 +00:00
myk002 916a10d717
exempt lua test files from docstring requirements
and don't display them with 'ls'
2021-03-07 08:52:45 -08:00
myk002 49b34b52f5
update docs 2021-03-07 08:16:25 -08:00
myk002 754baa45b3
remove io overrides
they were causing side effects when writing luacov reports
2021-03-07 08:16:24 -08:00
myk002 ba6a02eb59
call luacov.runner.init directly and clean up dbg 2021-03-07 08:16:24 -08:00
myk002 418a8c5d21
propagate luacov debug hook through coroutines 2021-03-07 08:16:24 -08:00
lethosor 032cd64c10
Bump to r1, update submodules and changelog 2021-03-06 13:30:16 -05:00
lethosor 2f629f3b22
Update xml 2021-03-06 12:29:35 -05:00
DFHack-Urist via GitHub Actions fe175876aa Auto-update submodules
library/xml: master
scripts: master
2021-03-06 07:15:27 +00:00
DFHack-Urist via GitHub Actions e72125dbff Auto-update submodules
library/xml: master
scripts: master
2021-03-05 07:15:28 +00:00
DFHack-Urist via GitHub Actions 1698a80c49 Auto-update submodules
library/xml: master
scripts: master
2021-03-04 07:15:38 +00:00
DFHack-Urist via GitHub Actions 12ad300d64 Auto-update submodules
library/xml: master
2021-03-03 07:16:20 +00:00
DFHack-Urist via GitHub Actions c9545268fa Auto-update submodules
library/xml: master
2021-03-02 07:15:54 +00:00
DFHack-Urist via GitHub Actions ed3f11a31d Auto-update submodules
library/xml: master
2021-03-01 07:15:58 +00:00
DFHack-Urist via GitHub Actions 3185d4d6cc Auto-update submodules
library/xml: master
2021-02-28 07:15:33 +00:00
DFHack-Urist via GitHub Actions 5affbce13b Auto-update submodules
library/xml: master
2021-02-27 07:15:42 +00:00
lethosor cb9ed4ff0c
Merge remote-tracking branch 'myk002/myk_manipulator' into develop
Conflicts:
	docs/changelog.txt
2021-02-25 00:39:01 -05:00
DFHack-Urist via GitHub Actions 29db977bc7 Auto-update submodules
library/xml: master
scripts: master
2021-02-23 07:15:29 +00:00
Ben Lubar f3dd38a038
update structures 2021-02-18 18:18:34 -06:00
myk002 9e17bc938c
only set labor validity for the player civ 2021-02-17 09:16:49 -08:00
Ben Lubar 416fc32cb2
update scripts and structures 2021-02-15 11:49:34 -06:00
Ben Lubar ef1ac6ff40
update structures 2021-02-13 16:23:01 -06:00
myk002 55743fc43f
Merge remote-tracking branch 'upstream/develop' into myk_manipulator 2021-02-13 07:16:58 -08:00
lethosor 49b6e814db
Bump to beta1, update submodules 2021-02-10 21:08:45 -05:00
Ben Lubar a051077820
update structures 2021-02-10 18:54:12 -06:00
lethosor 625380a30b
Update submodules 2021-02-09 00:11:59 -05:00
myk002 6819ee9928
make alchemist flag valid for controllable civs 2021-02-05 16:45:39 -08:00
lethosor 06cd0c8437
Make libz.dylib optional on macOS
Thurin reports that the path specified does not exist on macOS 11.2, and DFHack links successfully without it.

CMake output from the find_package(ZLib) call in /CMakeLists.txt:
Found ZLIB: /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libz.tbd (found suitable version "1.2.11", minimum required is "1.1.2")
2021-02-01 23:23:19 -05:00
lethosor 353b8b71f5
Update xml 2021-01-31 13:24:21 -05:00
lethosor 233925ec75
Bump to 0.47.05-alpha0, update xml 2021-01-31 12:10:00 -05:00
lethosor 7e12f3fd3d
Fix off-by-one, adjust changelog, move scroll keys to consistent place
Ref #1748
2021-01-30 19:40:15 -05:00
lethosor 8967e98a33
Merge remote-tracking branch 'myk002/myk_scrollable_labels' into develop 2021-01-30 19:33:04 -05:00
lethosor 813a353ec2
Update xml 2021-01-30 18:08:32 -05:00
lethosor 4126585573
Merge remote-tracking branch 'lethosor/lua-runcommand' into develop 2021-01-29 20:27:38 -05:00
lethosor de6f9183fd
Fix changelog, replace a couple qerror calls with error
Ref #1746
2021-01-29 00:04:10 -05:00
lethosor d4aef78b26
Merge remote-tracking branch 'myk002/myk_getopt' into develop 2021-01-28 23:58:45 -05:00
myk002 32a0363f31
move identity check up a bit to avoid useless work 2021-01-24 08:57:56 -08:00
myk002 03719f58df
avoid infinite parentage when linking rooms 2021-01-24 08:52:34 -08:00
myk002 5a2181d55e
don't render overflow text 2021-01-13 22:02:22 -08:00
myk002 39d274b00e
address review comments 2021-01-12 23:42:53 -08:00
myk002 d4fbf4261f
address review comments 2021-01-12 23:27:14 -08:00
myk002 dac9538fd9
let navigation keys propagate
so other components can use them for simultaneous control
2021-01-11 15:02:12 -08:00
Myk Taylor 2797061b04
scroll Label text when height exceeds viewrect 2021-01-11 14:47:05 -08:00
Myk Taylor 175776812e
implement a nice API wrapper for getopt 2021-01-10 16:51:46 -08:00
Myk Taylor 3b45878d41
allow non-options in commandlines and return them
also call qerror() on error, not os.exit
2021-01-10 16:51:45 -08:00
Myk Taylor 20276be50f
check in unaltered version of alt_getopt 2021-01-10 16:51:45 -08:00
lethosor 69ce5d9e3f
Send runCommand output to correct output stream
e.g. when run with dfhack-run
2021-01-08 21:06:42 -05:00
lethosor 614ea739d0
Merge branch 'develop' into lua-runcommand 2021-01-08 20:45:23 -05:00
lethosor 462208cad3
Merge remote-tracking branch 'cvuchener/fix-loadlibrary-errormessage' into develop 2021-01-06 21:00:03 -05:00
Clément Vuchener e7748e3f73 Add an error message when LoadLibrary fails 2021-01-01 15:35:59 +01:00
lethosor b89fe222c7
Update xml 2020-12-29 23:47:44 -05:00
lethosor eb6957a167
Bump to 0.47.04-r4 and update submodules 2020-12-24 13:32:44 -05:00
myk002 3ba984c22c
only reset extents if they are unusable
this allows callers of Buildings::setSize() to "pre-initialize" the
extents to declare non-rectangular structures. this allows quickfort to
create non-rectangular stockpiles, farm plots, zones, etc. the extents
are still reset as before if the size of the building doesn't match the
caller's expectations.

this commit also fixes a memory leak when setSize() allocates memory for
extents, but the memory is not deallocated if the building is ultimately
invalid for some reason.
2020-12-16 11:10:47 -08:00
lethosor 159695775e
Merge branch 'develop' into lua-runcommand 2020-12-05 19:49:55 -05:00
lethosor 855ce84eca
Update submodules 2020-12-04 23:55:43 -05:00
lethosor af2255956a
Update submodules 2020-12-03 23:00:21 -05:00
lethosor fe0cd9a939
Make lineedit() fail sooner when another lineedit() call is active
Before, calling `dfhack.run_command('tiletypes')` from a `dfhack.timeout` callback would leave the console in a broken state, since raw mode was enabled but never disabled.

Only tested on Linux with a supported terminal.
2020-12-03 22:04:00 -05:00
lethosor a9bb11c145
Optimize Lua's internal.runCommand() when printing directly to the console
This also makes commands run with `run_command()` detect the console properly (notably used by `df2console()`)
2020-11-20 17:57:54 -05:00
lethosor fb44b26b47
Make utils.addressof() work for raw userdata 2020-11-19 21:32:42 -05:00
lethosor 8cb38ecf5b
Merge remote-tracking branch 'myk002/myk_metalhead_mario' into develop 2020-11-13 14:04:30 -05:00
myk002 76e8c495fe
revert skip_vector=true for now 2020-11-13 10:45:53 -08:00
myk002 fa126af1fd
undo unnecessary edits 2020-11-12 22:49:06 -08:00
myk002 10616a387f
cleaner mask-based implementation 2020-11-12 22:44:38 -08:00
myk002 02a86d761a
identify bars as non_economic items
allows Job::isSuitableMaterial() to match metal bars as a building
material
2020-11-12 19:10:06 -08:00
lethosor 913d860ae4
Use initial working directory as process path on Linux, and expose to Lua 2020-11-12 19:07:51 -05:00
lethosor 23b230495e
Merge branch 'develop' into cwd-handling 2020-11-12 18:44:05 -05:00
lethosor 421844dcb8
Update xml 2020-11-11 16:05:24 -05:00
lethosor eee33822e7
Update submodules 2020-11-09 23:41:53 -05:00
lethosor 3aa902bd25
Update submodules 2020-11-03 19:52:24 -05:00
lethosor 1d0e2dc6bc
Update extents handling to use building_extents_type 2020-11-03 14:56:16 -05:00
lethosor 3b4d6de454
Merge remote-tracking branch 'myk002/quickfort_building_types' into develop 2020-10-27 23:14:38 -04:00
Myk Taylor 186f28a94b filters for altars, display cases, and bookcases 2020-10-23 09:11:07 -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 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
lethosor ce7772a1c2
Add Filesystem::restorecwd()
This allows restoring the working directory to its original value, which may not actually be the DF root. See #1671, dfhack/scripts#152
2020-10-14 21:22:53 -04:00
lethosor b343d00800
Update to 0.47.04-r3 (authors, changelog, and submodules) 2020-10-10 17:31:30 -04:00
lethosor 9c8098b4f0
Expose to_search_normalized to Lua, add test, and use in ListColumn (most useful for the `stocks` plugin) 2020-10-10 01:40:00 -04:00
lethosor 1b53c0e748
Merge remote-tracking branch 'GitOnUp/normalize_search' into develop 2020-10-09 22:18:39 -04:00
lethosor d1eec9d338
Update xml 2020-10-09 21:44:16 -04:00
lethosor c9609ad590
Make `createitem inspect` consistent for PLANT_GROWTH items 2020-10-09 12:45:49 -04:00
lethosor c2280356cb
Set language of some code blocks to enable syntax highlighting 2020-10-09 01:15:42 -04:00
lethosor 9ba677a38b
Update xml
dfhack/df-structures#410
2020-10-06 22:03:13 -04:00
lethosor 17bc4cd365
Merge remote-tracking branch 'myk002/buildingplan_item_match' into develop 2020-09-29 20:04:02 -04:00
Myk Taylor c73b1f03af buckets can be lye- and milk-free
otherwise the bucket for wells can never be matched
2020-09-29 00:23:44 -07:00
Myk Taylor 3c51bb51ab remove references to non-existent vector ids 2020-09-28 23:14:13 -07:00
Myk Taylor 6cc1428199 Merge remote-tracking branch 'upstream/develop' into buildings_vectors 2020-09-28 23:13:13 -07:00
George Murray 74a3e0eddf Use a string and .reserve for normalizing instead of stringbuf 2020-09-24 15:22:58 -07:00
George Murray f5c3712778 Nicer formatting for the normalized character mapping table 2020-09-24 14:32:58 -07:00
George Murray 38c9c28250 Fix wrong variable usage in to_search_normalized 2020-09-24 10:52:03 -07:00
George Murray a3c565b243 Add to_search_normalized to search for characters with accents 2020-09-24 07:31:10 -07:00
lethosor dfac5bc143
Update gui.Painter docs, add sections to dfhack.screen, add more links, etc 2020-09-23 22:00:39 -04:00
lethosor 65b8071941
Use typedefs from xlsxio in PluginStatics.h
The typedefs in the header foward-declared new structs of the same names in the DFHack namespace, e.g. DFHack::xlsxio_read_struct. Apparently the constructors that used these typedefs are not inlined on Windows, so libdfhack was compiled with a constructor taking a "DFHack::xlsxio_read_sheet_struct", and xlsxreader was looking for a constructor taking just a "xlsxio_read_sheet_struct", which didn't exist.
2020-09-18 15:05:17 -04:00
Myk Taylor f837532b42 use more precise item vectors for bld item filters 2020-09-13 17:12:29 -07:00
lethosor 5aca88ef03
Update submodules 2020-08-29 20:02:33 -04:00
lethosor 3b5a82cc05
Change color of ListBox.select2_hint to grey to indicate enabled
Ref dfhack/scripts#185
2020-08-27 00:08:28 -04:00
lethosor c034276af5
Merge remote-tracking branch 'myk002/quickfort_filter' into develop 2020-08-21 00:34:34 -04:00
lethosor 8779ca0659
Merge remote-tracking branch 'myk002/quickfort_civzones' into develop 2020-08-21 00:34:26 -04:00
Myk Taylor 9a3e9d5b12 listbox filter can match strings after punctuation 2020-08-17 21:15:33 -07:00
Myk Taylor 8a438c2a55 allow row_height to be set from the ListBox class 2020-08-17 21:14:05 -07:00
Myk Taylor e546d3eec3 rename is_civzone to the more general allow_wall 2020-08-15 20:13:48 -07:00
Myk Taylor ae872e812f properly detect valid tiles for civzones 2020-08-15 17:24:12 -07:00
Myk Taylor bda678bcd4 add some explanatory text to the top of the header 2020-08-11 19:47:04 -07:00
Myk Taylor 39ae2d95fc 2nd attempt to solve compilation errors on windows 2020-08-11 17:06:28 -07:00
Myk Taylor 4f88bb4c3d attempt to solve compilation error on windows 2020-08-11 16:54:53 -07:00
Myk Taylor 0bda289b17 move xlsxreader identity statics to dfhack lib 2020-08-11 14:51:17 -07:00
Myk Taylor a41f7c0998 convert XlsxReader module to xlsxreader plugin 2020-08-09 08:54:42 -07:00
Myk Taylor b0cb40c5ea pass the cmake environment to deps 2020-08-08 22:42:50 -07:00
Myk Taylor 8d157012d0 build dfhack with verbosity on too 2020-08-08 22:04:49 -07:00
Myk Taylor cffac8ed93 fix line endings in XlsxReader.cpp 2020-08-08 20:07:54 -07:00
Myk Taylor 8c7fb808e1 get xlsxio Lua API working 2020-08-08 17:55:49 -07:00
Myk Taylor 18f4786458 Merge remote-tracking branch 'upstream/develop' into quickfort_xlsxio 2020-08-08 17:17:45 -07:00
Myk Taylor 89a6309788 build xlsxio and link it into dfhack, add lua api 2020-08-08 15:24:12 -07:00
lethosor f2b0f012c9
Bump to 0.47.04-r2 2020-08-08 14:53:24 -04:00
lethosor 8c5b21b7ee
Fix a couple warnings in the Units module (#1615) 2020-08-08 14:35:12 -04:00
lethosor 8f047530c4
Make Units::getRaceNameById and other ID-related functions available to Lua 2020-08-08 14:28:17 -04:00
lethosor 3b3b0be8c5
Update submodules, tweak changelog order 2020-08-08 02:00:12 -04:00
lethosor cb1b751988
Update submodules 2020-08-08 00:31:28 -04:00
lethosor f7fda8e7f5
Update changelog, authors, xml (#1615) 2020-08-08 00:06:59 -04:00
Ryan Bennitt c76f71cd46 Update xml library submodule 2020-08-07 22:20:11 +01:00
Ryan Bennitt 23c22b3b9d Merge branch 'develop' of https://github.com/DFHack/dfhack into feature/manipulator_goal 2020-08-07 22:17:32 +01:00
Ryan Bennitt a85b77e6f1 Retrieve goal string values from enum attributes and add new Units methods to Lua API and docs 2020-08-07 22:07:48 +01:00
lethosor 498fd9a1a6
Flush plugin warning messages 2020-08-06 22:45:46 -04:00
lethosor 7c2af344a1
Update changelog (#1564) and xml (dfhack/df-structures#400) 2020-08-06 02:04:23 -04:00
lethosor d3fc691858
Merge remote-tracking branch 'PatrikLundell/Units' into develop 2020-08-06 00:12:54 -04:00
Ryan Bennitt 9510dd52e1 Add Goal to Manipulator Detail Modes 2020-08-04 23:01:28 +01:00
lethosor dba7df7ab8
Add "delete word" support to Console-posix 2020-08-02 23:10:35 -04:00
lethosor bb66ef32a7
Tone down a couple warnings
There have been a few cases of people thinking these are more important than they actually are
2020-08-02 12:55:36 -04:00
lethosor d504e476c5
Update xml 2020-07-28 23:42:37 -04:00
lethosor f546816eb9
Update submodules 2020-07-28 00:39:59 -04:00
lethosor 289e0df828
Roll back to actions/checkout v1
v2 uses the wrong commit sometimes: actions/checkout#299
2020-07-27 01:12:14 -04:00