Commit Graph

728 Commits (75f772028f8d0d64645ddcbcd742488f7dc5593f)

Author SHA1 Message Date
lethosor af92b3ae1f Fix some confirm plugin issues and add a simple configuration UI
- Detect null pointers in trade-related functions
- Fix typo/issues pointed out by @dscorbett
- Reorder includes
2015-11-21 20:58:49 -05:00
lethosor b7dd93b6e8 Implement most of the confirm plugin in Lua
This should make resolving future issues easier, although implementing
new confirmations in lua isn't possible yet (each one requires a line
in confirm.cpp).

This also resolves an issue with note-delete and route-delete, with
dfhack/df-structures@1bc4f61
2015-11-21 19:01:35 -05:00
PeridexisErrant 80e4b8d3df Remove DFusion plugin and script system
It's been four years since meaningful updates, and in that time
alternatives have emerged to almost everything.  Any remaining
functionality to replace is on the issue tracker.

Simpler is better, for users and developers, and removing a legacy
system makes it easier to understand how DFHack works.
2015-11-17 11:13:19 +09:30
expwnent fabcfcd921 Fixed trailing whitespace. 2015-09-21 17:42:30 -04:00
Warmist 80fd4b1365 Some additions and fixes.
Added new functions: select, set(non)blocking, isBlocking.
Set default to non-blocking. Added "would block" to ignored errors.
2015-09-16 09:57:22 +03:00
warmist 7639420455 Update luasocket.lua 2015-08-17 10:07:20 +03:00
Warmist d9c50d677f A lua interface for csockets in a spirit of luasocket 2015-08-15 15:09:12 +03:00
lethosor a90f3c3d67 stockpiles: Restrict characters in filenames when saving
Previously, it was possible to save outside of the stocksettings
directory or fail to save in a nonexistent subdirectory (e.g. when
a stockpile name had slashes in it).

Resolves #621
2015-07-29 14:17:14 -04:00
lethosor 8145a04944 dwarfmonitor: Add mouse cursor widget
Suggested by @ragundo
2015-06-15 13:42:29 -04:00
lethosor 7581bda7d5 Update dwarfmonitor documentation and NEWS 2015-06-13 21:50:15 -04:00
lethosor 93c9a41a3a Reimplement dwarfmonitor widgets in Lua (and improve customizability)
Widget positions and a few other options (e.g. date formats) can be
specified in dfhack-config/dwarfmonitor.json on a per-instance basis.

Related changes:
* Fixed an issue loading JSON files from Lua
* JSON files in dfhack-config (only dwarfmonitor.json currently) are
  no longer copied into the DF directory when building DFHack. This
  keeps developers' personal settings intact, but will require
  copying over changes made to DFHack's copies manually.
* Fixed incorrect config path in dwarfmonitor help
2015-06-13 21:15:43 -04:00
Ross Morgan-Linial 3001053cef Change tabs to spaces. 2015-05-07 21:51:03 -07:00
Ross Morgan-Linial 7aac9a8fb8 Improve workflow handling of plant reactions
Makes workflow understand "seeds of any plant", "thread of any plant",
"drink of any plant", "powder of any plant", and "liquid of any plant"
when counting items.

Changes workflow's handling of the built-in plant reactions to
understand that they always produce plant products, and that they also
produce seeds.

