Minecraft Levels for Python
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
regression_test added regression test for heightmap Jan 7, 2011
schematics .NET gzip output doesn't always get read correctly by python's gzip Sep 29, 2010
test Fixed: Off-by-one error in schematic export with extended IDs. Feb 1, 2013
testfiles
.gitattributes Add .gitattributes with core.autocrlf Oct 28, 2012
.gitignore
.travis.yml Add cython to travis install command Oct 13, 2013
LICENSE.txt added licensing terms Sep 25, 2010
README.txt Formally depend on pyyaml instead of pasting it in. This way pyyaml g… Feb 14, 2012
__init__.py
_nbt.pyx
biome_types.py Added: New biome types Oct 26, 2013
block_copy.py Added: Biomes are now exported into schematic files. Jan 12, 2013
block_fill.py
blockrotation.py Added: Block rotation for several new blocks. Mar 25, 2013
box.py
cachefunc.py
classic.yaml fix stone step graphics, change "Grey" spelling to "Gray" as it is in… Oct 30, 2011
entity.py Revert "Fixed: TileEntity.copyWithOffset adjusts mob position data fo… May 16, 2013
faces.py add faces.py Sep 29, 2011
gprof2dot.py
indev.py Refactor: Change log statements to use `log.info()` instead of `info=… Oct 31, 2012
indev.yaml
infiniteworld.py Flush and sync lock file when acquiring session lock Oct 13, 2013
items.py update for Minecraft 1.6.2 Aug 14, 2013
javalevel.py
level.py Cleanup: Check whether a point is in the level's bounds using `in sel… Nov 14, 2012
materials.py
mce.py
mclevel.py Rename java.py -> javalevel.py Nov 24, 2013
mclevelbase.py
minecraft.yaml Syntax Fixes Mar 9, 2014
minecraft_server.py
nbt.py
nbt_util.py
pocket.py Debug: Change loggers to use __name__ instead of __file__ Feb 11, 2013
pocket.yaml
profimg.sh
regionfile.py
requirements.txt Formally depend on pyyaml instead of pasting it in. This way pyyaml g… Feb 14, 2012
requirements_test.txt Try to get travis-ci going Oct 13, 2013
run_nbt_tests.sh
run_regression_test.py
schematic.py Fixed: Schematic entities have wrong positions after rotating. Feb 16, 2013
setup.cfg Added distutils setup script written by user:sixohsix. Sep 16, 2011
setup.py
setupnbt64.bat add setup_nbt.py and setupnbt64.bat. try to import _nbt without using… Nov 29, 2011

README.txt

Python library for reading Minecraft levels.

Can read Alpha levels, Indev levels, and Creative levels (with help).

Includes a command-line client (mce.py)

Requires numpy and PyYaml.

Read mclevel.py to get started.

See LICENSE.txt for licensing terms.



mce.py is a command-line editor for SMP maps. It can be used interactively from a terminal, accept editing commands on standard input, or run a single editing command from the shell.

Sample usage:

$ python mce.py

    Usage:

    Block commands:
        clone <sourcePoint> <sourceSize> <destPoint>
        fill <blockType> [ <point> <size> ]
        replace <blockType> [with] <newBlockType> [ <point> <size> ]

        export <filename> <sourcePoint> <sourceSize>
        import <filename> <destPoint>

        analyze

    Player commands:
        player [ <player> [ <point> ] ]
        spawn [ <point> ]

    Entity commands:
        removeEntities [ <EntityID> ]

    Chunk commands:
        createChunks <point> <size>
        deleteChunks <point> <size>
        prune <point> <size>
        relight [ <point> <size> ]

    World commands:
        degrief

    Editor commands:
        save
        reload
        load <filename> | <world number>
        quit

    Informational:
        blocks [ <block name> | <block ID> ]
        help [ <command> ]

    Points and sizes are space-separated triplets of numbers ordered X Y Z.
    X is position north-south, increasing southward.
    Y is position up-down, increasing upward.
    Z is position east-west, increasing westward.

    A player's name can be used as a point - it will use the
    position of the player's head. Use the keyword 'delta' after
    the name to specify a point near the player.

    Example:
       codewarrior delta 0 5 0

    This refers to a point 5 blocks above codewarrior's head.


Please enter world number or path to world folder: 4
INFO:Identifying C:\Users\Rio\AppData\Roaming\.minecraft\saves\World4\level.dat
INFO:Detected Infdev level.dat
INFO:Saved 0 chunks
INFO:Scanning for chunks...
INFO:Found 6288 chunks.
World4> fill 20 Player delta -10 0 -10 20 20 20

Filling with Glass
Filled 8000 blocks.
World4> player Player

Player Player: [87.658381289724858, 54.620000004768372, 358.64257283335115]
World4> player Player Player delta 0 25 0

Moved player Player to (87.658381289724858, 79.620000004768372, 358.642572833351
15)
World4> save

INFO:Asked to light 6 chunks
INFO:Batch 1/1
INFO:Lighting 20 chunks
INFO:Dispersing light...
INFO:BlockLight Pass 0: 20 chunks
INFO:BlockLight Pass 1: 2 chunks
INFO:BlockLight Pass 2: 0 chunks
INFO:BlockLight Pass 3: 0 chunks
INFO:BlockLight Pass 4: 0 chunks
INFO:BlockLight Pass 5: 0 chunks
INFO:BlockLight Pass 6: 0 chunks
INFO:BlockLight Pass 7: 0 chunks
INFO:BlockLight Pass 8: 0 chunks
INFO:BlockLight Pass 9: 0 chunks
INFO:BlockLight Pass 10: 0 chunks
INFO:BlockLight Pass 11: 0 chunks
INFO:BlockLight Pass 12: 0 chunks
INFO:BlockLight Pass 13: 0 chunks
INFO:SkyLight Pass 0: 20 chunks
INFO:SkyLight Pass 1: 22 chunks
INFO:SkyLight Pass 2: 17 chunks
INFO:SkyLight Pass 3: 9 chunks
INFO:SkyLight Pass 4: 7 chunks
INFO:SkyLight Pass 5: 2 chunks
INFO:SkyLight Pass 6: 0 chunks
INFO:SkyLight Pass 7: 0 chunks
INFO:SkyLight Pass 8: 0 chunks
INFO:SkyLight Pass 9: 0 chunks
INFO:SkyLight Pass 10: 0 chunks
INFO:SkyLight Pass 11: 0 chunks
INFO:SkyLight Pass 12: 0 chunks
INFO:SkyLight Pass 13: 0 chunks
INFO:Completed in 0:00:02.024000, 0:00:00.337333 per chunk
INFO:Saved 20 chunks
World4>