Commit Graph

166 Commits (5f498b1b78f2e13a449d993db339c96e85edee38)

Author SHA1 Message Date
Warmist ff4278d04e Removed debug spam, added support for "HAS_MATERIAL_REACTION_PRODUCT" type reactions. 2012-12-09 23:07:13 +02:00
Warmist 6c4f163a5e Merge branch 'master' of https://github.com/angavrilov/dfhack
Conflicts:
	NEWS
2012-12-09 14:25:31 +02:00
Warmist 4f5fdebbe9 furnaces added and custom reactions. 2012-12-09 00:53:03 +02:00
Warmist 3bce3838af Advfort now supports workshops and siege weapons >:) 2012-12-03 21:49:17 +02:00
Alexander Gavrilov 9703d3fd8f Detect mouse press events for lua. 2012-12-02 14:43:23 +04:00
Alexander Gavrilov 58239e97ed Implement the history graph in the workflow status screen. 2012-12-01 16:50:03 +04:00
Alexander Gavrilov 0bfe006016 Try to reimplement the inventory monitor by falconne in lua.
For no other reason than to provide a complete example of lua
interface for a native plugin :)

TODO: paint the graph in the right pane.
2012-11-30 19:10:17 +04:00
Warmist 471d15ba4c New building selection dialog. 2012-11-29 20:49:16 +02:00
Alexander Gavrilov 5ea26d9cae Only show the advanced new constraint dialog on Shift-Enter.
Upon reflection it is a bit too scary to be always shown.
2012-11-29 16:27:51 +04:00
Alexander Gavrilov 94e6690586 Don't complain about fake input tokens in simulateInput. 2012-11-29 13:37:16 +04:00
Alexander Gavrilov 2953e4c386 Implement a dialog to specify a workflow constraint with all features. 2012-11-17 20:32:39 +04:00
Alexander Gavrilov 6cf85b4318 Abstract the back-end from the binpatch script, and use in gui/assign-rack. 2012-11-12 12:26:31 +04:00
Warmist 0e4df55364 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-11-11 12:46:55 +02:00
Alexander Gavrilov bd8c59462c Add documentation for the core lua gui library stuff. 2012-11-04 17:06:32 +04:00
Alexander Gavrilov 9598316855 Add a native pen object for lua with a more checked behavior. 2012-11-03 20:06:33 +04:00
Warmist 6be65690f7 Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge 2012-11-02 20:29:27 +02:00
Alexander Gavrilov e353f5f03e Add a script to complement the weapon rack binary patch. 2012-10-27 20:16:27 +04:00
Alexander Gavrilov 1f994295b8 Consider assigned vehicles in use, and tweak text color rendering. 2012-10-25 13:20:41 +04:00
Alexander Gavrilov 8eebfa007c Tweak the workflow gui script to make the UI operate smoother. 2012-10-25 12:15:18 +04:00
Alexander Gavrilov a1dd31aab3 Tweak the mechanics for showing and rendering lua screens.
- Place new screens below any dismissed ones on top.
- When asked to render a dismissed lua screen, call render() on its
  parent to avoid producing a black screen frame when unlucky.