This means that you can set a target for, for example, "powder of any
plant", and workflow will use a milling job to produce that.
2015-05-07 20:49:29 -07:00
Ben Lubar d182b6c1c3 only create the stocksettings directory when it is requested 2015-03-24 17:46:49 -05:00
Eric Wald 23707db1d3 Fixed ballistic arrow head orders 2015-03-15 16:38:59 -06:00
Eric Wald 6bfaa8d35d Better way to handle obsolete job types. 2015-03-15 16:37:35 -06:00
Eric Wald 81c2a6e79f Refactoring a table insert into reaction_entry. 2015-03-15 16:02:29 -06:00
Eric Wald 11d65b4f2d Always clear reactions when loading.
This removes a minor potential for memory leaks.
2015-03-15 15:43:46 -06:00
Eric Wald d18bd3e2a5 Preventing a stockflow error message in Arena mode 2015-03-15 14:08:47 -06:00
lethosor 0b912f54be Fix field name in lua/stockflow.lua
From DFHack/df-structures#39
2015-03-01 17:32:25 -05:00
Warmist e9ab892369 Building hacks changes.
Fixed buildings not consuming correct value of power. Added way to ignore unpowered state. Added setPower/getPower to change how much power building uses on the fly.
2015-02-24 15:37:38 +02:00
lethosor 10cfef0553 Fix whitespace issues 2015-02-14 22:53:06 -05:00
expwnent e5e0d93ef1 Added modtools/reaction-product-trigger. 2015-02-02 02:39:05 -05:00
Casey Link b0e0bbda9b stockpiles: show proper cased names in filter list 2014-12-05 16:53:19 +01:00
Casey Link 52f4cb3fc1 stockpiles: load prompt uses typing + filtering 2014-12-05 14:49:40 +01:00
Casey Link 332566f6a1 stockpiles: disable gui/script when plugin is disabled 2014-12-05 13:27:58 +01:00
Casey Link 7e6066daf2 stockpiles: user friendly error handling
* display errors in the GUI when necessary
* handle older versions of DFHack without the persist module
2014-12-05 12:35:24 +01:00
Casey Link b6118d272c stockpiles: integrate gui plugin into dfhack.init-example 2014-12-05 12:35:24 +01:00
Casey Link 1cde8cffa4 stockpiles: implement GUI controls 2014-12-05 12:35:19 +01:00
expwnent c927f0fa3c Merge remote-tracking branch 'lethosor/patch-5' 2014-09-16 17:25:28 -04:00
Lethosor 1ea1b50790 job_material_category -> dfhack_material_category
Fixes #330 - submitted by @finndibaenn
2014-09-14 11:13:26 -04:00
Eric Wald 83b1317173 Switching stockflow to the internal getStockpileContents.
This should speed it up over checking each space individually, but no longer counts spaces with empty assigned bins and barrels as empty.
2014-09-07 15:07:57 -06:00
Eric Wald 1ce07c063d Canonical way to find the stockpile by id. 2014-09-07 14:55:34 -06:00
Quietust 5c0588dd34 Merge pull request #299 from eswald/stockflow-40
Stockflow Repairs
2014-08-28 14:56:04 -05:00
Eric Wald 632b0b85bd Speeding up the stockpile item count.
kr0pper reports two orders of magnitude speed improvement for check_pile() by using the map tile item cache.
2014-08-23 17:49:03 -06:00
Eric Wald 8495bddc2d Removing an obsolete workaround 2014-08-23 17:46:35 -06:00
Warmist f04b93210a Bug fixing.
Fixes for "tab" in hacked buildings.
2014-08-16 16:58:09 +03:00
Warmist 6868cab1fe Exposed dfhack.jobs.linkIntoWorld. Simplified eventful and gui.dwarfmode for sidebar use/creation. 2014-08-16 16:58:01 +03:00
Eric Wald f5d50adf0d Removing the leaves check for stockpile acceptability.
That item type no longer exists in DF 0.40; such items will now always be considered properly stored by any stockpile they're on.
2014-08-15 21:41:23 -06:00
Eric Wald 2ebebaf62f Deleting old stockflow records.
Once a stockpile has been removed or abandoned, its persistent configuration is obsolete.
2014-08-03 15:07:04 -06:00
Eric Wald 1b1475fb94 Warning about mismatched stockflow entries.
For the most part, mismatches should only happen if the reaction list has changed between world loads, which means either the raw files or the plugin files have been changed.  For now, such entries are ignored, though in some cases it might be possible to recover a new order number by searching through the reaction list.
2014-08-03 15:04:28 -06:00
Eric Wald 2db1c9d722 Moving the global job_types cache into the two functions that use it.
It's mostly an artifact of a misunderstanding, anyway.
2014-08-03 14:57:20 -06:00
Eric Wald 1aafa206bc Localizing a few Lua variables.
It seems like the globals could be localized, too, but I'm not quite sure what that would accomplish.
2014-08-02 18:08:13 -06:00
Eric Wald ad4d545036 Ignoring the removed job types for DF 0.40+
The version check allows the plugin to work with DF 0.34, just in case.
2014-08-02 17:58:36 -06:00
expwnent 81c87d0921 EventManager: INTERACTION event for unit interactions. 2014-07-03 04:55:12 -04:00
expwnent fe875f7c02 Cleaned up eventful.lua.eventType. 2014-06-30 03:16:45 -04:00
expwnent 961d033ade EventManager: unload event for convenience. 2014-06-29 10:03:55 -04:00
expwnent 8e7e87ac73 Added UNIT_ATTACK event to EventManager and exposed it to Lua. 2014-06-28 02:31:34 -04:00
expwnent 7313c18a2a EventManager/eventful: added ON_REPORT event and exposed it to Lua. 2014-06-23 09:15:46 -04:00
Alexander Gavrilov 63254df6dd Fix obvious issues in stockflow.
- Duplicate definition of a function now in uicommon.h
- Assertion failure due to missing core suspend claim.
- Incorrect way of accessing the civ entity.
- Accessing nil objects in the lua module if filter matches nothing.
- Lua module breaking on reload('plugins.stockflow').
2014-06-03 12:57:45 +04:00
Alexander Gavrilov e7292379f7 Merge branch 'stockflow' of git://github.com/eswald/dfhack into develop 2014-06-03 12:13:56 +04:00
Alexander Gavrilov ae8d630cfa Merge remote-tracking branch 'warmist/dev-rendermax' into develop 2014-05-11 15:44:29 +04:00
Eric Wald 144eff4cf2 Clearing the center column.
The official order selection screen has an extra space to the left of the orders on the right-hand side.
2014-05-04 15:36:42 -06:00
Eric Wald 4fc850445d Magic Number Reduction: Display placement constants 2014-05-04 15:28:53 -06:00
Eric Wald 767badbfb9 Magic number reduction: Clothing flags
Bone and shell are used to construct BARRED and SCALED armor/clothing items, for some reason.
2014-05-04 15:13:25 -06:00
Eric Wald bdb22235af Magic number reduction: Job types 2014-05-04 15:02:12 -06:00
Eric Wald 2d5f7e4022 Magic number reduction: Persistent storage
Replaces explicit indices into the ints field of Stockflow persistent storage objects with enumerated values.
2014-05-04 12:55:00 -06:00
Eric Wald 723cfcf28e Attempting to repair an order object leak.
Now frees manager_order objects in the reaction_list when the plugin is disabled or the world unloaded.  However, there may still be orders leaked elsewhere.
2014-05-04 12:35:10 -06:00
Alexander Gavrilov 13584f08c5 Merge remote-tracking branch 'warmist/dev-buildings' into develop 2014-05-04 19:52:01 +04:00
Alexander Gavrilov 63d256c1e9 Adjust siege engine targeting weights.
Stop shooting at leaving caravan guards for one.
2014-04-17 22:10:43 +04:00
Alexander Gavrilov 55cea36c76 Use the new API to produce combat reports for aimed siege engine attacks.
This requires exposing the actual operator unit to lua code.
2014-04-15 19:50:23 +04:00
Eric Wald b9ed7a5cc2 Stockflow plugin v1.0 2014-04-13 15:19:03 -06:00
Warmist eb999cd0ad Another file forgotten 2014-03-07 19:58:27 +02:00
Warmist a52451a97a eventful: added support for custom workshops and a convenience function to interpose side panel generation 2014-03-07 19:41:50 +02:00
Warmist 834350012f building-hacks: added lua convenience function, made impassible tile fix optional. 2014-03-07 19:41:50 +02:00
Warmist 94b5961372 New plugin: building-hacks. Allows workshops to block liquids and consume mechanical power, connect to machines. 2014-03-07 19:41:49 +02:00
expwnent 329741f235 EventManager: added EQUIPMENT_CHANGE event and exposed it to lua. 2013-10-24 19:32:52 -04:00
expwnent e81c060627 Added EVENT_MAX just in case someone wants it. 2013-10-20 15:24:31 -04:00
expwnent 6ef360f4d6 Merge remote-tracking branch 'warmist/dev-EventManager-lua' into 0.34.11-r4 2013-10-20 14:52:40 -04:00
Warmist 0dff26aa23 Added lua interface (in eventful) for EventManager module. 2013-10-20 21:44:07 +03:00
jj 308e7b6820 fix renamed pregnancy_ptr/mystery to pregnancy_genes/caste 2013-08-10 01:57:11 +02:00
Alexander Gavrilov f3e357d161 Fix detection of GET_MATERIAL_FROM_REAGENT results in workflow.
Dereference pointer to strings. Also just return undefined
material instead of skipping the product if it still fails.
2013-04-30 19:42:51 +04:00
Robert Heinrich fd265b37d6 Added lua GUI front-end for autobutcher. 2013-04-24 23:37:05 +12:00
Warmist ab6a993689 friendship.lua: removed debug printing 2013-02-15 20:21:33 +02:00
Warmist bb5d98e895 friendship fixes. 2013-02-15 20:19:55 +02:00
Warmist 1990e2caf7 Small fix to adv site creation, now it's really centered around you 2013-01-07 02:01:59 +02:00
Warmist c22c4d009c Added convenience functions to eventful (see Lua API.rst) 2013-01-03 20:30:51 +02:00
Warmist 08f454cc81 Removed old reactionhooks.lua 2012-12-14 16:41:59 +02:00
Warmist e46d434c25 Missing lua file for eventful. 2012-12-14 16:33:26 +02:00
Warmist ddceabbfb7 Merge branch 'master' of git://github.com/jjyg/dfhack 2012-12-12 18:58:11 +02:00
jj 6bc791d985 follow df-structure rename unit.unknown8 + able_stand_* 2012-12-10 22:50:33 +01:00
Warmist 6c4f163a5e Merge branch 'master' of https://github.com/angavrilov/dfhack
Conflicts:
	NEWS
