fc38371b29 
								
							
								 
							
						 
						
							
							
								
								Clean up some chaos in old code.  
							
							
							
						 
						
							2012-04-15 01:15:15 +02:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								7a34a89f53 
								
							
								 
							
						 
						
							
							
								
								Add burrow subcommands to modify burrow unit and tile sets.  
							
							
							
						 
						
							2012-04-14 14:12:59 +04:00  
				
					
						
							
							
								 
						
							
							
								2f54a48e63 
								
							
								 
							
						 
						
							
							
								
								Add a plugin that makes selected burrows auto-grow on digging.  
							
							
							
						 
						
							2012-04-13 21:41:42 +04:00  
				
					
						
							
							
								 
						
							
							
								37cfb1fdcd 
								
							
								 
							
						 
						
							
							
								
								Add unit position and container api.  
							
							
							
						 
						
							2012-04-13 16:10:19 +04:00  
				
					
						
							
							
								 
						
							
							
								2d8611a480 
								
							
								 
							
						 
						
							
							
								
								Add core api for moving items between ground and containers.  
							
							
							
						 
						
							2012-04-12 18:37:27 +04:00  
				
					
						
							
							
								 
						
							
							
								38a8c43a25 
								
							
								 
							
						 
						
							
							
								
								Reverse-rebase the vtable pointers printed to stderr.log.  
							
							
							
						 
						
							2012-04-12 11:21:25 +04:00  
				
					
						
							
							
								 
						
							
							
								583ccdcc0c 
								
							
								 
							
						 
						
							
							
								
								Support pre-initializing vtable pointers from symbols.xml  
							
							
							
						 
						
							2012-04-12 10:54:53 +04:00  
				
					
						
							
							
								 
						
							
							
								5d5502ae34 
								
							
								 
							
						 
						
							
							
								
								Update the item owner modification api and export it to lua.  
							
							
							
						 
						
							2012-04-11 20:10:31 +04:00  
				
					
						
							
							
								 
						
							
							
								0c2b78b96b 
								
							
								 
							
						 
						
							
							
								
								Add api for manipulating burrows to the core.  
							
							
							
						 
						
							2012-04-11 19:42:05 +04:00  
				
					
						
							
							
								 
						
							
							
								c7b922250b 
								
							
								 
							
						 
						
							
							
								
								More maps api refactoring and renaming.  
							
							... 
							
							
							
							getBlockAbs is a very confusing name; getTileBlock is better. 
							
						 
						
							2012-04-11 12:01:27 +04:00  
				
					
						
							
							
								 
						
							
							
								59ddbfacb7 
								
							
								 
							
						 
						
							
							
								
								Implement item occupancy tracking in MapCache.  
							
							
							
						 
						
							2012-04-10 20:19:41 +04:00  
				
					
						
							
							
								 
						
							
							
								b15d2da819 
								
							
								 
							
						 
						
							
							
								
								Get rid of some obsolete api functions, and restructure MapCache.  
							
							
							
						 
						
							2012-04-10 18:21:19 +04:00  
				
					
						
							
							
								 
						
							
							
								93c795cfc3 
								
							
								 
							
						 
						
							
							
								
								Job module api tweaks: add a namespace to match others and some funcs.  
							
							
							
						 
						
							2012-04-10 11:43:36 +04:00  
				
					
						
							
							
								 
						
							
							
								45ae2ed67f 
								
							
								 
							
						 
						
							
							
								
								Pull a few utility functions into the core and publish to lua.  
							
							
							
						 
						
							2012-04-07 19:08:30 +04:00  
				
					
						
							
							
								 
						
							
							
								0daafef690 
								
							
								 
							
						 
						
							
							
								
								Wrap MaterialInfo for lua.  
							
							
							
						 
						
							2012-04-06 19:56:19 +04:00  
				
					
						
							
							
								 
						
							
							
								903e9ee716 
								
							
								 
							
						 
						
							
							
								
								Export a few more functions to lua.  
							
							
							
						 
						
							2012-04-06 11:21:28 +04:00  
				
					
						
							
							
								 
						
							
							
								9eed9f0d24 
								
							
								 
							
						 
						
							
							
								
								Wrap a few utility functions defined on the c++ side for lua.  
							
							
							
						 
						
							2012-04-05 19:55:59 +04:00  
				
					
						
							
							
								 
						
							
							
								28a741082f 
								
							
								 
							
						 
						
							
							
								
								Encode & decode names in utf-8 for transfer in remote messages.  
							
							... 
							
							
							
							That's the encoding required by the protobuf spec. 
							
						 
						
							2012-04-05 18:10:16 +04:00  
				
					
						
							
							
								 
						
							
							
								3afed43cdb 
								
							
								 
							
						 
						
							
							
								
								Experimental: try wrapping a dfhack api function.  
							
							
							
						 
						
							2012-04-05 11:59:39 +04:00  
				
					
						
							
							
								 
						
							
							
								d1b27418a6 
								
							
								 
							
						 
						
							
							
								
								Add a World::GetPersistentData version that auto-adds if not found.  
							
							
							
						 
						
							2012-04-05 11:32:23 +04:00  
				
					
						
							
							
								 
						
							
							
								2d4af4ac3e 
								
							
								 
							
						 
						
							
							
								
								A few more utility functions for lua.  
							
							
							
						 
						
							2012-04-03 20:02:01 +04:00  
				
					
						
							
							
								 
						
							
							
								a8fe0eccb4 
								
							
								 
							
						 
						
							
							
								
								Add functions for checking validity of lua wrapper objects.  
							
							
							
						 
						
							2012-04-02 22:02:04 +04:00  
				
					
						
							
							
								 
						
							
							
								2a998a5b8a 
								
							
								 
							
						 
						
							
							
								
								Merge  https://github.com/quietust/dfhack  
							
							
							
						 
						
							2012-04-02 13:42:18 +02:00  
				
					
						
							
							
								 
						
							
							
								06da0f9720 
								
							
								 
							
						 
						
							
							
								
								Fix coord/coord2d division/modulo operators to properly handle negative numbers (fixes some glitches with revflood and possibly other utils)  
							
							
							
						 
						
							2012-04-01 19:44:35 -05:00  
				
					
						
							
							
								 
						
							
							
								e3d50b9b04 
								
							
								 
							
						 
						
							
							
								
								Optimize wrapper: use pointers instead of strings as most frequent keys.  
							
							
							
						 
						
							2012-04-01 18:34:04 +04:00  
				
					
						
							
							
								 
						
							
							
								a3e526abdb 
								
							
								 
							
						 
						
							
							
								
								Add df.is_instance(a,b) to check if typeof(b) is subtype of typeof(a).  
							
							... 
							
							
							
							Allows both objects and types as arguments. Also accepts nil and
