Commit Graph
93 Commits
Author SHA1 Message Date
Andrew Brown 2d50b2e5f5 Merging in JPEG rendering code
Merge remote branch 'alexjurkiewicz/master'
2010-09-28 22:45:34 -04:00
Andrew Brown ac7908e815 readme update with parallel pngcrush recipe 2010-09-28 22:35:13 -04:00
Andrew Brown aa82a82f13 won't error when no worlds are found. Thanks jbergstroem 2010-09-27 09:03:24 -04:00
Andrew Brown c07ae135c1 catches all exceptions when loading a chunk image 2010-09-27 01:03:39 -04:00
Andrew Brown d637ddbbe1 added the option to specify a list of chunks to update. 2010-09-27 00:52:11 -04:00
Andrew Brown 58202bd779 Fixed this 2010-09-26 23:29:06 -04:00
Andrew Brown 458870510c Merge remote branch 'eminence/master' 2010-09-26 23:05:34 -04:00
Andrew Brown a957d0b097 clarified texture issue in readme. Misc changes
Added check for python >=2.6
Added current directory and program directory to paths to search for
minecraft.jar
2010-09-26 23:04:12 -04:00
Andrew Brown f5f572a92b fixed corrupt chunk handling code.
Instead of re-gening the chunk, it now removes it and leaves it alone.
The reason is that, now that the cache dir is separated from the chunk
data files, there's no way for that code to know where it came from. For
now, it's easier to just omit that one chunk, it'll be re-generated on
the next run anyways.
2010-09-25 23:10:49 -04:00
Andrew Brown 8d2c575758 properly loads the image and detects corrupted images 2010-09-25 15:07:41 -04:00
Andrew Brown 3c75c60f61 overhauled options descriptions in readme 2010-09-25 01:33:39 -04:00
Andrew Brown 32b776e6cc Tile task pool gets a maximum of 10000 tasks at a time
This should help memory problems for really large maps. I haven't
extensively tested this yet, but I think it should do the trick.
2010-09-24 00:36:33 -04:00
Andrew Brown b64ea5ad23 program is now completely single threaded/processed with -p1 2010-09-23 00:08:20 -04:00
Andrew Brown c53070304f can now specify a chunk cache directory manually 2010-09-22 23:51:31 -04:00
Andrew Brown 0c803608f3 moved a bit of code to a generator function
This'll make it easier to incrementally add tasks to the queue. I would
have gone ahead and done that now, but I'm out of time for the night.
2010-09-22 00:06:48 -04:00
Andrew Brown d6f5afc40f Added GPL license to all files.
If anyone is interested in using this software under different
conditions, contact me.
2010-09-21 22:51:12 -04:00
Andrew Brown 95f6342154 added a link to the world examples in the readme.
Also clarified an error message
2010-09-21 22:37:45 -04:00
Andrew Brown 7278286599 get_worlds only considers world dirs of length 6
(I like to store backups of my worlds in the same dir as World1.tar and
it was trying to open up world number 'r')
2010-09-21 22:36:06 -04:00
Andrew Brown e0929d06f4 explicitly create dest dir to fix race condition 2010-09-18 11:37:03 -04:00
Andrew Brown b12e2d1c8c fixed race condition in creating directories 2010-09-18 10:53:50 -04:00
Andrew Brown 7e62ab355f readme update 2010-09-18 00:32:59 -04:00
Andrew Brown 430ee24830 added existance checks before moving dirs.
Also removed a debug print
2010-09-18 00:24:22 -04:00
Andrew Brown c8c16d5fd3 big commits to a bunch of stuff. See expanded message
Added an option to enter your own zoom level. Use -z to set the map at a
particular zoom level. Zoom levels define the width and height in tiles
of the highest zoom level, each new zoom level is twice as wide and
tall. (z=6 -> 2^6 tiles wide and tall)

Implemented tile re-arrangement on map expansion. Now most tiles will
get re-used if your map needs another zoom level! No longer does it need
to re-generate everything.

No longer creates empty directories for tiles, only creates directories
if needed.

