Commit Graph

1007 Commits (8e17ebbefc5da79b34219b87b310038af1077871)

Author SHA1 Message Date
Alexander Gavrilov e3440126a3 Fix missing switch case warnings. 2012-05-05 19:36:22 +04:00
Alexander Gavrilov 4e084d0df7 Merge remote-tracking branch 'rh73/master' 2012-05-05 19:28:19 +04:00
Alexander Gavrilov 1b5ce7b717 Merge remote-tracking branch 'ab9rf/master' 2012-05-05 19:26:56 +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
jj 138461634e ruby: fix vtable for linux destructor 2012-05-03 19:19:58 +02:00
jj ba1e3c4b23 ruby: vmethod call 2012-05-03 18:49:12 +02:00
Alexander Gavrilov 5afe2ca002 Update dfhack for specific_ref. 2012-05-03 11:47:04 +04:00
jj 8952eabd62 ruby: typo 2012-05-03 03:33:50 +02:00
jj 5fdeac9913 ruby: fix StaticArray#inspect with indexenum, allow df.cursor = [x, y, z] 2012-05-03 02:52:53 +02:00
Kelly Martin 6903f3877f Devel plugin nestboxes scans all nestboxes for unhatchable eggs and optionally dumps them. 2012-05-01 10:58:12 -05: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
Kelly Martin e7c55ab6e1 Also exclude trader from hauling when requested at depot. 2012-04-30 09:01:48 -05: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
jj ec8b090abe ruby: add plugins/buildbed.rb (segfaults) 2012-04-27 18:50:27 +02:00
jj a7afe04f3b ruby: name nested compounds, to allow cpp_new etc 2012-04-27 17:59:54 +02:00
jj bc218db596 ruby: more minor tweaks 2012-04-27 17:46:51 +02:00
jj 3446fd024e ruby: tweak inspect 2012-04-27 17:38:31 +02:00
jj 9bceb7a443 ruby: typo in enumerable 2012-04-27 17:31:39 +02:00
jj 6800f459f5 ruby: fix bitfield looking for enum value 2012-04-27 17:24:15 +02:00
jj fcfd7062eb ruby: tweak inspect, autodereference pointers 2012-04-27 17:11:01 +02:00
jj 22628fe9bb codegen: all class-type have a vtable 2012-04-27 14:13:44 +02:00
jj 551df9bb73 ruby: use binsearch in find_unit/find_item 2012-04-27 03:07:03 +02:00
jj 2cc5333157 ruby: cleanup codegen enum 2012-04-27 03:02:37 +02:00
jj 51ecd15fa8 ruby: use symbols for enums everywhere 2012-04-26 20:55:52 +02:00
Kelly Martin 7c606da636 Autolabor will exclude the trade broker from all labors if the "trader requested" flag is on at the trade depot. 2012-04-26 13:46:38 -05:00
jj ba7d4f8edd ruby: extract additional info for enums 2012-04-26 20:03:56 +02:00
Kelly Martin 53e0ba8b8d Actually write the noble penalty to the dwarf_info structure.... 2012-04-26 12:54:10 -05:00
jj 2ee1887870 ruby: add plugins/unit exemple 2012-04-26 19:38:15 +02:00
jj 461c7e20cd ruby: add vector#binsearch 2012-04-26 19:37:58 +02:00
Alexander Gavrilov 02e43428ee Sync to changes in the data structure definitions. 2012-04-26 12:36:29 -05:00
Alexander Gavrilov b4a8bcd8d0 Refactor MapCache: make it parse everything that is known re tiles & mats.
Conflicts:

	library/xml
