Well, I don't know anything about BiomeTerrain mod, so I can't really comment. If BiomeTerrain changes the structure of the level files, then this tool will not work. If it doesn't change the structure, then I suspect it would work okay since this is an offline processing tool, not a mod.
And about Pumpkins and stuff, that would be nice, but it would also require me to do lighting recalculations on the chunks. I may look into it anyway but it steps away from the original intent of the tool.
also, i think the changes needed to make oregen both work as a library and as standalone program are final:[*:3eb89qys]a header has to be generated where the definition of ore_list, the declaration of update_all_chunks(), as well as the definitions of all structs and preprocessor constants needed by those two are moved into.
[*:3eb89qys]a #ifndef OREGEN_AS_LIB … #endif has to be wrapped around the main function. i tried to make the changes minimal, but if you don’t want to include them, i’ll have to deal with it. i would understand it, because maintaining two files is more tedious than one, but when my changes are applied, our applications can interoperate without neediing one of us to do anything when the other one updates.
also, if you decide to do the changes, you might also expose other useful functions, if someone else wants to use oregen as library.
I have broken the source across 5 files, for modularity. chunk.c / chunk.h are responsible for finding, loading, and saving a world's chunk files, as well as handling some of the world-level filtering options. The main update function takes a function pointer to a processing function (such as an ore generator). One could write functions to do other things, such as replace blocks or spawn other things. oregen.c / oregen.h contain the ore generator functions (including the callback function to feed to the chunk updater). main.c Just contains the options processor. Your GUI would replace main.c.
I apologize if some of the semantics are more complicated (function pointers, multiple option structs), but it will let me re-use the common code for other tasks.
is it possible to get an option to only override a specified list of ores? for instance, i wouldn't mind replacing coal, but the other ores i'd like to leave in place.
i'm most concerned about accurately reproducing the original generator's algorithm though. are the size of the deposits random also? have you done a lot of work to ensure as close to the original generator's algorithm as possible? i'm nervous about doing this to my SMP map and then later finding out we have a ridiculous amount of lapis more than normal.
also, i noticed options to exclude chunks based on last modify time, but some newer chunks with lapis we have are actively manipulated today and some older chunks without lapis we have not touched in a long time. i don't think the modified date will be useful in such a case? what about an option to detect if any ore of the requested type already exists in a chunk and if it does then not modify that chunk?
again, great idea. i'm excited to see where this goes.
I can't answer all those questions, but I do know on the few maps I tried, adding Lapis only to old chunks, it's pretty much impossible to tell from the actual lapis added by the game in new chunks, the distribution and clump size look pretty much the same. Just use one round of ore adding, I tried on a map using two and even though the clumps aren't that much bigger, it is noticeable that they are from clumps generate by the game, by maybe two or three blocks. Since an update increased the amount of lapis ore you get from each block, I don't see the need to do more than one round of ore adding. Unless you're going for building an entire structure out of lapis blocks, or dyed wool, there's not that much need for a huge amount of lapis. Now, if you're adding iron & coal to make tons of cart tracks, then you might want to increase the numbers, but I haven't fooled with adding an ore to a map that already has that ore, since I already used Mine Plump on my map for the older ores and have more than I'd ever need.
Rollback Post to RevisionRollBack
D_B
To tell them how to live is to prevent them living.
I recently found a good post detailing part of the actual ore deposit algorithm so in the future I may add that. The current algorithm is definitely not the same, but at small sizes it's an okay approximation (if you're really concerned, you could set something like -s 6 or -s 5).
I agree that modified time is not terribly useful. I wanted to do file creation time, but it's non-portable and I don't think it's supported at all in Linux. (It's a shame that the chunks themselves do not record their creation time, or even a version identifier). On the other hand you can set a bounding box around the chunks you want to update so you could approximate it that way if your map shape isn't too crazy.
All hard evidence suggests that chunks are generated with the same amount of diamond and Lapis ore blocks. The distribution is different, and the yield per block is different.
will this work with the skylands map? viewtopic.php?f=25&t=38214&hilit=skylands#p652545
The skylands is a floating island map. will this program restore the original chunks or will it just add blocks to the islands?
Rollback Post to RevisionRollBack
very nice suggestions not made by me. The aether: a cool ice/wind based realm Goedes : brings even more gems into minecraft in a sensible way.
I want occasional chairs. they have be better than sometimes sofas.
It should work. Make sure to manually set the min and max depth values to correctly align with the islands, or it's just going to see empty space and not generate anything.
I tried that with clouds of TNT once. Then after about 10 seconds one of them got primed somewhere in the world and everything ground to a complete standstill with perpetual exploding noises. I'm sure the damage would have been epic if I didn't mind waiting 3 years for the world to completely level itself.
I tried that with clouds of TNT once. Then after about 10 seconds one of them got primed somewhere in the world and everything ground to a complete standstill with perpetual exploding noises. I'm sure the damage would have been epic if I didn't mind waiting 3 years for the world to completely level itself.
I'd really like to use this with the Planetoids map generator, as it doesn't generate lapis lazuli as far as I know. Can anyone who understands this more give me a rundown on what options I'd have to run it with to generate some but not alter the cool "planet" appearance?
-r 4 is to compensate for the fact that most of the space is air and most lapis deposits will fail to find a place to go. You may want to bump it even higher.
The lapis will only be generated inside planets that contain stone (so perhaps that will only be stone planets). It will not prevent lapis from appearing on the edge of a planet, if that's what you were hoping to avoid. I'd have to add new options to restrict based on neighboring block. Probably in a future release.
And about Pumpkins and stuff, that would be nice, but it would also require me to do lighting recalculations on the chunks. I may look into it anyway but it steps away from the original intent of the tool.
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate
Would anyone use it?
http://tinyurl.com/9l6km29
just a batch file that will let you select all the options simply.
http://tinyurl.com/9l6km29
http://hocuspocus.taloncrossing.com/rii/oregen.zip
I have broken the source across 5 files, for modularity. chunk.c / chunk.h are responsible for finding, loading, and saving a world's chunk files, as well as handling some of the world-level filtering options. The main update function takes a function pointer to a processing function (such as an ore generator). One could write functions to do other things, such as replace blocks or spawn other things. oregen.c / oregen.h contain the ore generator functions (including the callback function to feed to the chunk updater). main.c Just contains the options processor. Your GUI would replace main.c.
I apologize if some of the semantics are more complicated (function pointers, multiple option structs), but it will let me re-use the common code for other tasks.
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate
is it possible to get an option to only override a specified list of ores? for instance, i wouldn't mind replacing coal, but the other ores i'd like to leave in place.
i'm most concerned about accurately reproducing the original generator's algorithm though. are the size of the deposits random also? have you done a lot of work to ensure as close to the original generator's algorithm as possible? i'm nervous about doing this to my SMP map and then later finding out we have a ridiculous amount of lapis more than normal.
also, i noticed options to exclude chunks based on last modify time, but some newer chunks with lapis we have are actively manipulated today and some older chunks without lapis we have not touched in a long time. i don't think the modified date will be useful in such a case? what about an option to detect if any ore of the requested type already exists in a chunk and if it does then not modify that chunk?
again, great idea. i'm excited to see where this goes.
D_B
To tell them how to live is to prevent them living.
I agree that modified time is not terribly useful. I wanted to do file creation time, but it's non-portable and I don't think it's supported at all in Linux. (It's a shame that the chunks themselves do not record their creation time, or even a version identifier). On the other hand you can set a bounding box around the chunks you want to update so you could approximate it that way if your map shape isn't too crazy.
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate
viewtopic.php?f=25&t=38214&hilit=skylands#p652545
The skylands is a floating island map. will this program restore the original chunks or will it just add blocks to the islands?
The aether: a cool ice/wind based realm
Goedes : brings even more gems into minecraft in a sensible way.
I want occasional chairs. they have be better than sometimes sofas.
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate
know how to fix this? or is it just not compatible for me :sad.gif:?
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate
install lagless tnt lol
http://tinyurl.com/9l6km29
-r 4 is to compensate for the fact that most of the space is air and most lapis deposits will fail to find a place to go. You may want to bump it even higher.
The lapis will only be generated inside planets that contain stone (so perhaps that will only be stone planets). It will not prevent lapis from appearing on the edge of a planet, if that's what you were hoping to avoid. I'd have to add new options to restrict based on neighboring block. Probably in a future release.
Mods I Develop: Garden Stuff -- Storage Drawers -- Hunger Strike
Tools I Develop: NBTExplorer -- Substrate