Commit Graph

40 Commits (760bc8b09f55413873a611a5c5f86344476f479a)

Author SHA1 Message Date
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
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
Alexander Gavrilov 0f41608ed4 Pull console output support and REPL out of dfusion into core lib. 2012-03-31 15:40:54 +04:00
Alexander Gavrilov 063099e535 Set '_' to the first result value for both interactive shortcuts.
Makes it behave sort of like a general 'last result' reference.
2012-03-30 12:17:09 +04:00
Alexander Gavrilov e989ca58db Enhance the interactive interpreter mode of dfusion.
1. Reimplement Console.print* to behave exactly as the standard print
   function, and apply print = Console.println from c++ init code.
2. Add a couple of convenience shortcuts to save some manual typing
   when poking around data structures using the interactive prompt.
3. Change the prompt string to a more distinguished shape.
2012-03-30 11:57:27 +04:00
Warmist 99da37ae46 Moving to new LuaWrapper. 2012-03-24 14:47:51 +02:00
Warmist 5367d28110 few small bugs (embark caste selection) and moved runsaved to non-auto. 2012-03-18 03:02:16 +02:00
Warmist 081aee1363 Fixes for DfHack::Process foolery. 2012-03-11 14:59:32 +02:00
Warmist 237d7b433a Updated to new dfhack standards. 2012-03-11 14:33:08 +02:00
Warmist e8788d8872 Lots of work done with xml parsing. 2012-03-04 14:45:15 +02:00
Warmist 8d9fa86804 Added dfusion plugin name. 2012-02-23 00:41:27 +02:00
Petr Mrázek 2cd2ee9b0c New plugin interface 2012-02-21 18:19:17 +01:00
Quietust 091bf62aa8 DFhackCExport is only needed on the plugin_* functions 2012-02-13 22:54:08 -06:00
Petr Mrázek 9db20bd84d Header changes/cleanup. 2011-12-31 12:48:42 +01:00
Warmist 52a049cec3 Removed thready argument to dfusion, replaced with init (just sets stuff up, running everything in non interactive mode) 2011-12-27 23:07:23 +02:00
Warmist e7a8c8c684 Lua function calling. 2011-12-04 18:45:34 +02:00
Warmist ab448d4109 Small fixes + lua_bit lib (fixes flag manipulations) 2011-09-17 14:59:10 +03:00
Warmist 1a99121ead Started migration to init/plugin scheme (init files for noninteractive parts). Also added WINDOWS/LINUX flags 2011-08-21 00:15:40 +03:00
Warmist 68fbd4a78d fixed few formating things, and annoying 'g' error. (work-around somehow the '..' operator does not work with numbers) 2011-08-19 19:12:25 +03:00
Warmist 97712089bd Added dfusion thready flag to spawn another thread 2011-08-19 18:09:00 +03:00
Petr Mrázek 9ecbaecc13 Merge https://github.com/warmist/dfhack
Conflicts:
	plugins/Dfusion/dfusion.cpp
2011-08-13 14:44:54 +02:00
Petr Mrázek 81e6bce92c Command history separated from Console. 2011-08-13 14:42:09 +02:00
Warmist a94ba4392c small fixes to VersionInfo wrapper, added Current_Race in Memory.xml to new version and ported friendship plugin to memory.xml model 2011-08-09 11:31:51 +03:00
Warmist 6a8c92e088 versionInfo wrapper, no offsetgroup methods yet 2011-08-09 02:46:32 +03:00
Petr Mrázek 8fd437dbc1 Make dfusion use the static lua lib. 2011-08-08 23:30:30 +02:00
Warmist 835581e5d3 Embark and friendship working
Signed-off-by: Warmist <Warmist@gmail.com>
2011-08-05 00:22:25 +03:00
Warmist f4179652fa Lots of changes, including hexsearch and wrapper for lua, also LUNE - an object oriented lua wrapper 2011-08-03 16:07:57 +03:00
Warmist 6c2a822494 small bugfix (lua_Process.cpp) and onTick rate slowed
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-28 04:08:57 +03:00
Warmist 0799cde3af Small fixes and lua port of Process
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-28 03:11:33 +03:00
Warmist f1d32ef766 Peek and pokes with lua bindings. Also interpreter implemented
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-28 00:21:09 +03:00
Warmist d262986740 Added simple readme, fixed sdl_threads and moved to tinythreads (mutex for lua engine). Other small fixes
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-27 23:10:20 +03:00
Warmist f003a19e40 Functioncalling minilib
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-19 16:45:54 +03:00
Warmist d0c2f3b9f5 Functioncall minilib testing 2011-07-17 12:00:29 +03:00
Warmist 6c75e8cd88 Merge branch 'dfapi' of git://github.com/peterix/dfhack into dfapi
Conflicts:
	plugins/CMakeLists.txt
2011-07-17 00:11:21 +03:00
Warmist fc68387ea3 Improved error checking (and flood protection)
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-16 22:23:44 +03:00
Warmist e47d05eeb4 Full DFHack::Console to lua binding.
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-16 22:08:58 +03:00
Warmist 3106606a4e OnTick working!
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-16 20:43:57 +03:00
Warmist 3afa35df61 Added lua c++ wrapper
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-16 19:29:46 +03:00
Warmist 7969a701c3 Lua integrated.
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-16 18:34:24 +03:00
Warmist 75cffcb347 First dfusion plugin commit
Signed-off-by: Warmist <Warmist@gmail.com>
2011-07-16 17:22:45 +03:00