Fixed some minor off-by-one logic (and the code that canceled it out to
make it work)
2010-09-18 00:14:02 -04:00
Andrew Brown 7d11f4ecef Avoid a complete re-gen when world expands.
When the world expands and the Overviewer is forced to create a new zoom
level, use to be all tiles needed to be regenerated. Now that the world
center is always anchored, I can do some simple renaming of folders so
now when a world expands, tiles are re-used and it's very quick!
2010-09-16 23:41:07 -04:00
Andrew Brown 72090ff099 readme update 2010-09-15 21:55:55 -04:00
Andrew Brown 612307ff15 implemented hack to fix water grids. Water looks okay now! 2010-09-15 21:52:57 -04:00
Andrew Brown 9737a97d8a added an option to delete caches 2010-09-15 21:17:37 -04:00
Andrew Brown 6e323791e6 removed unneeded imports 2010-09-15 19:13:55 -04:00
Andrew Brown 0368a9b53c more readme updates 2010-09-15 19:07:00 -04:00
Andrew Brown 340229c690 readme updates 2010-09-15 00:10:33 -04:00
Andrew Brown b7ee3cb9e7 correct tiles dir 2010-09-15 00:03:34 -04:00
Andrew Brown 2d4f0cc082 I believe I now have a usable program again 2010-09-14 23:53:28 -04:00
Andrew Brown 230e6ad480 Re-wrote most of the quad-tree tile code and world code.
Doesn't work yet.
2010-09-14 22:55:27 -04:00
Andrew Brown 206c8a4c41 Merge branch 'master' of github.com:brownan/Minecraft-Overviewer 2010-09-14 18:12:50 -04:00
Andrew Brown 44fc65d753 I think this should fix windows support 2010-09-14 18:12:02 -04:00
Andrew Brown 3ddd1d26e1 -p1 has fewer output lines for chunk process 2010-09-14 12:37:36 -04:00
Andrew Brown 0003950c5e tile generation works for -p1 2010-09-12 22:23:01 -04:00
Andrew Brown 51d30a77d0 how embarrassing, I left some debug code in 2010-09-12 10:10:16 -04:00
Andrew Brown 8870e1d22a Merge remote branch 'munki/master' 2010-09-12 01:06:04 -04:00
Andrew Brown a3a4877e6a no longer validates images, runs MUCH faster to scan existing chunks.
If a chunk image can't be loaded, it re-generates it on the fly.
2010-09-12 01:04:31 -04:00
Andrew Brown 55d596fc26 chunk progress prints fewer lines. Made a perhaps insignificant
algorithm change
2010-09-11 22:34:07 -04:00
Andrew Brown 5726f7e23e chunk generation checks mtime before hashing block array 2010-09-11 22:07:46 -04:00
Andrew Brown 07d6df1cbe fixed minecraft.jar path on macs 2010-09-11 15:33:00 -04:00
Andrew Brown 9309fd6c96 Uses a shared semaphore to spawn new processes when needed.
This more effectively utilizes as many cores as you tell it. It should
now spawn a new process whenever an old branch of the recursive tree
finishes, to always use as many processes as you specify.
2010-09-11 13:21:13 -04:00
Andrew Brown be146385e4 readme updates 2010-09-11 00:36:43 -04:00
Andrew Brown f9783d7a20 Tile rendering is now mostly parallel up to 4 procs.
The initial recursive call for tile generation will spawn up to 3 extra
processes to work on each quadrant. It's not perfect yet since some
quadrants may have more or less work to do, and only 4 total workers are
supported.

Also, it waits for all chunks are finished before it dives into the
tiles, to prevent it from using more resources than requested.
2010-09-11 00:15:59 -04:00
Andrew Brown 1e296e858a readme updates, texture code updates.
Re-factored the way the textures and blocks are being built. It should
be easier to understand and add new exceptions (sorta). Also fixed the
water and lava with other texture packs by putting a static water.png
and lava.png in with the code.
2010-09-10 00:04:02 -04:00
Andrew Brown 0b77c02a62 Merge remote branch 'munki/master' 2010-09-09 22:43:35 -04:00
Andrew Brown 91440ec621 subprocesses catch keyboardinterrupt and raise a proper exception.
This causes the parent process to re-raise the exception when it
eventually tries to get() the result from the child, instead of hanging
forever on a ctrl-C. It doesn't happen immediately, which is not ideal,
but at least things will eventually exit on ctrl-C now.
2010-09-09 22:41:28 -04:00
Andrew Brown b6ceb536da removes tiles if they no longer exist 2010-09-07 21:52:56 -04:00
Andrew Brown b0b9a9a71a Merge remote branch 'munki/master'
Conflicts:
	gmap.py
2010-09-07 21:36:08 -04:00
Andrew Brown 8382e6664a cleaned up some comments 2010-09-07 21:32:57 -04:00
Andrew Brownandmunki 1ebde2ff55 readme updates, added a features section at the top 2010-09-08 09:23:45 +08:00
Andrew Brown dda682ce51 Merge remote branch 'munki/master' 2010-09-07 21:19:08 -04:00
Andrew Brown dddeb199d3 readme updates, added a features section at the top 2010-09-07 11:56:29 -04:00
Andrew Brown 41f5eab067 fixed template.html to use the right path 2010-09-06 22:53:16 -04:00
Andrew Brown dfc336e46a should still make the tiledir even if destdir exists 2010-09-06 22:17:10 -04:00
Andrew Brown 4bbdf17bd5 Merge commit 'bf07d3d10c2e00eba3371cff700c8f3cb4d8e3e8'
Note: now that the tiles directory has changed, anyone with existing
tiles should be sure to remove or move their old set of tiles

