David Vierra
751f190274
Import error messages now explain that NBT acceleration is not available, and gives tips on how to enable it by getting pyximport working.
2012-01-03 12:18:40 -10:00
David Vierra
167f7e960c
Pass numpy's include dir to pyximport.install() to fix "error: numpy/arrayobject.h: No such file or directory".
2012-01-03 12:05:24 -10:00
David Vierra
5687de8f36
Tell distutils to add numpy's include dir to the list of include paths.
2011-12-27 17:09:47 -10:00
David Vierra
ab070934e1
changing a chunk's TerrainPopulated bit now marks the chunk dirty
2011-12-25 08:38:19 -10:00
David Vierra
26aacd8265
create a ChunkBase class with attrs common to FakeChunk, InfdevChunk, and PocketChunk
2011-12-24 07:18:32 -10:00
David Vierra
de8dd71ee2
extractHeights always returns a heightmap without its axes swapped. Instead, computeChunkHeightMap swaps the axes and handles filling in a chunk's existing HeightMap array.
2011-12-23 11:07:58 -10:00
David Vierra
3e1520ee02
Import level classes where they're needed instead of in mclevelbase.py. This lets us run each file individually, e.g. for doctests.
2011-12-22 11:55:49 -10:00
David Vierra
56a9d56679
fix extractLightMap's return value
2011-12-17 06:08:13 -10:00
David Vierra
8a30875609
getChunkSlices takes a shortcut and enumerates all of the level's chunks whenever the requested box is the level's bounds
2011-12-16 14:42:45 -10:00
David Vierra
73a4954055
rewrite extractLightMap to use argmax on a reversed array instead of nonzero. this is about 3x faster. a new method extractHeights contains the new code and can be reused e.g. for topsoil methods
2011-12-16 14:01:07 -10:00
David Vierra
529e36c880
pkg_resources isn't always available, so fall back on PYMCLEVEL_YAML_ROOT and then cwd
2011-12-16 01:57:00 -10:00
David Vierra
b599e0d0b3
Parse ~item groups from items.txt
2011-12-12 19:09:38 -10:00
David Vierra
b3c5574a0f
add FloatBox to default imports
2011-12-12 19:07:45 -10:00
David Vierra
f1a8bf76fc
Set HeightMap to all zeros in the Nether to match what the game does. Otherwise, Nether Wart won't plant in low light.
2011-12-12 19:07:26 -10:00
David Vierra
0f52c0e655
addYamlBlocksFromFile now uses pkg_resources to find the requested YAML file instead of guessing wildly
2011-12-06 18:47:38 -10:00
David Vierra
05d2e39739
remove the __del__ from MCInfdevOldLevel so the gc can resolve the circular reference between a level and its dimensions. move it to RegionFile which might actually have filehandles to close if I ever turn "holdFileOpen" back on...
2011-12-05 04:30:42 -10:00
David Vierra
3d1d76d04b
Revert "use weakrefs to break reference cycles between a world and its dimensions, and a world and its chunks."
...
Weakrefs are the wrong solution, we need to remove the __del__ from MCInfdevOldLevel
This reverts commit 12a5982b1693def30d74f9e656d87984e50fd8b1.
2011-12-05 04:27:10 -10:00
David Vierra
768d88ca33
extractAnySchematic calls extractZipSchematic whenever the box has more chunks than a threshold (currently the decompressed chunk limit)
2011-12-05 00:08:21 -10:00
David Vierra
12a5982b16
use weakrefs to break reference cycles between a world and its dimensions, and a world and its chunks.
2011-12-04 22:42:27 -10:00
David Vierra
9c94191073
pocket levels fill the DirtyColumns array with 255 to tell the MCPE server that the chunk is dirty.
2011-12-04 13:25:19 -10:00
David Vierra
413111477c
add lists of entity IDs
2011-12-02 16:06:49 -10:00
David Vierra
0a64c23f5c
added DirtyColumns array to pocket edition chunks.
2011-12-02 16:06:08 -10:00
David Vierra
c2f7b930a9
add TAG_Compound.saveGzipped and change load_ctx to use size_t for pointer offsets
2011-11-30 14:03:38 -10:00
David Vierra
8eaa43fe70
popen doesn't accept a unicode for its cwd parameter (doesn't use wchar api?), so encode it. fixes generator failure when startingDir has non-ascii chars
2011-11-29 19:58:44 -10:00
David Vierra
11ed48ce58
set MCAlphaDimension.parentWorld before calling MCInfdevOldLevel.__init__ to make sure the root_tag property has parentWorld set
2011-11-29 14:53:41 -10:00
David Vierra
065550a68b
in generateChunkInLevel, use a set for chunks instead of recreating the list after each pass.
2011-11-29 13:00:55 -10:00
David Vierra
0b403cab02
remove the sys.modules nonsense from addYamlBlocksFromFile. It now searches YAML_ROOT, the current directory, and sys.path in that order.
2011-11-29 12:58:21 -10:00
David Vierra
3703015f86
add setup_nbt.py and setupnbt64.bat. try to import _nbt without using ImportError, in case it was built using setup_nbt.py
2011-11-29 03:39:25 -10:00
David Vierra
6ba1634796
for infinite worlds, don't share the default players list from level.py. instead, only add "Player" to the players list when the player is found in level.dat.
2011-11-29 03:37:33 -10:00
David Vierra
e71e159461
add float variant for bounding box
2011-11-26 01:32:04 -10:00
David Vierra
f31b81cfe9
rename playerOrientation to getPlayerOrientation
2011-11-26 01:31:49 -10:00
David Vierra
c50a73fb2b
cacheNewVersion now has an allowDuplicate flag, used by checkForUpdates to avoid making extras of the same version
2011-11-25 17:15:47 -10:00
David Vierra
3253a5e0ec
added test for createLevel()
2011-11-25 16:43:09 -10:00
David Vierra
67cb6daa30
MCServerChunkGenerator.createLevel() creates a new level by running the server on it directly.
...
added option to simulate the world by running the server a bit longer to generateAtPosition(). chunkMalformed errors now include the original error, chunk "filename" includes the length in sectors
2011-11-25 16:23:49 -10:00
David Vierra
4135f603c5
Added _nbt.pyx, a Cython implentation of nbt that uses extension classes and pointer arithmetic to speed up loading.
...
Renamed nbt.py to pynbt.py, added nbt.py as a thin loader for either _nbt.pyx or pynbt.py.
2011-11-25 16:10:39 -10:00
David Vierra
c48adf501a
switch to cStringIO, clean up nbt.loadFile, add nbt.load to __all__
2011-11-25 15:49:02 -10:00
David Vierra
7933473be3
move NBT tests to tests.py, add speed test and chunks with TileTicks
2011-11-20 15:13:42 -10:00
David Vierra
7edd6d3a5e
unicode-format the log output from searching for yaml files
2011-11-19 15:39:25 -10:00
David Vierra
a7cd35af9a
when finding an unused server version name, actually use the one we found
2011-11-19 15:38:55 -10:00
David Vierra
b540788f59
prepend "Alpha" or "Release" to the older and newer version numbers appropriately.
2011-11-19 15:38:27 -10:00
David Vierra
6b9176e5a8
check that javaExe was found before trying to identify new server versions
2011-11-19 15:24:09 -10:00
David Vierra
8dd5f1a135
speed up generateChunksInLevelIter when chunks is very big. add minRadius and maxRadius parameters; assume server generates at least minRadius and then attempt to copy over maxRadius chunks
2011-11-19 09:54:05 -10:00
David Vierra
0318086838
check an environment variable for where to load yaml files from, so MCEdit can change it
2011-11-19 09:52:41 -10:00
David Vierra
3f327931cc
simulate the world for 15 seconds to process most of the tile ticks
2011-11-18 14:33:51 -10:00
David Vierra
43f0570c54
darkened tall grass
2011-11-17 20:43:29 -10:00
David Vierra
af4c11ea3f
removed nbt_length() and data= keyword argument to TAG_*, replacing them with load_from to pass around the data cursor
2011-11-17 20:43:21 -10:00
David Vierra
4c35acb49d
chain tracebacks for this ChunkMalformed exception
2011-11-17 20:42:24 -10:00
David Vierra
2809da320d
which() now checks %SYSTEMROOT% (because usually it's looking for java.exe which gets installed there). for some reason, PATH is absent from environ sometimes also.
2011-11-17 20:41:58 -10:00
David Vierra
4032053d53
copyBlocksFromInfinite now has an iterator form, so copyBlocksFromIter callers can show progress
2011-11-17 20:40:45 -10:00
David Vierra
e739afa53b
rearrange so __init__ is at the top of the class
2011-11-16 12:59:45 -10:00