583 Commits

Author SHA1 Message Date
David Vierra
d84f570c18 Revert "Support dimensions with arbitrary directory names."
This patch was incomplete. Did not address moving players to alternate
dimensions using the Move Player tool, and added spurious entries to the
Goto Dimension menu.

This reverts commit b618202340f6a8f8e2e96e666e46f4d0f063e405.

Submodule pymclevel:
    > 89648d7 - Revert "Support dimensions with arbitrary directory names."
2012-11-10 12:32:01 -10:00
David Vierra
8fe49f485a Debug: Log caught exceptions to the console. 2012-11-10 12:32:01 -10:00
David Vierra
91acdbafa8 Fixed: Shift-nudge to move faster. 2012-11-10 12:32:00 -10:00
David Vierra
189da2476c Fixed: Only close the previous world when opening a new world, and not when switching dimensions.
Close the current level before opening the new one to avoid reopening an open level.
2012-11-10 12:31:52 -10:00
David Vierra
96de46c418 Update readme.md with website url. 2012-11-07 17:32:18 -10:00
David Vierra
241a648ce2 The "Report Errors" checkbox is no longer stuck on or off.
Split it into two settings, one for report errors and one for asking on startup if it's okay to report errors.
0.1.6build312
2012-11-07 12:34:23 -10:00
David Vierra
f185473c5d Fixed: Don't close the current level until just before loading the new level.
Prevents a crash while a dialog box is open with a closed level behind it.
2012-11-07 12:14:37 -10:00
David Vierra
4c7fb1a527 Debug: Scrub home folders from error reports. 2012-11-07 04:28:52 -10:00
David Vierra
243630a6c6 Debug: Add debug display for Biomes
Submodule pymclevel:
    > 0d22bae - Test: time_relight using a human-built structure and using natural terrain.
    > 4569227 - Fixed: Bug in copyBlocks where entities and tile entities would be copied multiple times.
    > 3b86896 - Fixed: generateLights was loading every affected chunk at once.
    > e904341 - Biomes: Add biome types.
2012-11-07 04:28:43 -10:00
David Vierra
0669015830 Fixed: On save, redraw dirty chunks found in _loadedChunkData and unsavedWorkFolder
This breaks Pocket compatibility. Levels need a way to tell the editor which chunks to refresh.
2012-11-06 14:24:39 -10:00
David Vierra
50d362d526 Add "Recent Changes" to main menu. 2012-11-06 14:23:17 -10:00
David Vierra
5c568959c2 Submodule pymclevel updated.
Submodule pymclevel:
    > 41fcf62 - Fixed: Mark chunks dirty while relighting chunks to make sure they don't get discarded between lighting passes.
    > da5dfcd - Fixed: Don't save chunks from the unsaved work folder if they have already been saved from _loadedChunkData.
    > 864e640 - Fixed: Check that Blocks, BlockLight and SkyLight all have default values before discarding a chunk section.
2012-11-05 13:59:56 -10:00
David Vierra
d8aaef158b Debug: Add 'Dirty' and 'NeedsLighting' displays to debug display. 2012-11-05 01:54:21 -10:00
David Vierra
bafa46be69 Fixed: Update links in main menu. 2012-11-05 01:54:21 -10:00
David Vierra
0a777b738a Debug: Set logging level to INFO if -debug is given in argv, else use WARN. 2012-11-05 01:54:20 -10:00
David Vierra
28b9244c69 Debug: Enable reporting errors to exceptional.io 2012-11-05 01:54:20 -10:00
David Vierra
547a087f94 Cleanup: Remove unneeded reinstantiation of items.items. 2012-11-04 00:25:42 -10:00
David Vierra
dc1ca09910 Fixed: Incorrect imports from pymclevel. (Fix the damn source roots already.) 2012-11-04 00:25:42 -10:00
David Vierra
5e18cfdf81 Try to simplify detecting the data directory. 2012-11-04 00:25:41 -10:00
David Vierra
a84ab25539 Fixed: Don't mutate a BoundingBox while drawing clone tool outlines. 2012-11-04 00:25:41 -10:00
David Vierra
9381baf735 Submodule pymclevel updated.
Submodule pymclevel:
    > dea8e79 - Fixed: AnvilWorldFolder no longer creates empty region files when trying to retrieve absent chunks.
    > 95af0c3 - Blocktypes: Include classic blocks in indev.yaml instead of loading classic.yaml twice.
    > 1968475 - Items: Ignore enchantment definitions (for now)
    > d68d58f - Items: Update to 1.4.2 (thanks @copyboy!)
    > 325b8f7 - Blocktypes: Add Anvils, minor reformat.
    > 1d218a2 - Fixed: MCServerChunkGenerator is working again.
    > 3ce0a7e - Fixed: MCServerChunkGenerator.createWorld accepts a relative pathname.
    > 0cb9299 - Fixed: extractAnySchematic no longer consumes all available memory.
    > 4b06963 - Fixed: Loaded chunk limit will not be exceeded when creating thousands of new chunks.