2012-04-26 12:21:59 -05:00
Alexander Gavrilov 82a0e52a3e Add api to check the walkable cache, and update flow_forbid in liquids. 2012-04-26 18:51:39 +04:00
Kelly Martin 5f5152f449 Autolabor: Instead of guessing who the nobles are based on noble skills, actually find out who they are and behave appropriately. Certain responsibilities are assigned various penalties to increase their holders' availability to perform noble functions. Also, holders of the "manage health" responsibility are always assigned the diagnose labor.
The responsibility penalties are first-approximation and will likely need tuning.
2012-04-26 09:38:25 -05:00
jj 9b7fbcc477 ruby: fix warning in codegen with initvalue 2012-04-26 15:37:10 +02:00
jj 03925c923a ruby: fix new c++ obj initialization, use xml init-value 2012-04-26 14:16:47 +02: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
jj 7a8db179ab ruby: fix plugin/plant.rb, add onstatechange hook, use console proxy, general cleanup, enable build by default 2012-04-25 20:21:09 +02:00
jj bd2e6e74de ruby: add manual c++ object allocator 2012-04-25 19:22:04 +02:00
jj b0acad6d59 ruby: use index-enum xml attr, fix bitfield[i] = 0 2012-04-25 17:18:24 +02:00
Alexander Gavrilov 23a0b17ff3 Make liquids and tiletypes force rebuild of pathfinding data. 2012-04-25 18:38:43 +04:00
Alexander Gavrilov 1cd802d426 Implement unit sorting for the pen zone assignment interface. 2012-04-25 18:28:00 +04:00
jj d1ea97c272 ruby: README 2012-04-25 01:20:35 +02:00
jj bf64c3e23c ruby/plugin: tweak plants, add growcrops 2012-04-24 19:08:14 +02:00
jj 7a71204b82 ruby: guard against undefined globals, fix inspect for inherited classes 2012-04-24 19:07:54 +02:00
jj eca17fff53 ruby: add sample plugin (cuttrees, growtrees) 2012-04-24 00:57:07 +02:00
jj c1baebd083 ruby: rename find_map_block to map_block_at, add other helper methods 2012-04-24 00:47:10 +02:00
jj 8a05db7a1b ruby: add map block iterators, fix FlagArray.length 2012-04-23 21:12:24 +02: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
Kelly Martin ac0e4a15e8 Rprobe can now be used to change any of the region_map paremeters. Use at your own peril, as strangeness may ensue. 2012-04-23 09:46:57 -05:00
Kelly Martin e06c80f690 Fix minor ostream munging glitch in rprobe. 2012-04-22 23:36:13 -05:00
Robert Heinrich e1770fa62b regrass: leaves tiles with the no_grow flag alone (avoids regrassing roads etc you embark on) 2012-04-23 00:34:19 +02:00
Robert Heinrich 045b7b6a20 Merge branch 'master' of git://github.com/ab9rf/dfhack 2012-04-22 20:26:12 +02:00
Robert Heinrich 760bc8b09f regrass: ignore furrowed tiles (dirt roads) 2012-04-22 20:25:10 +02:00
Alexander Gavrilov 125cd6622a Support sorting units in many more ui contexts. 2012-04-22 19:22:00 +04:00
Kelly Martin 26cec5f60c Probe now displays the "surroundings" name for the biome (e.g. Joyous Wilds, or Terrifying).
Rprobe can be used from the embark screen to set the evilness of the selected biome; use with due care.
2012-04-22 10:17:14 -05:00
Robert Heinrich af12e83ac4 Merge branch 'master' of git://github.com/ab9rf/dfhack 2012-04-22 15:25:22 +02:00
Kelly Martin f5644f385b Probe now displays biome savagery and evilness.
Devel plugin bprobe (also in this commit) goes digging around in region data at embark screen, not really useful for public consumption.
2012-04-21 23:22:21 -05:00
jj 6fc17b3e1f ruby: clean helper with offsetof 2012-04-21 21:20:51 +02:00
Kelly Martin c104f822a4 Move stripcaged to master branch, works fine. 2012-04-21 12:53:46 -05:00
Jared Adams 567b3e2a52 Fix range on tiletypes and make it saner for both plugins. 2012-04-21 11:26:40 -06:00
jj 9317143909 ruby: officially dont support stl::deque, add class sizeof 2012-04-21 15:04:52 +02: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
Robert Heinrich 709536c6c3 Merge branch 'master' of git://github.com/ab9rf/dfhack 2012-04-21 11:53:19 +02:00
Robert Heinrich a282c9dede Merge branch 'master' of git://github.com/peterix/dfhack 2012-04-21 11:52:25 +02:00
Robert Heinrich 2d19514fbc probe: minor change 2012-04-21 11:52:03 +02:00
Alexander Gavrilov adbd351462 Rename units.other[0] to units.active. 2012-04-21 12:46:55 +04:00
Kelly Martin ad73b8c737 Add "tamable" for animals that can be tamed (PET or PET_EXOTIC in raws) 2012-04-20 14:38:50 -05:00
Kelly Martin e0bb5bf53b Add "naked" (has no inventory) predicate to zone (useful for mass pitting) 2012-04-20 14:22:20 -05:00
jj 826e0b7dcf ruby: iterate in LinkedList 2012-04-20 20:43:18 +02:00
jj 417356c3cb ruby: add df-linked-list support (also, xml could be simplified) 2012-04-20 18:20:24 +02:00
jj f57d63ed95 ruby: df_flagarray support 2012-04-20 17:57:41 +02:00
jj 66891fd23c ruby: tweak onupdate, fix some inspects, add inverse ENUM 2012-04-20 17:33:48 +02:00
jj fb2dcf55ca ruby: fix DfArray, add #inspect, fix ruby.rb 2012-04-20 15:30:15 +02:00
Alexander Gavrilov 0a6982f404 Enable warnings correctly on linux and fix a lot of them. 2012-04-20 13:30:37 +04:00
Jared Adams 52138d8998 Improve the range function of tiletypes a bit and add the functionality to liquids. 2012-04-19 21:13:07 -06:00
Jared Adams f97e2bf410 Make tiletypes more useful
* Add any option to clear paint/filter
 * Add aquifer bit
 * Stop filtering process killing execute early
 * Filter on all bits, not just dig