2012-12-09 14:25:31 +02:00
Kelly Martin 05dce0d2f1 Fix inadvertently prematurely terminated block comment. 2012-11-30 21:24:18 -06:00
Alexander Gavrilov 2cb594ba89 Tweak the workflow lua api: include history in output of listConstraints. 2012-11-30 14:48:05 +04:00
Warmist 57b69da1f0 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-11-29 12:13:28 +02:00
Warmist 2c9b560872 Made dfusion not stop df on input. 2012-11-28 22:13:28 +02:00
Warmist 2bbcfe912a Site spawner added to adv_tools 2012-11-26 21:04:17 +02:00
Alexander Gavrilov 2953e4c386 Implement a dialog to specify a workflow constraint with all features. 2012-11-17 20:32:39 +04:00
Quietust 55fcb7e3ca One more missed 2012-11-12 08:33:05 -06:00
Alexander Gavrilov c32f85d637 Merge remote-tracking branch 'warmist/master'
Conflicts:
	plugins/Dfusion/include/OutFile.h
2012-11-12 10:50:48 +04:00
Warmist ce8ada4419 More bug fixing 2012-11-11 22:14:00 +02:00
Warmist 3eb852a43b Added cheat commands to companion-order, (including rumrushers) 2012-11-11 21:18:59 +02:00
Alexander Gavrilov d5c31942b5 Add a way to only count locally-made items in workflow. 2012-11-11 15:56:31 +04:00
Warmist 0e4df55364 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-11-11 12:46:55 +02:00
Warmist 33f674eee2 Removed dfusion lua files. Updated plugins. 2012-11-11 12:33:54 +02:00
Warmist f1d4eac700 Pre-class remove 2012-11-11 11:58:43 +02:00
Alexander Gavrilov eb936c4ce0 Support milking and shearing in workflow. 2012-11-10 17:06:54 +04:00
Warmist 6be65690f7 Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge 2012-11-02 20:29:27 +02:00
Warmist 5295be5fdb More work done. Only bin-plugs left (and docs) 2012-11-02 20:28:08 +02:00
Warmist 296d1cf090 More scripts for dfusion. Only fixes left, and updating bin-plugins (friendship and migrants(??)) 2012-11-02 00:50:20 +02:00
Warmist ba071468dc New way of doing things!
Now using a class for menus, also no (non script) way to use bin-plugins.
2012-11-02 00:28:16 +02:00
Warmist 209d593f21 Another day, another commit. 2012-11-01 16:00:00 +02:00
Alexander Gavrilov 79d2cb1a5c Remove the C++ version of the job output deduction code and switch to lua. 2012-10-25 12:44:23 +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 59ec9b304e Implement adding workflow constraints from gui/workflow. 2012-10-24 21:49:30 +04:00
Alexander Gavrilov 09f8e8e419 Start working on gui for workflow. 2012-10-23 21:42:03 +04:00
Warmist a3f6e9e305 Small error fix 2012-10-21 13:46:12 +03:00
Warmist 86ec66c0fb More work on dfusion. Embark anywhere script separated. 2012-10-21 13:42:55 +03:00
jj 1f7a01d685 follow rename unit.military.squad_index to squad_id in df-structures 2012-10-20 22:35:39 +02: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 ba763b773d New tweaks for the military assign to position screen. 2012-09-28 18:01:17 +04:00
Warmist 0bee8c360e Reaction hooks experimentation. 2012-09-25 10:25:47 +03:00
Alexander Gavrilov f2fde21b10 Implement a slightly more sensible aiming AI in siege engine. 2012-09-17 14:45:22 +04:00
Alexander Gavrilov f06f9af6b8 Throw items from bins around in siege engine, like minecarts do. 2012-09-12 20:57:25 +04:00
Alexander Gavrilov 3a075f4bc7 Trivial siege engine aiming at units, with logic in lua. 2012-09-11 19:17:24 +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
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
Alexander Gavrilov 8d876cc7d9 Support renaming some buildings, and arbitrary units, via gui script. 2012-09-05 21:27:42 +04: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 b992b04f0b Remove stuff that shouldn't be in the core, and expose to lua what's left.
Specifically, any "if (verbose) { Core::printerr("blah") }" kind
of stuff definitely doesn't belong in the common API functions.
Also, ref->getUnit() is very expensive.