Conflicts:
	template.html
2010-09-06 22:13:21 -04:00
Andrew Brown 92724e2688 updated readme 2010-09-06 22:05:32 -04:00
Andrew Brown 2d7bd248ed fixed strangeness in tile caching code.
I believe the tile caching and hashing mechanisms are working now.
2010-09-06 12:58:30 -04:00
Andrew Brown 54fb6ace07 fixed typo. Thanks again alexjurkiewicz 2010-09-05 21:39:43 -04:00
Andrew Brown 06006c6202 added tile caching. A tile will only be re-rendered if the underlying
chunks changed.

The next time a set of tiles is generated, a series of has files will be
written along side the image files. These keep track of whether the file
has changed.
2010-09-05 18:11:47 -04:00
Andrew Brown ed8ea421fc won't render tiles that would otherwise be blank.
This cuts down on the number of files outputted and the total size.
2010-09-05 13:58:50 -04:00
Andrew Brown e5edfcbac8 readme update 2010-09-05 12:34:47 -04:00
Andrew Brown 956e72dda1 fixed headers in wrong order 2010-09-04 22:57:36 -04:00
Andrew Brown e15e05ab70 changed readme name so github will format it 2010-09-04 22:54:38 -04:00
Andrew Brown 60ed1e91ea updated readme 2010-09-04 19:38:31 -04:00
Andrew Brown a31810957f added gmap command line interface file 2010-09-04 19:22:32 -04:00
Andrew Brown 1e08406dff quadtree generation works. Changed scaling algorithm 2010-09-04 19:22:04 -04:00
Andrew Brown 8afeb05cc8 disabled rendering torches and minetracks for now 2010-09-04 19:20:04 -04:00
Andrew Brown 4201889941 added a block totaling function 2010-09-02 23:21:09 -04:00
Andrew Brown 2005976248 I think the quadtree works now. Comments for it are inaccurate though 2010-09-02 23:19:32 -04:00
Andrew Brown d86f158b9f re-render a chunk if the image is corrupt 2010-09-02 23:19:15 -04:00
Andrew Brown 0b2880de08 should be raising this exception 2010-09-01 23:47:22 -04:00
Andrew Brown e2b29328c6 Merge remote branch 'origin/tiles' into tiles
Conflicts:
	world.py
2010-09-01 23:44:05 -04:00
Andrew Brown 0cb7df13fb quadtree generation sorta works 2010-09-01 23:42:17 -04:00
Andrew Brown b198ee9049 Merge branch 'master' into tiles 2010-09-01 10:23:09 -04:00
Andrew Brown 4d0c869725 updated and clarified readme 2010-09-01 10:20:55 -04:00
Andrew Brown 2f94c2c21d ... 2010-09-01 10:18:15 -04:00
Andrew Brown de95ef827f wrote function prototype and docstring. Now I just need to implement it 2010-08-31 23:35:23 -04:00
Andrew Brown ee6eaf0206 tile drawing function implemented. Still needs an interface 2010-08-30 21:05:22 -04:00
Andrew Brown 8c162ce890 Checks for terrain.png in CWD first. Thanks alexjurkiewicz! 2010-08-29 11:37:18 -04:00
Andrew Brown 70361f3a6b added proper paths for Macs. Thanks ventolin! 2010-08-28 23:26:31 -04:00
Andrew Brown 6ba9eb903d corrected some numbers in the comments 2010-08-28 23:03:26 -04:00
Andrew Brown 09392fe3b4 prints out a full traceback for exceptions in worker processes 2010-08-28 22:55:17 -04:00
Andrew Brown 427f6fb92d padded block list to 256 length 2010-08-28 20:29:38 -04:00
Andrew Brown 145d271195 files are opened in binary for windows compatibility 2010-08-28 19:02:37 -04:00
Andrew Brown 403815a7dd added proper env var for windows 2010-08-28 18:50:19 -04:00
Andrew Brown abba5e1b2f added a readme 2010-08-28 18:02:14 -04:00
Andrew Brown 6d7e64a3d1 moved Image.new after the subprocesses are started 2010-08-28 17:42:52 -04:00
Andrew Brown 8817689276 added a command line interface 2010-08-27 23:45:19 -04:00
Andrew 08a86a52ab uses multiprocessing to speed up rendering. Caches chunks 2010-08-24 21:11:57 -04:00
Andrew 2eca1a5fb5 initial comit 2010-08-22 10:16:10 -04:00