2012-11-04 00:24:08 -10:00
David Vierra
a2daa220a8 Test: Added script to create a 500MB test world for testing memory usage.
500MB is around 10 gigs uncompressed.
2012-11-02 12:50:04 -10:00
David Vierra
1eddd43ec3 Cleanup: Tabs to spaces 2012-11-01 19:00:38 -10:00
David Vierra
8e67b57b2b Fixed: Erosion brush had a misaligned destination point, causing results to be badly skewed in one direction. 2012-11-01 19:00:31 -10:00
David Vierra
210c3b50ec Build: setup.py now calls pymclevel/setup.py, now that setup_nbt.py was merged into it. 2012-11-01 18:59:24 -10:00
David Vierra
dd2bf7f2ae BoundingBox is now immutable, and use the new Vector for adding, subtracting, and rescaling positions.
Submodule pymclevel updated.

Submodule pymclevel:
    > 07c8024 - BoundingBox: Made BoundingBox immutable and added immutable Vector class
    > f5e4fd1 - FakeChunk now uses TAG_List for its fake Entities and TileEntities instead of lists.
    > 3e4a9b8 - NBT: TAG_List now accepts item assignment using slices.
    > 30cfb1d - Test: testFillBlocks calls fillBlocks with a blocksToReplace argument
    > 3fb1b0c - Fixed: Scan the unsaved work folder and _loadedChunkData in addition to the world folder when listing chunks.
    > fae5e61 - Fixed: Scan the unsaved work folder in addition to the world folder when listing chunks.
2012-11-01 00:30:18 -10:00
David Vierra
c8921b7d9d Refactor: Recent changes in pymclevel require some changes.
Use getChunkSlicesForBox to compute slices.
blockReplaceTable is moved to block_fill.py
adjustCopyParameters is moved to block_copy
info() was accidentally imported from some unknown module (wat? stop using wildcard imports!)

Submodule pymclevel:
    > 35bbbdc - Refactor: Change log statements to use `log.info()` instead of `info=log.info; info()`
    > ecac4fa - Refactor: Move fillBlocks into its own file and remove "fillBlocksFinite" implementation.
    > a7fd3ed - Refactor: Move copyEntitiesFrom logic into copyBlocksFrom and remove "copyEntitiesFromFinite" implementation.
    > b0ef494 - Test: copyBlocksFrom no longer fails if the requested box is partially out of the source level's bounds.
    > 459b208 - Indev: Now separates LocalPlayer from Entities on load and reinserts it on save.
    > 14f5343 - Test: Improve copyConvertBlocks to count entities copied
    > ea585d7 - Test: test_mcr no longer re-runs TestAnvilLevel.
    > cf51ef4 - Refactor: infiniteworld.py: Change log statements to use `log.info()` instead of `info=log.info; info()`
    > f36634b - Refactor: Move copyBlocksFrom and supporting methods to its own file and simplify them.
    > ded3b8f - Refactor: Remove redundant code for setting an anvil world's Height.
    > 93ccf9d - Refactor: Change a chunk's Height to reference the Height of its containing world.
    > fe03b70 - Entities: Fixed Tile positions when copying and rotating ItemFrames