primitives as b, returning nil. 
							
						 
						
							2012-04-01 17:32:57 +04:00  
				
					
						
							
							
								 
						
							
							
								afe4eba957 
								
							
								 
							
						 
						
							
							
								
								Improve performance of the persistent data api, and wrap it for lua.  
							
							... 
							
							
							
							Use an stl table for string keys to avoid linear cost of lookup.
This uncovered a bug in the new luaL_getsubtable function. 
							
						 
						
							2012-04-01 16:43:40 +04:00  
				
					
						
							
							
								 
						
							
							
								7ff728b6fc 
								
							
								 
							
						 
						
							
							
								
								Track world and map changes separately for plugin_onstatechange  
							
							
							
						 
						
							2012-04-01 02:56:54 +02:00  
				
					
						
							
							
								 
						
							
							
								4bac6edd79 
								
							
								 
							
						 
						
							
							
								
								Merge  https://github.com/rh73/dfhack  
							
							
							
						 
						
							2012-04-01 00:29:00 +02:00  
				
					
						
							
							
								 
						
							
							
								39787e9cd5 
								
							
								 
							
						 
						
							
							
								
								Renamed digging commands to uniformly start with 'dig*'(vdig -> digv etc). Added command digl, diglx (dig layerstone instead of veins). Updated readme.rst.  
							
							
							
						 
						
							2012-03-31 15:41:55 +02:00  
				
					
						
							
							
								 
						
							
							
								0f41608ed4 
								
							
								 
							
						 
						
							
							
								
								Pull console output support and REPL out of dfusion into core lib.  
							
							
							
						 
						
							2012-03-31 15:40:54 +04:00  
				
					
						
							
							
								 
						
							
							
								07bb51946f 
								
							
								 
							
						 
						
							
							
								
								Fix bug in MapCache - squash veins with the correct priority  
							
							
							
						 
						
							2012-03-29 18:59:07 -05:00  
				
					
						
							
							
								 
						
							
							
								ec48405f0a 
								
							
								 
							
						 
						
							
							
								
								Fix mistake: static initialization code cannot access other static objects.  
							
							... 
							
							
							
							Specifically, the eid->type() call depends on the order of linking. 
							
						 
						
							2012-03-29 22:56:06 +04:00  
				
					
						
							
							
								 
						
							
							
								85c91c92d8 
								
							
								 
							
						 
						
							
							
								
								Implement __pairs and __ipairs for DF objects.  
							
							... 
							
							
							
							Structs enumerate fields in memory order in pairs().
Containers & biftields enumerate int indexes in ipairs, and
string keys in pairs (i.e. using index-enum for arrays). 
							
						 
						
							2012-03-29 14:39:13 +04:00  
				
					
						
							
							
								 
						
							
							
								bc74c5984e 
								
							
								 
							
						 
						
							
							
								
								Implement recursive transfer of values from lua to c++ structures.  
							
							... 
							
							
							
							E.g. df.global.cursor = { x = 1, y = 2, z = 3 }. The lua data
