Added some notes about install mode and build scripts
sys.executable is no longer used.
Added getSrcFolder for finding the src/ folder of a source checkout.
copyBlocks accepts more values for updateLights
time_relight_manmade has another option to select the scheme of issuing updates
Add some tests results, conclusions, and blabber to time_relight_manmade
In getSection, return the pointer from the find() iterator if found
In cacheSection, do some flips to get the pointer from the operator[] that finally caches the section
Relies on direct access to the section arrays provided by chunk sections through the WorldEditor class. Caches section arrays to avoid repeated calls through the Python WorldEditor's getChunk/getSection
Currently does not create new sections.
Change relight API to have updateLightsByCoord, updateLightsInSelection, updateLightsInSection (incomplete)
Move time_xxx.py files from test/ into bench/
Split time_relight into manmade and natural.
Get time_relight_xxx working again.
Add get/set BlockLight/SkyLight to WorldEditor for pure python relight.
Implement pure python relight. Seems to work right.
BrushShape inherits from QObject so it can have signals
BrushShape provides an optionsChanged signal
ShapeWidget for some reason forwards the optionsChanged signal to its client.
Probably because it "owns" the BrushShape instances, which is kind of dumb?
No shapes implement useful options widgets yet
Rename generationTypeCombo to generatorTypeCombo
Change generatorTypeCombo into an editable combo box.
Add generator tag values to combo box items as itemData. Remove GENERATOR_TYPES.
Get generator tag value first as itemData and then as entered text if no itemData is found.
Add unknown generator types from the NBT data to the combo box.
Connect to the combo box's line edit's editingFinished to respond to user-entered generator types.
Fixes#113
chunkPositions now removes dead chunks from the returned chunks
readChunkBytes raises ChunkNotPresent for dead chunks
readFile raises IOError for dead files