2012-10-31 02:04:42 -10:00
David Vierra
179ccdef75 Fixed: FBO contents showing in the bottom left corner for a single frame. 2012-10-30 04:39:46 -10:00
David Vierra
0dfd1742e5 Debug: Set up logging before doing the majority of imports to catch early logs. 2012-10-30 04:39:46 -10:00
David Vierra
e5707fcd9e Fixed: Import from pymclevel.minecraft_server and not minecraft_server
My Pycharm project has mclevel/pymclevel marked as a source root, so automatic imports are relative to that folder. xxx fix it.
2012-10-30 04:39:45 -10:00
David Vierra
9881e50820 Fixed: Now that modified chunks are cached to disk, don't override the loaded chunk limit any more. 2012-10-30 04:39:45 -10:00
David Vierra
5a32845634 Submodule pymclevel updated.
Submodule pymclevel:
    > 6cde200 - Fixed: Log the exception in materials.py when pkg_resources fails to load a yaml file.
    > 03c6baa - Add dist/ to .gitignore
    > c62bc96 - Build: Merge setup_nbt.py into setup.py.
    > 7b3a599 - nbt: gunzip calls GzipFile now instead of zlib.decompress.
    > 2712e29 - Refactor: Clean up imports in nbt and _nbt
    > 5b5f399 - Test: Move the extended HeightMap test from mcr_test to anvil_test and give it a better name.
    > b0f7d59 - Test: Add uncompressed NBT file and NBT file modified by NBTExplorer.
    > 894ff7a - Server: ChunkNotPresent error while copying chunks now chains exception tracebacks.
    > df75222 - Test: testDeleteChunks asserts that the chunk is no longer present.
    > adb6b7b - Test: Place temporary copies of testing files into their own subfolder.
    > 6713404 - Storage: Modified, unsaved chunks are stored on disk instead of being retained in memory.
    > 94bfb1a - Fixed: deleteChunk removes the given chunk from allChunks and marks the world for recalculating its bounds.
    > 5ed8c3d - Backend: Add listDirtyChunks to let MCEdit find out which chunks to redraw after saving and relighting the level.
    > 5b921d7 - Backend: Split AnvilChunkData apart from AnvilChunk.
    > b2c8046 - Refactor: Removed now-unused fake "filename" attribute from AnvilChunk
    > 10ed3a6 - Refactor: Move chunk.sanitizeBlocks to global scope.
    > f9bd070 - Debug: Little script to run nbt tests with and without _nbt.pyx built.
    > 5f8d9e6 - Fixed: Newly created chunks create the HeightMap array with the correct byte order.
    > 4629531 - Debug: Add test case for Primordial Desert generator.
    > cc20115 - Debug: Add test to measure time taken for level.generateLights
    > 8f782ec - Debug: Add MCRegionFile.__repr__
    > d9d49eb - Fixed: Chunk.bounds now returns a sensible bounding box for its position in the world.
    > 1c6c307 - Fixed: AnvilWorldFolder won't accept a non-folder path but will create a folder for a nonexistent path.
    > 124e338 - Refactor: Change chunk.save() into chunk.getSavedData(). Remove world._saveChunk.
    > 75ae4a3 - AnvilChunk no longer calls world._loadChunk. Instead, the world passes the chunk's root_tag to the chunk's initializer.
    > 78f473e - Fixed: Change dtype of HeightMap in newly created chunks to uint32
2012-10-30 04:39:44 -10:00
David Vierra
4350e62e20 Fixed: filterdemo.py lies. Block by block access DOES mark the chunks for lighting. 2012-10-30 04:39:44 -10:00
David Vierra
b384768f7e Fixed: BrushOperation._perform correctly skips over absent chunks. 2012-10-30 04:39:44 -10:00
David Vierra
bba800c692 Refactor: Rearrange the main loops in BrushOperation.perform to have the chunks on the outer loop and the brush points on the inner loop.
This reduces the number of calls to getChunk which can avoid causing chunks to be loaded and unloaded constantly.
BrushMode.performAtPoint is split up into apply, applyToChunk, and applyToChunkSlices
Some modes need to use apply to just loop over the points without looping over any chunks.
dirtyBoxForPointAndOptions renamed to brushBoxForPointAndOptions
2012-10-30 04:39:32 -10:00
David Vierra
a9d6c96a07 Refactor: Move createBrushMask to global scope 2012-10-29 22:07:53 -10:00
David Vierra
35a0ffc067 Debug: Disable some noisy prints 2012-10-29 22:07:52 -10:00
David Vierra
9eca9075f7 Refactor: Remove call to removed method chunkFilename
Submodule pymclevel updated.

