Commit Graph

10006 Commits (cdd5a61455b3e714853c3ff9bb40a082099615cc)
 

Author SHA1 Message Date
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
lethosor 895fa59c79
Merge branch 'buildingplan_refactor' into develop 2020-10-16 00:05:01 -04: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
Myk Taylor e4b6fb0ff4 Merge branch 'buildingplan_refactor' into buildingplan_refactor2_squashed 2020-10-12 22:39:55 -07:00
Myk Taylor 435bd50327 Merge remote-tracking branch 'upstream/develop' into buildingplan_refactor 2020-10-12 22:39:34 -07:00
lethosor cc159909e2
Mention some third-party Linux packages
Closes #20
2020-10-13 00:24:29 -04:00
lethosor 88fd25e63c
Update scripts 2020-10-12 23:51:51 -04:00
lethosor 5487c00e2c
Merge remote-tracking branch 'myk002/quickfort_docs' into develop 2020-10-12 23:47:03 -04:00
Myk Taylor f754164a1d document new query_unsafe option 2020-10-11 22:16:42 -07:00
Myk Taylor bdf2bbc22e remove reference in docs to unimplemented behavior
I never implemented ignoring spaces in alias definitions, and now that
I've thought more about the consequences, I don't plan to : ) Ignoring
spaces would lead to conusing behavior when players attempt to give
names with spaces to buildings
2020-10-11 22:15:01 -07:00
lethosor 93520b4b00
dwarfmonitor prefs: fix segfault if item_subtype is null for some item types 2020-10-11 20:45:56 -04:00
Myk Taylor 9d2abafefc Merge branch 'buildingplan_refactor' into buildingplan_refactor2_squashed 2020-10-11 12:11:51 -07:00
Myk Taylor bccf8a64c0 Merge remote-tracking branch 'upstream/develop' into buildingplan_refactor 2020-10-11 12:11:20 -07: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 8d85261cdc
Update changelog (#1658 and more of #1652) 2020-10-09 22:20:07 -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 b972246d16
Update docs (#1652) 2020-10-09 21:43:58 -04:00
lethosor e2de358f00
Merge remote-tracking branch 'PassionateAngler/zone-qol-improvements' into develop 2020-10-09 21:43:04 -04:00
lethosor 5e63e6e103
Convert some links to use :wiki: 2020-10-09 19:24:52 -04:00
lethosor 2382247398
Update some docs links to use HTTPS 2020-10-09 19:17:59 -04:00
lethosor c9609ad590
Make `createitem inspect` consistent for PLANT_GROWTH items 2020-10-09 12:45:49 -04:00
lethosor 9eff62a05d
Update docs for #1659 2020-10-09 12:38:45 -04:00
lethosor 691b35bf04
Merge remote-tracking branch 'quietust/createitem' into develop 2020-10-09 12:35:40 -04:00
lethosor 28efe1d2a7
Add local TOCs to Lua API plugin sections 2020-10-09 12:20:13 -04:00
lethosor f10bc7678e
Allow breaking long inline code snippets if necessary 2020-10-09 12:16:25 -04:00
lethosor c2280356cb
Set language of some code blocks to enable syntax highlighting 2020-10-09 01:15:42 -04:00
lethosor a5f85e256d
Default to a basic DFHack-specific pygments lexer (supporting comments and prompts) 2020-10-09 00:27:22 -04:00
lethosor 09f262a0c2
Disable syntax highlighting in code blocks by default
The default is Python, which none (that I have found) of our code blocks use
2020-10-08 23:30:59 -04:00
lethosor 2fdd6f7aed
Convert to explicit ref targets (occasionally section links) and fix messages() -> message() 2020-10-08 23:19:16 -04:00
lethosor f54eb9627d
Merge remote-tracking branch 'myk002/quickfort_case_study' into develop 2020-10-08 01:01:37 -04:00
lethosor 6d18ef865d
Merge remote-tracking branch 'myk002/quickfort_docs' into develop 2020-10-08 00:45:27 -04:00
lethosor c1e5ecf773
Merge branch 'github-actions' into develop 2020-10-08 00:23:24 -04:00
lethosor 600ea23f12
Update scripts and authors 2020-10-08 00:23:01 -04:00
lethosor 61796a0a7b
Replace set-env with new environment file 2020-10-07 20:19:37 -04:00
Myk Taylor 3e2dd2a396 quickfort docs: dreamfort case study 2020-10-07 14:01:22 -07:00
lethosor c199a2349c
Install libgtk2.0-0 (for Ubuntu 20.04) 2020-10-07 12:25:26 -04:00
lethosor ea931897b9
Replace GCC 9 with GCC 10 on Ubuntu 20.04 2020-10-07 12:04:38 -04:00
lethosor c4da68b3a3
Add GCC 4.8 to build matrix 2020-10-07 11:39:45 -04:00
lethosor 673d1c623f
Give build jobs better names 2020-10-07 11:35:49 -04:00
Myk Taylor 293bc66f4a update quickfort docs
default dig
notes blueprints
buildingplan
2020-10-06 22:41:54 -07:00
lethosor 615bb81da6
Add two GCC versions to build matrix 2020-10-07 00:37:35 -04:00
lethosor d850389cde
Adjust sphinx flags 2020-10-07 00:31:32 -04:00
lethosor 73d2a4c9e3
Move docs build to separate job 2020-10-07 00:28:51 -04:00
lethosor 9ba677a38b
Update xml
dfhack/df-structures#410
2020-10-06 22:03:13 -04:00
lethosor 2b00a45833
Merge branch 'quickfort-docs-rst' into develop 2020-10-06 22:02:26 -04:00