2012-10-25 12:09:39 +04:00
Alexander Gavrilov 59ec9b304e Implement adding workflow constraints from gui/workflow. 2012-10-24 21:49:30 +04:00
Alexander Gavrilov 616c57257d Support changing the constraint ranges from the workflow gui script.
TODO: implement creating completely new constraints.
2012-10-24 19:25:06 +04:00
Alexander Gavrilov 46938625fd Pass the hotkey keys to dwarfmode from overlays, and fix gui/workshop-job. 2012-10-21 21:45:51 +04:00
Alexander Gavrilov dee0c97584 Add a gui script for viewing and changing job_item properties. 2012-10-20 21:57:36 +04:00
Warmist da92fb9a1c Start of dfusion module. Fixed small error in memscan.lua and start of custom embark command. 2012-10-17 21:43:44 +03:00
Alexander Gavrilov 1e2570f4cb Add an extremely simple item selection dialog by wrapping ListBox. 2012-10-17 21:42:06 +04:00
Alexander Gavrilov 4f7895f571 Support restricting the set of materials presented in the dialog. 2012-10-17 18:29:15 +04:00
Alexander Gavrilov 0046b093f7 Link visibility and event handling order.
- Hidden widgets don't receive events.
- Children handle events in top to bottom order.
2012-10-17 11:49:11 +04:00
Alexander Gavrilov ad4f9908fb Extract a generic filtered list widget from the materials dialog. 2012-10-17 10:41:50 +04:00
Alexander Gavrilov b14e4e97f5 Natively support entry icons in the List widget. 2012-10-17 09:41:48 +04:00
Alexander Gavrilov 023dc82564 Implement a material selection dialog. 2012-10-16 18:33:00 +04:00
Alexander Gavrilov d336abfd97 Add label and list widgets, and switch stock dialogs to them. 2012-10-16 14:18:35 +04:00
Alexander Gavrilov abfe2754fb Start implementing common widgets for lua screens. 2012-10-15 20:03:18 +04:00
Alexander Gavrilov 33bd8103de Extract an abstract View superclass from Screen to handle widget trees. 2012-10-15 15:30:00 +04:00
Alexander Gavrilov 33aead34b4 Implement a more automated search mode based on keys for some globals. 2012-10-02 19:53:16 +04:00
Alexander Gavrilov bd3d3061ae Add a module that wraps the dialogs as "blocking" coroutine functions. 2012-10-02 18:01:28 +04:00
Alexander Gavrilov abf503fcdc Fix the ListBox dialog to behave in a more consistent way. 2012-10-02 16:45:17 +04:00
Alexander Gavrilov 9d5adf1b2f Update the lua screens to use the new key display string API function. 2012-10-02 15:25:59 +04:00
Alexander Gavrilov 62cde96724 Add a script to reclassify 'individual choice' weapons based on unit skill. 2012-09-29 17:21:49 +04:00
Warmist a02a120e2d Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge
Conflicts:
	dfhack.init-example
	library/xml
	plugins/CMakeLists.txt
2012-09-18 23:46:16 +03:00
Alexander Gavrilov 57b72831ca Overhaul the concept of lua 'class' initialization yet again. 2012-09-18 20:30:25 +04:00
Alexander Gavrilov 94b729579e Reindent to remove tabs. 2012-09-09 10:53:08 +04:00
warmist 8e0f3e3bce Added ListBox to gui.dialogs
A listbox class. Can be either filled with table of strings, or string+callback tables. Needs some code revision :)
2012-09-09 02:28:07 +03:00
Alexander Gavrilov bfa6ed3e08 Support setting the target area for the siege engine. 2012-09-08 13:46:02 +04:00
Alexander Gavrilov 325e294af2 Start the siege engine plugin with code to highlight obstacles on screen. 2012-09-07 19:54:32 +04:00
Warmist 0db873493a Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge
Conflicts:
	dfhack.init-example