On the other hand, checks for crash-inducing conflicts with the
ui should be in the core api, and not in client plugins.
2012-05-20 21:57:45 +04:00
Alexander Gavrilov 4aa6dbdd00 Support sorting items in the trade screens.
Caveat: sorts items in containers independently from the container.
2012-05-18 19:18:49 +04:00
Alexander Gavrilov 16ee049664 Split off the burrows api from Maps and Units. 2012-04-26 12:56:28 +04:00
Alexander Gavrilov 6ab270d129 Retrieve unit noble position info, and use it in getProfessionName. 2012-04-26 12:03:56 +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 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 cb49c92b99 Allow plugins to export functions to lua with safe reload support.
- To ensure reload safety functions have to be wrapped. Every call
  checks the loaded state and locks a mutex in Plugin. If the plugin
  is unloaded, calling its functions throws a lua error. Therefore,
  plugins may not create closures or export yieldable functions.

- The set of function argument and return types supported by
  LuaWrapper is severely limited when compared to being compiled
  inside the main library.
  Currently supported types: numbers, bool, std::string, df::foo,
  df::foo*, std::vector<bool>, std::vector<df::foo*>.

- To facilitate postponing initialization until after all plugins
  have been loaded, the core sends a SC_CORE_INITIALIZED event.

- As an example, the burrows plugin now exports its functions.
2012-04-14 19:44:07 +04:00