Commit Graph

141 Commits (e13aae2ce19e20c37850bac12c2c1e59d1f1803d)

Author SHA1 Message Date
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 b4c040291f
Document dfhack.run_command() and related functions/constants 2020-11-20 22:23:29 -05:00
lethosor 8319d71dff
Improve documentation of reqscript, dfhack_flags, etc. 2020-11-15 18:42:14 -05:00
lethosor 2e4f23d49f
Merge remote-tracking branch 'myk002/myk_isplannedbuilding' into develop 2020-11-13 14:09:36 -05:00
lethosor 8cb38ecf5b
Merge remote-tracking branch 'myk002/myk_metalhead_mario' into develop 2020-11-13 14:04:30 -05:00
myk002 efdba8b596
add buildingplan.isPlannedBuilding 2020-11-13 10:18:54 -08:00
myk002 93d9ac76be
update docs 2020-11-12 23:08:22 -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 9c13b497bf
Merge remote-tracking branch 'myk002/myk_automaterial_buildingplan_fix' into develop 2020-11-11 23:36:42 -05:00
lethosor 0958fdbf4b
Document script paths
Ref #1690
2020-11-10 00:48:27 -05: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 4301252ddf
Merge remote-tracking branch 'myk002/buildingplan_refactor2_squashed' into develop 2020-10-23 13:51:54 -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 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 9d2abafefc Merge branch 'buildingplan_refactor' into buildingplan_refactor2_squashed 2020-10-11 12:11:51 -07: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 2382247398
Update some docs links to use HTTPS 2020-10-09 19:17:59 -04:00
lethosor 28efe1d2a7
Add local TOCs to Lua API plugin sections 2020-10-09 12:20:13 -04:00
lethosor c2280356cb
Set language of some code blocks to enable syntax highlighting 2020-10-09 01:15:42 -04:00
Myk Taylor 4d7f4d80ad prep buildingplan for core algorithm changes
player-visible changes
- removed text that showed up if you used the wrong hotkeys. no other
  dfhack screen does this, and it seems unneeded. can add back if others
  think otherwise, though

