Commit Graph

12469 Commits (d7b67e9528b1e5296ee959eb564304e6ab631af8)
 

Author SHA1 Message Date
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
lethosor fa70c829ad
Merge remote-tracking branch 'lethosor/github-actions-plugins' into develop 2020-10-21 20:23:41 -04:00
lethosor a0ff7c393b
Give artifacts a unique name 2020-10-21 20:14:16 -04:00
lethosor 9357c9f888
Only upload test artifacts if tests ran 2020-10-21 20:13:50 -04:00
lethosor 00f012d334
GitHub Actions: add alternative plugin builds 2020-10-21 17:58:17 -04:00
lethosor 26505acb70
Add some cross-references and clean up 2020-10-20 01:18:25 -04:00
lethosor 2bd0e938ad
Move pathable to Lua API docs 2020-10-20 01:11:01 -04:00
lethosor 84973d1fb8
Sort plugins in Lua API.rst 2020-10-20 01:06:47 -04:00
lethosor 3a200fcd92
Expand `probe` documentation 2020-10-20 01:01:02 -04:00
Myk Taylor 05d2e5b65c update case study: order-dependent aliases
since the example I had used no longer exists now that we have
parameterized aliases. I had to find another example in the industry
blueprints. I made it a proper "tip" and added more explanation as well.
2020-10-18 13:49:11 -07:00
Myk Taylor 914c24d873 use new quickfort features in dreamfort
parameterized aliases and configurable zones
2020-10-17 22:22:32 -07:00
Myk Taylor ea5a5414c9 document (and use) parameterized aliases 2020-10-17 22:21:50 -07:00
Myk Taylor 6c3bac2d6c document extended zone configuration syntax 2020-10-17 22:20:39 -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
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