2012-04-19 17:44:26 -06:00
jj 0952b76173 ruby: add df_array, pointer_ary, move generated classes in DFHack 2012-04-20 01:29:52 +02:00
Alexander Gavrilov 0b32d374db Implement SOIL/STONE substitution logic, and add compat in mapexport. 2012-04-19 23:02:30 +04:00
jj a450e9ddeb ruby: fix vectors, add bitvector 2012-04-19 19:35:55 +02:00
Alexander Gavrilov 4b87f1bcac Refactor MapCache: make it parse everything that is known re tiles & mats. 2012-04-19 19:17:07 +04:00
Alexander Gavrilov f655a0986d Sync to changes in the data structure definitions. 2012-04-19 11:03:29 +04:00
jj 0e10a8edff Merge branch 'master' of git://github.com/peterix/dfhack 2012-04-18 18:50:48 +02:00
jj 3ad3d1af46 ruby: use rtti info to cast Item/etc subclasses 2012-04-18 18:46:33 +02:00
Kelly Martin b7b27ebb9e Merge remote-tracking branch 'upstream/master' 2012-04-18 11:35:32 -05:00
Kelly Martin 2dc3aa1b89 danger of rotting) 2012-04-18 11:33:17 -05:00
Kelly Martin 9e1e34f69b Created new stockcheck plugin 2012-04-18 00:16:44 -05:00
Petr Mrázek c17529a794 Track stonesense 2012-04-18 05:09:22 +02:00
Petr Mrázek 6d53ab37e0 Mass fixage
Updated readme.rst
Fixed up some help strings of plugin commands
Moved catsplosion and regrass to normal plugin folder
Fixed tiletypes and liquids not keeping command history properly
2012-04-18 04:12:11 +02:00
jj 3b54cf4657 Merge branch 'master' of git://github.com/peterix/dfhack 2012-04-17 22:42:29 +02:00
jj 3339fdfea8 ruby: fix anon unions, add some find_* helpers in ruby.rb 2012-04-17 22:42:23 +02:00
Petr Mrázek d0e9ab49e7 Merge https://github.com/jaxad0127/dfhack 2012-04-17 21:46:57 +02:00
Petr Mrázek bdd697f1a0 Merge https://github.com/rh73/dfhack 2012-04-17 21:46:40 +02:00
Robert Heinrich 299510f0d9 zone: don't assign to cages which are designated but not yet placed (minor fix, it's not like bad things happen without it) 2012-04-17 18:11:14 +02:00
Robert Heinrich 40f36c1912 minor stuff, use building->is_room instead of building->isRoom() which returns unexpected values 2012-04-17 16:57:41 +02:00
jj d901dd28cf ruby: merge upstream 2012-04-17 14:40:59 +02:00
Jared Adams ebd21e9249 Fix some issues with last commit 2012-04-16 20:48:08 -06:00
Petr Mrázek 7946cafc86 Merge https://github.com/jaxad0127/dfhack 2012-04-16 22:37:07 +02:00
Petr Mrázek d2dde361ad Merge https://github.com/rh73/dfhack 2012-04-16 22:35:46 +02:00
Petr Mrázek ccf10a1428 Merge https://github.com/warmist/dfhack 2012-04-16 22:30:55 +02:00
Robert Heinrich 6d180d61c4 autopasture: only process domesticated own units to avoid problems with wild animals forgetting their training and going on a rampage 2012-04-16 21:37:48 +02:00
Petr Mrázek 45f9f756f0 Merge https://github.com/rh73/dfhack
Conflicts:
	plugins/stonesense