internal changes
- 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-04 20:05:08 -07:00
lethosor 3c037ef52a
Clean up plugin mkmodule/require explanation 2020-09-24 00:16:32 -04:00
Myk Taylor 72fb6d09d6 Merge remote-tracking branch 'upstream/develop' into buildingplan_isenabled 2020-09-23 19:21:16 -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
Myk Taylor 12769de232 revert dup isEnabled and document real isEnabled 2020-09-22 23:24:20 -07:00
Myk Taylor c6111ba017 expose if buildingplan is enabled to lua 2020-09-20 16:38:26 -07:00
lethosor 8779ca0659
Merge remote-tracking branch 'myk002/quickfort_civzones' into develop 2020-08-21 00:34:26 -04:00
lethosor 7bac4c89c4
Update API docs for setJobCooldown and removeWorker, use "cooldown" for consistency with C++
Ref http://www.bay12forums.com/smf/index.php?topic=164123.msg8180385#msg8180385
2020-08-19 17:12:40 -04:00
lethosor 19a4d1df5a
Merge remote-tracking branch 'myk002/quickfort_buildingplan' into develop 2020-08-17 23:43:05 -04:00
Myk Taylor e4a35514ab document buildingplan Lua API 2020-08-15 23:03:49 -07:00
Myk Taylor e546d3eec3 rename is_civzone to the more general allow_wall 2020-08-15 20:13:48 -07:00
Myk Taylor dd3ff7252d document additional parameter to checkFreeTiles 2020-08-15 17:26:38 -07:00
Myk Taylor 1e9562bd76 add target label for xlsxreader 2020-08-10 23:35:38 -07:00
Myk Taylor a2279cc9a7 update docs in Lua API.rst too 2020-08-10 14:37:59 -07:00
Myk Taylor 4a04273fae document xlsxreader functions 2020-08-09 09:28:19 -07: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 411176c75e
Add rudimentary map docs with tile descriptions from @AtomicChicken
Based on http://www.bay12forums.com/smf/index.php?topic=164123.msg8158676#msg8158676
2020-07-28 00:38:22 -04:00
lethosor fddda1818e
Merge remote-tracking branch 'myk002/quickfort_skeleton' into develop 2020-07-24 22:08:24 -04:00
Myk Taylor e61f2b7451 update Lua API.rst 2020-07-23 22:44:34 -07:00
lethosor 655b363238
Fix some spelling errors 2020-07-22 02:23:29 -04:00
lethosor 0cc6f40bd6
Update API docs (#1607) 2020-07-17 17:35:09 -04:00
lethosor 1f1bb5a055 Update Lua API docs for ref_target field, add tests 2020-07-14 02:57:30 -04:00
lethosor 7e620b09a4 Update dev-intro
Doxygen was removed in 787c54d8a
2020-07-08 23:38:18 -04:00
lethosor 24d64175fb Remove top-level links from TOCs 2020-07-08 02:13:37 -04:00
PatrikLundell 121497a466 Propagated getBookTitle to Lua 2020-01-26 11:47:47 +01:00
Warmist b43ecf5fb1
Update Lua API.rst
Remove trailing whitespace
2018-12-06 15:20:33 +02:00
Warmist 96d11d1f54 Add to docs 2018-10-12 13:48:53 +03:00
lethosor 7afa3690bf Add support for DFHACK_BUILD_ID
Used for BuildMaster builds, for example
2018-07-11 11:47:55 -04:00
lethosor 2dac3c53c7 Add stress cutoffs to Units module, fix dwarfmonitor/manipulator
Fixes #1292
2018-07-09 15:59:12 -04:00
Pauli 03f8a04a43 Document and changelog entry for printall_recurse 2018-06-30 22:40:03 +03:00
lethosor 5bfe4fd72b Mention Lua API-only plugins in Plugins.rst 2018-06-20 11:22:21 -04:00
lethosor 26427c2e43 Document cxxrandom in Lua API.rst (#1204) 2018-06-20 11:13:40 -04:00
lethosor 808e795960 Document new Units API functions from #1297 2018-06-14 10:37:31 -04:00
Pauli 86b0fb3b92 Add lua profiler module documentation 2018-06-06 19:19:10 +03:00
lethosor 759ba5c420 New tweak: kitchen-prefs-all
Options to toggle brew/cook for all listed items

Also fixed kitchen lua docs and moved kitchen search option
2018-05-17 19:47:56 -04:00
lethosor d502dce2db Add TOC to "C++ function wrappers" section 2018-05-17 19:36:02 -04:00
lethosor 17ba492992 Add some exclusion functions to Kitchen module, expose to Lua, fix build 2018-05-17 19:34:03 -04:00
lethosor 521da26c40 Document all dfhack.gui functions 2018-05-14 21:35:32 -04:00
lethosor e9ec08f419 Add Buildings::getRoomDescription(), moved from search plugin, +cleanup 2018-05-12 17:00:21 -04:00
lethosor c15571caa0 Move isRouteVehicle, isSquadEquipment from workflow to Items module 2018-05-12 14:49:30 -04:00
lethosor a34b34d3cb Move a few item functions from autotrade/stocks into DFHack::Items 2018-05-12 12:04:46 -04:00
Daniel Brooks 1eac476db7 add a note to the docs 2018-05-08 16:04:35 -07:00
lethosor 2202c781f7 Add a dfhack.script_help() function to assist scripts 2018-01-25 10:55:00 -05:00
lethosor f59a91a0db Add more warnings about Lua's delete()
Closes #1170
2017-12-16 16:17:11 -05:00
lethosor 7721a142d8 Add a basic Lua console API 2017-12-07 14:43:27 -05:00
lethosor 1b706bc162 Add anchor for luasocket 2017-11-23 16:34:22 -05:00
lethosor 6100074ba6 Add a few MD5 and thread functions to the Lua API 2017-07-01 17:39:17 -04:00
lethosor cc0220f030 Add a "key" option to EditField and FilteredList 2017-06-27 21:10:14 -04:00
lethosor 10e13c532a Add "tweak cage-butcher" and some extra Building module functions
* Buildings::markedForRemoval()
* Buildings::getCageOccupants()

Closes #906
2017-06-25 15:27:21 -04:00
lethosor 27343e3253 Add unit and tile visibility functions 2017-06-10 21:54:08 -04:00
lethosor 9b63c451b1 Expose getUnitsInBox to Lua 2017-06-10 21:03:42 -04:00
lethosor ae1aa49089 Add map parameter to Lua paintTile() and use in Painter
Also updated gui/siege-engine.lua
2017-06-02 12:42:51 -04:00
lethosor d41ff4e836 Implement map parameters for Lua paintString() and fillRect(), update docs 2017-06-01 16:17:59 -04:00
lethosor d3c496cc2b Add getSelectedPlant() and related functions
Currently only works with the center tile of multi-tile trees
2017-05-05 14:45:46 -04:00
lethosor c1e44c178f Add on_click/on_rclick handlers to widgets.Label
Closes #919
2016-05-09 21:30:34 -04:00
PeridexisErrant 4536f3df71 Fix last typos 2016-04-11 09:30:05 +10:00
PeridexisErrant c09b4f6b47 Tweak developer docs 2016-04-11 09:30:05 +10:00
PeridexisErrant 7ebd50697e Better formatting, TOCs in Lua API.rst 2016-04-11 09:30:05 +10:00
PeridexisErrant b8bb8d0c92 Finish formatting, linking NEWS.rst 2016-04-11 09:30:05 +10:00
lethosor b97d33ca28 moveToBuilding improvements
- Don't set in_building by default when use_mode is 0 (consistent with most vanilla DF items)
- make use_mode optional and default to 0 (including in Lua API)

Resolves #885
2016-04-05 11:43:02 -04:00
Warmist bc02e2a844 Add auto-gears mode for building hacks for automatic animation and gear positions. 2016-03-13 13:37:36 +02:00
lethosor d087f4f741 Expose process MD5/PE to Lua (useful in export-dt-ini) 2015-12-27 14:59:18 -05:00
PeridexisErrant aee2655886 Merge branch 'develop' of https://github.com/DFHack/dfhack into NEWS-cleanup 2015-10-28 10:07:13 +11:00
PeridexisErrant fb2fdd0e89 Format more of the NEWS file 2015-10-20 13:29:46 +11:00
PeridexisErrant 18d2bc6183 Format 0.40.24-r3 changelog
Including plenty of nice hyperlinks and a formatting which looks a lot
better in HTML (but still decent in raw text, too).
2015-10-19 14:59:35 +11:00
lethosor 9ebaa4d695 Update Lua API.rst 2015-10-17 15:45:49 -04:00
lethosor d3dbc6225a Implement getViewscreenByType() in lua 2015-10-17 15:11:04 -04:00
PeridexisErrant 9d1baac6a0 Note issue with multidimensional arrays in lua
Closes #597.  Also remove old TODO in readme.
2015-09-23 10:38:46 +10:00
PeridexisErrant a5d1211fea Moved documentation to docs directory 2015-09-22 18:15:07 +10:00