Can i automatically generate chunks in an area?
Posted 05 November 2010 - 01:10 AM
This thread is the current home of the Minecraft Land Generator program. The post for the current version is here:
I would like to have all of the chunks within, say, 200 blocks of the spawn filled in on my world, so i can make a nice map. Is there any way to do this without walking around manually? I didn't see anything in a search that looked likely.
Posted 05 November 2010 - 03:42 AM
Posted 05 November 2010 - 04:13 AM
edit: Trying to fix typos...
Posted 05 November 2010 - 06:06 AM
Posted 05 November 2010 - 06:19 AM
Posted 05 November 2010 - 06:51 AM
The same can be done for replacing massive amonts of land or generating smooth land/Towers
Posted 05 November 2010 - 07:30 AM
Posted 05 November 2010 - 09:27 AM
Posted 05 November 2010 - 01:59 PM
Totaly agree, to be able to deceide upon first login as admin decide how big the map is and adjust a set of guildlines suchs as amount of trees,lakes,hills ect and then hit a generate map button,m POOF that is your map it does not get any biggger and its chunks are pre generated.
Posted 06 November 2010 - 01:52 AM
For my own uses, I made a shell script in linux to:
1. Move the spawn 300 blocks over with mce
2. Start the server
3. Stop the server
4. goto 1
I was able to generate a 3000x3000 map after letting it run for awhile. Minecraft server will generate about 300 blocks or so in an area around the spawn when it starts up. And by default it will have save-on set, so you can safely just do a "stop" and it will write all of that out reliably.
I found this handy for making a better decision on starting new servers, I let people choose what area to "settle" on. Its like your in a spaceship crash landing, and you can steer the ship as its crashing. When they choose the area, I trim it to about 2000x2000 and prevent it from growing with a buffer of air, thats usually big enough for anybody. There's more, but I'm already getting way off topic.
Posted 06 November 2010 - 05:30 AM
Posted 06 November 2010 - 05:45 AM
Nobody even has to even connect to the server for it to do this. I'm letting it run right now to make a 6000x6000 map to see what that looks like. And there are no gaps when I move the spawn 300 blocks at a time in a grid pattern.
Note that spawn location, and locations players are while exploring are different concepts that shouldn't be confused with each other. When the server starts up, we've all seen this message:
2010-11-05 22:34:16 [INFO] Preparing start region
Preparing spawn area: 0%
Preparing spawn area: 4%
Preparing spawn area: 9%
Preparing spawn area: 14%
Preparing spawn area: 19%
Preparing spawn area: 23%
Preparing spawn area: 28%
and so on.
It is that feature I am exploiting to make it generate huge areas of terrain.
Posted 06 November 2010 - 09:39 AM
Posted 06 November 2010 - 09:57 AM
python mce.py /home/minecraft/world spawn -300 64 -200
Here's my 6000x6000 (not exact, its a little over) I made with it, took a few hours, but I ran it on one of my slower servers.
I could post a shell script to do it, but its really customized for my setup and would need some cleanup. Hopefully someone else just takes my idea of updating level.dat with new spawn coordinates and looping the server and makes a proper polished program to just do it for people. I'll post mine if there's interest though, it is smart but its not pretty.
Posted 06 November 2010 - 11:01 AM
I'd love to see it to get some ideas, I've got it going abit now but the result isn't coming out too well.
Posted 06 November 2010 - 04:33 PM
Start the server manually, then quit it.
Copy the level.dat to another directory, I called that world2.
Reason: If you point mce at a directory with just level.dat, it can change the spawn location without having to enumerate all the chunk files, which it will ignore anyway. It saves a lot of time.
~/data/world2 - directory with just a copy of the level.dat
~/testserver/world - world directory of our new world we're making
~/pymclevel - where mce is installed
~/testserver - install of minecraft. I recommend no mods at all. I also have multiplexer installed in this directory.
/usr/bin/python26 - that is where I have python 2.6, so if you see "python26" in my script, rename that to your python binary name.
seq -50 300 10000 > /tmp/x.txt seq -50 300 10000 > /tmp/y.txt for x in `cat /tmp/x.txt` do for y in `cat /tmp/y.txt` do cd ~/pymclevel python26 mce.py ~/data/world2 spawn $x 128 $y cp ~/data/world2/level.dat ~/testserver/world/level.dat cd ~/testserver echo stop | ./multiplexer.py echo sleeping for 1 sleep 1 done echo syncing sync done rm -f /tmp/x.txt /tmp/y.txt
Multiplexer is here
python26 mce.py ~/data/world worldsize
Posted 07 November 2010 - 06:47 AM