InfdevOldWorld now allocates Blocks as a 16-bit array and reads Add into the top 8 bits if present. MCSchematic also allocates Blocks as uint16 and uses WorldEdit's extension to the schematic format to store the Add arrays.
Conflicts:
test/extended_id_test.py
Move MCRegionFile to its own source file.
Remove knowledge of chunk structure from MCRegionFile. Rename loadChunk to readChunk.
Remove compress, decompress, unload, isLoaded, compressedSize methods.
Remove compressedTag, dataIsPacked, loadedChunkQueue/Limit, decompressedChunkQueue/Limit members.
Rename InfdevChunk to AnvilChunk. Keep in place the conversion to old-style chunks until all client code is updated.
Remove most checks for self.version and keep only the VERSION_ANVIL code in place
Rename Alpha tests to Anvil tests.
Change several tests to load the AnvilWorld test data.
Change ZipSchematic test to export an area from the center of the world instead of from hard-coded coordinates.
The exception handlers in the dumpSigns and dumpChests commands
referenced ChunkMalformed in the wrong package.
This fix corrects the references, but note that this by itself is not
desirable, as ChunkMalformed is raised when a MemoryError occurs, and
the exception handlers ignore the exception. As a MemoryError is not
likely to go away by itself, this can result in a flood of error
messages being printed, instead of the existing behaviour where
execution of the command terminates due to the incorrect reference to
ChunkMalformed.
When using the dumpSigns command, if non-ASCII characters were present
in the sign text, a UnicodeDecodeError exception would occur when
concatenating the text from the sign with 'u"\n"'.
This fix decodes the sign text as UTF-8, which appears to be
consistent with the behaviour of Minecraft 1.2.5 for the following
sign text as dumped in Python using repr():
'\xc2\xa3$\xc2\xa3$\xc2\xa3$\xc2\xa3$\xc2\xa3$\xc2\xa3$\xc2\xa3$\xc2\xa3'
Additionally, this fix ensures the output file includes a signature
which makes it easier for tools to work out that the file contains
UTF-8.
Now supports both single- and multi-player worlds, and it also
sets the player abilities added in Beta 1.9-pre5 to proper values
based on the gametype changed to. No longer will allow flying and
invulnerable players when switching to survival mode!
the .yaml format is an extended version of the one used by Minecraft X-Ray. fields are added for data variants, extra search terms, and lighting info. tables for converting blocks are now inferred from the block info: for each source block's name, it will search the destination's block info for names or aliases (aka) that match or contain the name.
the MCMaterials objects gained the [] operator, which can accept a block name, block id, or (id, data) pair.
textures are given as a pair of 0-255 pixel coordinates instead of combining them into one byte. the first coordinate of the pair is left-to-right on the terrain.png
added flat color definitions for low-detail rendering. color codes borrowed from c10t
block defs are now attrs of the MCMaterials objects.
fillBlocks now takes Block objects instead of block ID numbers