must be represented by raw lua tables.
For structs, the entries in the table are assigned to matching fields.
For containers, if a 'resize' field is missing or nil, the table is
treated like 1-based lua array, and the container is resized to match
its # length. Otherwise, the field must be either an explicit number,
true or false. If it is true, the size is selected by the highest index
in the table. After that, entries are copied using 0-based indices.
For pointers, the table must match the target object. If the pointer
is null, the object is auto-allocated; this can be controlled using
the 'new' field, the value of which will be passed to df.new(). 
							
						 
						
							2012-03-27 21:47:52 +04:00  
				
					
						
							
							
								 
						
							
							
								157f23be5c 
								
							
								 
							
						 
						
							
							
								
								Fix warnings.  
							
							
							
						 
						
							2012-03-26 12:42:05 +04:00  
				
					
						
							
							
								 
						
							
							
								00a5bfcf3e 
								
							
								 
							
						 
						
							
							
								
								Work around a msvc issue with spurious specialization ambiguity errors.  
							
							
							
						 
						
							2012-03-26 10:46:51 +04:00  
				
					
						
							
							
								 
						
							
							
								d0090e9551 
								
							
								 
							
						 
						
							
							
								
								Fix lua wrapper: create one function identity instance per method.  
							
							... 
							
							
							
							Otherwise all methods of the same prototype are lumped into one. 
							
						 
						
							2012-03-25 21:12:20 +04:00  
				
					
						
							
							
								 
						
							
							
								1d81cb56ba 
								
							
								 
							
						 
						
							
							
								
								Make enum attributes accessible through the lua wrapper.  
							
							... 
							
							
							
							TODO: make them completely read-only. 
							
						 
						
							2012-03-25 19:12:59 +04:00  
				
					
						
							
							
								 
						
							
							
								0412aaebe4 
								
							
								 
							
						 
						
							
							
								
								Add a delete() method to the objects in the lua wrapper.  
							
							
							
						 
						
							2012-03-25 15:48:18 +04:00  
				
					
						
							
							
								 
						
							
							
								7209e4d3f2 
								
							
								 
							
						 
						
							
							
								
								Attach static methods to the type objects in the lua wrapper.  
							
							
							
						 
						
							2012-03-25 15:20:58 +04:00  
				
					
						
							
							
								 
						
							
							
								8d345be6e7 
								
							
								 
							
						 
						
							
							
								
								Expose virtual methods in the lua wrapper.  
							
							
							
						 
						
							2012-03-25 14:06:05 +04:00  
				
					
						
							
							
								 
						
							
							
								947adeac83 
								
							
								 
							
						 
						
							
							
								
								Silence warning 4482  
							
							
							
						 
						
							2012-03-24 18:18:29 -05:00  
				
					
						
							
							
								 
						
							
							
								517b2ffadb 
								
							
								 
							
						 
						
							
							
								
								Merge remote-tracking branch 'peterix/master'  
							
							
							
						 
						
							2012-03-24 16:30:07 +04:00  
				
					
						
							
							
								 
						
							
							
								0c7fc233bd 
								
							
								 
							
						 
						
							
							
								
								Support resize/erase/insert for containers, and allow any index in BitArray.  
							
							
							
						 
						
							2012-03-24 16:28:53 +04:00  
				
					
						
							
							
								 
						
							
							
								8a847dbaba 
								
							
								 
							
						 
						
							
							
								
								Tweaks and cleanups  
							
							... 
							
							
							
							Removed t_virtual.
Made lua use C++ compiler
Removed many silly exception types from Error.h and renamed the rest.
Removed Brush classes from tiletypes plugin. 
							
						 
						
							2012-03-24 12:13:51 +01:00  
				
					
						
							
							
								 
						
							
							
								d865d54a90 
								
							
								 
							
						 
						
							
							
								
								Split LuaWrapper.cpp into two files.  
							
							
							
						 
						
							2012-03-24 13:25:10 +04:00  
				
					
						
							
							
								 
						
							
							
								053bfe345c 
								
							
								 
							
						 
						
							
							
								
								Implement allocation and copy for c++ objects in the lua wrapper.  
							
							
							
						 
						
							2012-03-24 12:43:53 +04:00  
				
					
						
							
							
								 
						
							
							
								2b1f8aa2bb 
								
							
								 
							
						 
						
							
							
								
								Add a _field method that returns refs to struct and container items.  
							
							... 
							
							
							
							Hack: allocate ad-hoc pointer identities as full lua userdata. 
							
						 
						
							2012-03-23 12:55:29 +04:00