Submodule pymclevel:
    > 428a950 - Refactor: Simplify ZipSchematic code and move it to schematic.py
    > 36e7972 - Fixed: AnvilWorldFolder.getRegionFilename calls getFolderPath to ensure the folder exists
    > 208ba76 - Fixed: Call sanitizeBlocks when saving a chunk.
    > 85d79d6 - Normalized line endings
    > 28209fe - Refactor: Move chunk and region loading code out of MCInfdevOldLevel into a new class.
    > 8d0f6c0 - Change pocket_test to load an Anvil world instead of an MCR world.
    > 89c535f - Refactor: Change TagProperty to accept either a value or a function for the default value.
    > 81f5bbf - Test: testServerGen asserts that the newly created chunk contains any non-air blocks.
2012-10-29 22:07:49 -10:00
David Vierra
e8dc9814ff Refactor: Remove call to removed function chunkFilenameAt.
Submodule pymclevel updated.

Submodule pymclevel:
    > 38cd052 - Refactor: Reorder members and methods of MCInfdevOldLevel to place related methods closer together.
2012-10-29 22:05:09 -10:00
David Vierra
d6739b1282 Refactor: Remove all uses of chunk.compress and related methods.
MCServerChunkGenerator was moved to minecraft_server.py
Some strings were changed from single- to double-quoted while removing statically declared tag names.Submodule pymclevel updated.

Submodule pymclevel:
    > f4b4091 - Fixed: Statement seems to have no effect
    > b7ce019 - Fixed: Remove redundant parentheses
    > 55c2369 - Fixed: Incorrect call arguments
    > bca5e18 - Fixed: Default argument value is mutable
    > 6fa9249 - Refactor: Remove dead class members.
    > 79f4e1a - Refactor: Remove dead function.
    > a749389 - Fixed: Comparison with None performed with equality operators
    > 670bb46 - Refactor: Move MCServerChunkGenerator and related classes and functions to a new file minecraft_server.py
    > 0b55db7 - Refactor: Remove tag names statically declared as string constants.
    > 50f9ee5 - Add .gitattributes with core.autocrlf
    > 78e45ae - Refactor: Remove compressedChunks and related methods and data from MCInfdevOldLevel and AnvilChunk
2012-10-29 22:03:03 -10:00
Cymbalov Stanislav
e382fae8b7 Fix error while trying to undo player spawn move 2012-10-28 04:16:18 +04:00
David Vierra
17320f4aff Setup now makes dev builds by default unless the --stable option is given. 0.1.6build299 2012-10-25 12:24:50 -10:00
David Vierra
23659a5cf0 Fix bug in Topsoil brush introduced by import reshuffling. 2012-10-25 12:18:18 -10:00
David Vierra
513ddc0398 Normalized line endings 2012-10-25 00:09:56 -10:00
David Vierra
8d51d63261 Normalized line endings in filter.py 2012-10-24 13:27:24 -10:00
David Vierra
e5ab9a4cd9 Add .gitattributes file to specify line ending conversion. 2012-10-24 13:19:33 -10:00
David Vierra
3b2c32a5ca Clean up, compact, and clarify readme.
Bump Python version number, remove freezing/packaging info to the Wiki, add note about easy_install on Windows
2012-10-22 17:10:35 -10:00
David Vierra
8a4b2bedc8 Submodule pymclevel updated.
Submodule pymclevel:
    > 419a403 - Remove last remnant of old NBT code.
    > fde247b - Change data type of computed heightmap arrays to signed integer to avoid unsigned overflow.
    > 14967d4 - Increase default height of MCInfdevOldLevel to 256
0.1.5
2012-10-18 14:11:50 -10:00
David Vierra
d6b4b152b2 Submodule pymclevel updated.
Submodule pymclevel:
    > 9e9fbc0 - Improve test coverage somewhat.
    > 7972bb8 - Rename pynbt.py to nbt.py, remove old nbt.py
    > a83821c - Clean up NBT modules.
0.1.4
2012-10-16 02:31:11 -10:00
David Vierra
c4f365e79c Change default FOV to 70.0 2012-10-15 14:04:09 -10:00