2012-04-16 20:33:30 +02:00
Petr Mrázek 862fa9d675 Track stonesense 2012-04-16 20:19:45 +02:00
Robert Heinrich 70ebd26e6c Merge branch 'master' of git://github.com/ab9rf/dfhack 2012-04-16 17:37:09 +02:00
Kelly Martin 43e4814147 Mod workflow to properly handle custom reactions that produce CRAFTS 2012-04-16 10:34:12 -05:00
Robert Heinrich 9560fc641c zone: mass-assign nicknames, assign units to multiple cages inside a pasture. autobutcher: some fixes regarding autowatch and butchering caged units. 2012-04-16 16:31:12 +02:00
Robert Heinrich e6ed81508d autobutcher: only ignore built cages which are defined as rooms/zoos.
zone: allow mass-assigning of nicknames (to protect a pasture/cage from autobutcher)
2012-04-16 10:15:37 +02:00
Robert Heinrich 9c67250729 regrass: pick random grass event if tile is soil instead of always using the first one found 2012-04-16 07:03:27 +02:00
Robert Heinrich e58a46b42b zone: fixed filter 'trained' so it now finds war/hunting creatures (who strangely don't have a training level) 2012-04-16 03:31:49 +02:00
Robert Heinrich 4b3c8d46c1 zone: don't assign owned pets to a cage. the owner will release them, resulting into infinite hauling (df bug) 2012-04-15 23:21:36 +02:00
Robert Heinrich 7aefae17d1 autonestbox: don't assign to nestboxes which are already claimed or contain eggs.
bprobe: look a bit closer at nestboxes
2012-04-15 21:45:15 +02:00
Alexander Gavrilov a1756a864c Implement a way to do prompts from core context.
The trick obviously is doing it without forcing DF to wait suspended.
Fortunately, lua has built-in coroutine support, so the interactive
prompt can simply yield and rely on the external loop to do the job.
To use this however the REPL had to be replaced with lua code.
2012-04-15 21:50:22 +04:00
Robert Heinrich 6197c4e739 zone: added keyword 'not' which negates the filter followed by it (e.g. 'not grazer') 2012-04-15 19:49:50 +02:00
Robert Heinrich 8bbd43f2c9 zone: added filters to search for creatures who can be trained for war/hunting 2012-04-15 17:40:39 +02:00
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
Jared Adams f3c7a685f5 Make tiletypes more useful
* Paint, filter, and brush state is now saved between calls.
 * Added 'all' paint option to set material, shape, special, and variant at
      the same time.
 * Added tiletypes-here (like liquids here, except is uses the saved brush
      settings)
 * Added tiletypes-here-point (like liquids here, always only the tile under
      the cursor)
 * Added tiletypes-command: runs tiletypes commands seperated by ';' tokens
      (affects saved state)
 * Make the internal workings match liquids a bit more
 * Give brush objects a descriptor string
 * Make Core::cheap_tokenise available
2012-04-15 08:40:19 -06:00
Robert Heinrich be580592ce Merge branch 'master' of git://github.com/ab9rf/dfhack 2012-04-15 16:07:43 +02:00
Kelly Martin 005658a9cd Add noegglayer zone filter 2012-04-15 09:04:19 -05:00
Robert Heinrich cf0d45be78 merged stuff from peterix 2012-04-15 12:32:25 +02: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
jj f85810c1e2 ruby: move enum constants up one level, allow pointer arithmetic (world.map.block_index), fix StaticArray, add map test 2012-04-13 19:31:12 +02:00
jj bf4bd1f034 ruby: fix vectors of pointers, fix global enum fields 2012-04-13 17:19:53 +02:00
jj 3044da5887 ruby: add global-objects, add bitfield._whole, make StlVector enumerable 2012-04-13 16:17:56 +02:00
Robert Heinrich 09608467c1 tweak fixmigrant: updated help text 2012-04-12 22:44:53 +02:00
jj f503bf36f4 ruby: set everything up 2012-04-12 19:12:46 +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