2012-09-07 17:24:38 +03:00
Alexander Gavrilov d5ea05ebb8 Implement a pressure plate sensitive to machine power.
When built next to a gearbox, it will monitor its powered state.
2012-09-06 12:37:29 +04:00
Warmist 3dcaee7cb9 Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge 2012-09-05 21:55:17 +03:00
Warmist 6fc10fc268 Fixed embark anywhere to use more sane code segment search 2012-09-05 21:52:54 +03:00
Alexander Gavrilov 8d876cc7d9 Support renaming some buildings, and arbitrary units, via gui script. 2012-09-05 21:27:42 +04:00
Alexander Gavrilov 57086ac56e Add stock MessageBox and InputBox dialog screens for lua scripts. 2012-09-05 19:45:45 +04:00
Alexander Gavrilov 27f169e298 Provide a partial application utility function to lua.
Implemented in C++ for efficiency.
2012-09-05 17:37:36 +04:00
Warmist 532839a4d5 Embark anywhere ported 2012-09-01 10:54:45 +03:00
Warmist 7cabf1b843 Small bug fix 2012-09-01 10:13:08 +03:00
Warmist d784d4bc40 Static code segment search for memscan.lua 2012-09-01 10:05:31 +03:00
Alexander Gavrilov 41ad42d0fd Expose the liquids plugin engine to lua, and make a wrapper gui script. 2012-08-25 10:37:03 +04:00
Alexander Gavrilov d52c54cc76 Pull some minor stuff from mechanisms into main libs. 2012-08-24 13:49:22 +04:00
Alexander Gavrilov 296f82b02f Try using the Objective-C 'alloc + init' idiom for lua screen objects. 2012-08-24 13:28:34 +04:00
Alexander Gavrilov e825dc5ddb Tweak the API for current viewscreen, and dispatch show/dismiss from C++. 2012-08-24 13:20:08 +04:00
Alexander Gavrilov c6c5ad56c9 Track lua event listener count, and let the C++ host know.
This allows completely avoiding the call overhead if there
are none. The downside is that the event object now has to
be a userdata with lots of metamethods.
2012-08-23 19:27:28 +04:00
Alexander Gavrilov cf4b8a0196 Improve viewport manipulation utilities and support scroll in mechanisms.
I.e. allow the user to scroll around with cursor keys,
provided that keeps the cursor still visible.
2012-08-22 22:29:01 +04:00
Alexander Gavrilov 7987ea9a98 Put some compatibility features into the base dfhack viewscreen. 2012-08-22 18:18:19 +04:00
Alexander Gavrilov 6e8b68fb29 Add yet one more frame style. 2012-08-22 13:06:06 +04:00
Alexander Gavrilov 2b79582e99 Implement a policy of marking DFHack-owned screens with a signature. 2012-08-22 12:28:01 +04:00
Alexander Gavrilov 15235cc938 More work on utilities for making lua viewscreens. 2012-08-21 19:40:37 +04:00
Alexander Gavrilov 451e965936 Add a Painter class for lua viewscreens, and extract other utilities.
Painter clips to an arbitrary rectangle window, and
tracks current cursor and color state.
2012-08-21 11:35:39 +04:00
Alexander Gavrilov 601a3a7927 Add a script that implements a linked mechanism browser. 2012-08-20 23:04:01 +04:00
Alexander Gavrilov cacb082416 Add a stupid example of a lua-controlled viewscreen. 2012-08-19 17:53:25 +04:00
Alexander Gavrilov 30f71ff510 Implement support for lua-backed viewscreens. 2012-08-19 14:27:44 +04:00
jj c20951c30b Merge branch 'master' of git://github.com/angavrilov/dfhack 2012-07-06 20:37:14 +02:00
jj 8e17ebbefc add SC_PAUSED / SC_UNPAUSED onStateChange events 2012-07-05 18:03:02 +02:00
Alexander Gavrilov 9046fed648 Add documentation for some utility functions implemented in lua. 2012-06-24 12:51:19 +04:00
Alexander Gavrilov bd37cc09c5 Update the Lua API document with info about scripts. 2012-06-22 20:17:55 +04:00
Alexander Gavrilov 65e82f7c12 Support controllable error presentation verbosity in lua code.
Use qerror to squash stack traces and location prefix.
2012-06-22 16:36:50 +04:00
Alexander Gavrilov 752da9ced5 Move formatting newly-found globals for symbols.xml to lua code. 2012-06-21 21:26:25 +04:00
Alexander Gavrilov f207714d42 Add finders for enabler, gps and init. 2012-06-21 21:08:36 +04:00
Alexander Gavrilov ed4acbdedb Add a searcher for current_weather, using a prepared save. 2012-06-20 10:12:26 +04:00
Alexander Gavrilov bd5b675fa5 Add ui_menu_width finder, tweak instructions, and add a case for win exe. 2012-06-18 21:11:54 +04:00
Alexander Gavrilov dc6cb61979 Add more offset finders to the script. 2012-06-17 18:44:59 +04:00
Alexander Gavrilov 67536da2fe Add an interactive script finding a limited subset of linux offsets. 2012-06-16 19:51:15 +04:00
Alexander Gavrilov 7eb4fc19de Make dfhack.run_script usable from other scripts, and document it. 2012-06-14 12:46:12 +04:00
Alexander Gavrilov efdb709284 Support creating rollers and stops with dfhack.buildings.constructBuilding. 2012-05-17 00:19:29 +04:00
Alexander Gavrilov 642a625586 Support custom buildings in dfhack.buildings.getFiltersByType.
Also document it and constructBuilding in Lua API docs.
2012-05-13 18:39:00 +04:00
Alexander Gavrilov 87ec1de891 Improve lua api for tile biome access. 2012-05-13 13:58:41 +04:00
Alexander Gavrilov d6813c7690 Change xml submodule pointer. 2012-05-08 19:08:34 +04:00
Alexander Gavrilov 191071beb6 Add more lua scripts. 2012-05-08 12:55:06 +04:00
Alexander Gavrilov fca618ff1b Support default building inputs in dfhack.buildings.constructBuilding. 2012-05-06 19:11:29 +04:00
Alexander Gavrilov 9ad8d767b4 Add code for adding abstract buildings and removing constructions. 2012-05-06 19:09:11 +04:00
Alexander Gavrilov d4d6349f48 Expose builtin commands to dfhack-run, and add lua script support.
Move builtin command implementation to Core methods, and fall
back to hack/scripts/*.lua for otherwise unrecognized commands.
2012-05-04 19:47:18 +04:00
Alexander Gavrilov 4cffb6428d Update building creation code with new knowledge, and fix zone.
Also, document new lua api, and add a more convenient wrapper.
2012-05-01 18:55:30 +04:00
Alexander Gavrilov 2303a25bde Implement unconstructed building instance creation and linking into world.
For more flexibility, the base api is split into 3 phases:
alloc, setSize, and construct. No support for non-actual
buildings like stockpiles and activity zones at the moment.
2012-04-29 21:07:39 +04:00
Alexander Gavrilov 16ee049664 Split off the burrows api from Maps and Units. 2012-04-26 12:56:28 +04:00
Alexander Gavrilov 763a301b4f Add a few more lua api functions, documentation, and unit sort orders.
Units::getProfessionName appears to work correctly for
everything except nobles.
2012-04-23 21:30:53 +04:00
Alexander Gavrilov 125cd6622a Support sorting units in many more ui contexts. 2012-04-22 19:22:00 +04:00
Alexander Gavrilov 2ef321a208 Preserve the original lua global environment for modules.
The intent is to prevent accidental pollution of module namespaces
by globals defined from careless scripts running in the _G environment.
2012-04-21 20:15:57 +04:00
Alexander Gavrilov 4af051bab3 Add a few more unit orderings, and a way to reverse direction. 2012-04-21 16:53:17 +04:00
Alexander Gavrilov 3282ac3db2 Add a hotkey command that sorts units in lists using lua comparators. 2012-04-21 15:43:52 +04:00
Alexander Gavrilov 3beb2ebf25 Export the onStateChange event to core lua context & add some docs. 2012-04-17 11:45:09 +04:00
Warmist 17d5b2de04 Multiline interpreter.
To test try writing for k,v in pairs(table) do <enter> print(k) <enter> end
Also prompt could be changed (couldn't think of anything better).
2012-04-16 18:46:20 +03:00
Alexander Gavrilov 1e64a6a2f6 Make dfhack.lineedit automatically interact with RunCoreQueryLoop.
It still falls back to the original waiting mode if yield fails.
2012-04-16 18:05:42 +04:00