Commit Graph

773 Commits (14709e5d4598e11ddce6f9d2cce734528d842ca5)

Author SHA1 Message Date
Alexander Gavrilov 14709e5d45 Add an official core lua context, and allow plugins to send events to it.
- This context requires core suspend lock and asserts it in a few places.
- Special 'event' objects are introduced. They can be invoked as
  functions, in which case they iterate all their fields and call
  them as functions. Errors are printed and consumed.
- When a plugin is opened by the core context, events registered in
  a special array are linked to it. The system is organized so as to
  avoid even trying to pass the event to lua if the module isn't loaded.
2012-04-15 19:09:25 +04:00
Petr Mrázek c69af6ab9e Fix missing lua linkage in burrows plugin. 2012-04-15 01:58:02 +02:00
Petr Mrázek fa063e2936 Track structures, fix trivial problem in zone plugin 2012-04-15 00:35:59 +02:00
Petr Mrázek 45ca8c6ac1 Merge https://github.com/angavrilov/dfhack 2012-04-15 00:13:39 +02:00
Petr Mrázek c52eb517b0 Merge https://github.com/rh73/dfhack 2012-04-15 00:12:38 +02:00
Petr Mrázek fa6ecacda9 Merge https://github.com/warmist/dfhack 2012-04-15 00:12:06 +02:00
Robert Heinrich 9f95e67c75 tweak makeown: converts MERCHANT to TRADER (otherwise you can't assign jobs to kidnapped merchants.
zone: fixed a bug which could lead to units being assigned to more than one cage and/or accidentally marked for slaughter
2012-04-14 19:06:03 +02: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
Petr Mrázek bbf28eb33d Disable df2minecraft again. 2012-04-14 14:15:46 +02:00
Robert Heinrich 2100a95ad5 zone: fixed major derp (assign commands would accidentally free caged creatures). tweak: added cheat to kidnap caravan escorts (works fine even for other races, does NOT work for traders because they can't be assigned any labors for whatever reason) 2012-04-14 13:36:22 +02:00
Warmist a2a47c5d63 Fix to init (no need to add " around). Added experimental (crashy as hell) tools.project 2012-04-14 13:30:48 +03:00
Alexander Gavrilov 7a34a89f53 Add burrow subcommands to modify burrow unit and tile sets. 2012-04-14 14:12:59 +04:00
Alexander Gavrilov 2f54a48e63 Add a plugin that makes selected burrows auto-grow on digging. 2012-04-13 21:41:42 +04:00
Robert Heinrich 09608467c1 tweak fixmigrant: updated help text 2012-04-12 22:44:53 +02:00
Alexander Gavrilov 2d8611a480 Add core api for moving items between ground and containers. 2012-04-12 18:37:27 +04:00
Robert Heinrich 7331485b46 removed tweak-merchant and tweak-resident, combined both commands into tweak-migrant. added worn items to their uniform so they don't drop their clothes instantly 2012-04-12 14:40:39 +02:00
Robert Heinrich 2caf3fb064 tweak: removed stuff, added new command 'fixmigrants' which will deal with merchants (traders) and other types of bugged migrants. having more than one command for a bug which is basically the same makes no sense. 2012-04-11 22:29:56 +02:00
Petr Mrázek d874c3b538 Track stonesense 2012-04-11 21:33:45 +02:00
Robert Heinrich 42e4fa79c7 tweak clear-merchant, clear-resident: mark the clothes the migrants wear as "owned" (they still drop them, though. needs more fixes) 2012-04-11 21:07:54 +02:00
Robert Heinrich 09aad951a6 Merge branch 'master' of git://github.com/angavrilov/dfhack 2012-04-11 18:23:01 +02:00
Robert Heinrich 2cf078419b cprobe: list items worn by unit and checks if they are owned or not 2012-04-11 18:22:39 +02:00
Alexander Gavrilov 5d5502ae34 Update the item owner modification api and export it to lua. 2012-04-11 20:10:31 +04:00
Robert Heinrich e8e8f29328 regrass: fix 2012-04-11 17:01:20 +02:00
Robert Heinrich ae7ce9e5d7 zone: fixed assigning to pit/pond. regrass: look for grass events in the map block, increase amount of grass at map position instead of simply changing the tile type 2012-04-11 14:08:47 +02:00
Alexander Gavrilov c7b922250b More maps api refactoring and renaming.
getBlockAbs is a very confusing name; getTileBlock is better.
2012-04-11 12:01:27 +04:00
Alexander Gavrilov 59ddbfacb7 Implement item occupancy tracking in MapCache. 2012-04-10 20:19:41 +04:00
Alexander Gavrilov b15d2da819 Get rid of some obsolete api functions, and restructure MapCache. 2012-04-10 18:21:19 +04:00
Robert Heinrich 7d0cfb7e80 Merge branch 'master' of git://github.com/angavrilov/dfhack 2012-04-10 10:18:38 +02:00
Alexander Gavrilov 93c795cfc3 Job module api tweaks: add a namespace to match others and some funcs. 2012-04-10 11:43:36 +04:00
Robert Heinrich f8123c3b40 zone: can now assign to and from built cages. autobutcher: fixed initializing when getting SC_MAP_LOADED event while a map is currently running 2012-04-10 09:15:38 +02:00
Robert Heinrich b2d976b06b zone tool: added new filter 'nograzer' 2012-04-10 04:10:07 +02:00
Robert Heinrich 674337e3ae added tweak clear-resident which fixes bugged migrants and makes them proper members of the fortress. added tweak clear-merchant which assimilates merchants who linger at the map edge into the fortress. updated readme.rst 2012-04-10 00:22:38 +02:00
Robert Heinrich 37f3056fdd autobutcher: fixed behaviour of keywords 'all' and 'new'. (didn't work properly with watch, unwatch and forget) 2012-04-09 18:36:01 +02:00
Robert Heinrich 8ae774fbd5 fixed wrong description of the behaviour for using keyword 'all' in autobutcher (affects all races on the watchlist, not all races in your fort) 2012-04-09 16:02:03 +02:00
Robert Heinrich afba284283 autobutcher: added a forgotten ';' 2012-04-09 15:35:25 +02:00
Robert Heinrich b6adfaaf0a Merge branch 'master' of git://github.com/peterix/dfhack 2012-04-09 15:09:39 +02:00
Robert Heinrich a9ff1d0423 autonestbox and autobutcher store settings in the savegame. added command list_export to autobutcher which prints the current settings and watchlist in a batch file format (to allow importing settings to other savegames). updated readme.rst 2012-04-09 15:03:26 +02:00
Petr Mrázek e5213d77f6 Merge https://github.com/angavrilov/dfhack 2012-04-09 00:55:31 +02:00
Robert Heinrich f609aa0db7 zone: can now search for merchants (to allow pitting them). autobutcher: ignore merchant animals, ignore war/hunting creatures, fixed autowatch, stop spamming the console if there is nothing to report. updated readme.rst 2012-04-08 12:51:03 +02:00
Kelly Martin 53118bc986 Merge remote-tracking branch 'rossm/master' 2012-04-08 01:45:16 -05:00
Kelly Martin ad657c68a3 Leave merchant stuff alone, even if they're certainly dwarfs. 2012-04-08 01:07:29 -05:00
Kelly Martin de960e65f5 Stealing animals from traders is bad. 2012-04-07 23:25:40 -05:00
Kelly Martin 2e6ee0ac84 Don't assign dead animals to pastures. 2012-04-07 20:36:29 -05:00
Kelly Martin dac84080c0 Exclude grazing units from autonestbox to avoid starving da poor boids 2012-04-07 20:26:56 -05:00
Kelly Martin c89416a3f8 Merge remote-tracking branch 'rh73/master' 2012-04-07 12:23:31 -05:00
Kelly Martin f931060dd9 Exclude worn items from counts for workflow 2012-04-07 12:11:53 -05:00
Alexander Gavrilov 45ae2ed67f Pull a few utility functions into the core and publish to lua. 2012-04-07 19:08:30 +04:00
Robert Heinrich 55e059c40f autobutcher: added keywords 'all' and 'new' for handling the whole watchlist. added option 'autowatch' which will put all new tame animal races onto the watchlist using the current default settings 2012-04-07 11:15:49 +02:00
Robert Heinrich e3fb922f53 fixed handling of units in cages who have an invalid map pos. 2012-04-07 06:47:32 +02:00
Robert Heinrich c5fc8aab9f autobutcher: now accepts list of races in one command 2012-04-07 05:05:42 +02:00