-PLEASE POST/ TELL YOUR FRIENDS
- modloader/forge compatable
Media: videos/screenshots
Spoiler
http://www.youtube.com/watch?feature=player_detailpage&v=TK_8Lbd_HdQ
http://www.youtube.c...ayer_detailpage
WITHOUT BOD (before):

WITH BOD (after):

A COAL MINE (where there's ore, there's more, but mines are rare):
- normal

- x-ray

short description:http://www.youtube.com/watch?feature=player_detailpage&v=TK_8Lbd_HdQ
http://www.youtube.c...ayer_detailpage
WITHOUT BOD (before):

WITH BOD (after):

A COAL MINE (where there's ore, there's more, but mines are rare):
- normal

- x-ray

Spoiler
--- changes the way ore generates so that they are semi-grouped together in mines. this promotes exploration, the use of minecarts, and you don't have to strip mine anymore.
--- also a fully customizable ore distribution mod. Edit rarity, vein size, # of veins, height from bedrock, diameter of mine, ores rates based on biomes, vertical cluster density, and horizontal cluster density
Example pic:

All the stuff: download/description/instructions/etc.--- changes the way ore generates so that they are semi-grouped together in mines. this promotes exploration, the use of minecarts, and you don't have to strip mine anymore.
--- also a fully customizable ore distribution mod. Edit rarity, vein size, # of veins, height from bedrock, diameter of mine, ores rates based on biomes, vertical cluster density, and horizontal cluster density
Example pic:

Spoiler
This is my first mod. If you have any questions or suggestions I'll see what I can do, and when notch updates I'll try and fix the mod ASAP.
What the defaults do about mines:
Installation:
Change log:
What the defaults do about mines:
Spoiler
I for one like finding and mining scthuff. As most of you already know a "vein" of say Iron ore, averages 4 blocks. Lets say you get in the game and find you need some iron; you have two options, dig aimlessly, or get lost in a cave, and five hours later you have a stack of 64 Iron. personally I think this sucks.
What I have done in this mod is I have taken the ores and made them generate collectively by chunk, making mines
So Iron for example has a 1 in 40 chance of generating in a chunk (chunk = 16x128x16 blocks), and on a desert biome it has a 1 in 20 chance. If it does generate, some 70 veins, with of a max of 10 blocks in a vein, will generate in the chunk, making some 500-700 blocks in that chunk that are iron ore. Each ore has it's own setup like this making ore a bit more spread out, but is rewarding to find, because if you find any of something you know there is more in the ground there, just like real life
, giving you a reason to explore, and places to go.
There isn't more ore, it is just distributed in a (in my opinion) better way
.
Now you can have actual mines, with mine-carts!
so I've taken this
0x00z00x0
0z0y00y00
0z0x000z0
0y00z00x0
and made this
0z00z000z0 0000000000 0x00x000x0 0000000000 0y00y000y0 0000000000
00z00z0z00 0000000000 00x0x000x0 0000000000 00y00yy000 0000000000
00z0z000z0 0000000000 00x00x0x00 0000000000 00y0y000y0 0000000000
00z00zz000 0000000000 00x00xx000 0000000000 00y00y0y00 0000000000
and now with diameter and density controls, many of the ores look more like clouds than pillars
I also set it up so that layers 45+ would occasionally have a vein being a single block of ore, to tell you what's in the ground deeper down. like trace amounts of a material. though I personally have never see these trace ores in my testing. removed due to it not working
here are some screenshots of what this all can look like.
Iron Ore:
http://imageshack.us...0520121343.png/
Coal:
http://imageshack.us...0520121537.png/
Redstone:
http://imageshack.us...0520121743.png/
How to edit the generation:I for one like finding and mining scthuff. As most of you already know a "vein" of say Iron ore, averages 4 blocks. Lets say you get in the game and find you need some iron; you have two options, dig aimlessly, or get lost in a cave, and five hours later you have a stack of 64 Iron. personally I think this sucks.
What I have done in this mod is I have taken the ores and made them generate collectively by chunk, making mines
So Iron for example has a 1 in 40 chance of generating in a chunk (chunk = 16x128x16 blocks), and on a desert biome it has a 1 in 20 chance. If it does generate, some 70 veins, with of a max of 10 blocks in a vein, will generate in the chunk, making some 500-700 blocks in that chunk that are iron ore. Each ore has it's own setup like this making ore a bit more spread out, but is rewarding to find, because if you find any of something you know there is more in the ground there, just like real life
There isn't more ore, it is just distributed in a (in my opinion) better way
Now you can have actual mines, with mine-carts!
so I've taken this
0x00z00x0
0z0y00y00
0z0x000z0
0y00z00x0
and made this
0z00z000z0 0000000000 0x00x000x0 0000000000 0y00y000y0 0000000000
00z00z0z00 0000000000 00x0x000x0 0000000000 00y00yy000 0000000000
00z0z000z0 0000000000 00x00x0x00 0000000000 00y0y000y0 0000000000
00z00zz000 0000000000 00x00xx000 0000000000 00y00y0y00 0000000000
and now with diameter and density controls, many of the ores look more like clouds than pillars
here are some screenshots of what this all can look like.
Iron Ore:
http://imageshack.us...0520121343.png/
Coal:
http://imageshack.us...0520121537.png/
Redstone:
http://imageshack.us...0520121743.png/
Spoiler
what you can do with the customization, and what you should know: I recommend reading this before changing the default settings
Downloadwhat you can do with the customization, and what you should know: I recommend reading this before changing the default settings
Spoiler
Alright when you make a new map or generate new terrain it will create the BODprops folder in your .minecraft folder. it has BOD("version").txt, and BODbiomes("version.txt") in it.
These files have 7 things you should know:
Note: any new ores from mods will be added to the end of the BODprops file, and will only have their blockID's as identification. you have to figure out what ores go to what BlockID's yourself. ("#" starts a line as a comment in the text file)
1. probability_by_chunk: "rarity"
- this spreads out the probability of an ore occurring in a chunk (a chunk = 16x128x16 blocks) by a 1 in X chance. so if you have iron set to 10, 1 in every ten chunks will have iron in it. this is used for making for real mines
2. MAX_number_of_blocks_per_vein: "VeinSize"
this is the max number of blocks that can be made in a vein of an ore. this number goes to a random number generator, and averages half. so Iron set to 10, you will dig and find ~5 blocks connected. Also consider that veins can touch giving the appearance of larger veins, this is more prominent with a higher density: see #5. below
3. number_of_veins_per_chunk: "veinAmount"
taking the Iron example, if we set this to 20 for iron, iron now makes 20 veins, in 1 of every 10 chunks, with ~5 blocks per vein, making ~50 blocks average in the chunk.
WARNING! more veins = more time to create! WARNING!
4. max_height_from_bedrock: "height"
this option is.. well.. the height from bedrock, by default in vanilla minecraft, iron is 64 layers high, and diamond is 16. Be considerate, if you have 1000 blocks generate in a chunk below in the bottom 5 layers it will be crowded, this is the density and should be considered.
and I don't know what happens when it runs out of space, will most likely crash and corrupts your save.
5. Diameter
when a mine spawns in a chunk it is normally contained to that chunk's area (16x16), this allows you to make that larger, say 50, making it spawn in a 50x50 area, so it extends the its generation area (warning this will thin your ores out very quickly).
6. density vertical and horizontal:
these options shift the probability of a vein spawning to be greater towards the center
you can enter a number 1-100 as a percentage of density, 100 being as close as possible, and 1 being an even spread.
horizontal: is rather sensitive, I would recommend working in 1-50 for clean results.
vertical: will draw in the veins toward half the height, and as such will push it down deeper.
7. BODbiomes
it allows you to change the rarity of an ore based on what biome it's in. it has the blockID ,followed by the biome, followed by the new rarity for that ore in that biome.
like this: 15desert=50
will change the rarity of Iron to 50 in desert biomes. it only allows you to do this for the vanilla biomes.
Notes:
- new ores will be added to the .txt when they are first generated, and will need to be labeled and configured.
- you can easily reset the defaults by deleting BOD_properties.txt so a new one is made
- if you don't want the .txt on your desktop, move the minecraft.exe to your .mincraft folder and use a shortcut on your desktop
- changes to the .txt only occur in newly generated chunks
- I recommend an x-ray mod for getting you configurations just right
- I am not responsible for damaged saves
- GL and HF
- feel free to post your text configurations in a spoiler box with a description
Alright when you make a new map or generate new terrain it will create the BODprops folder in your .minecraft folder. it has BOD("version").txt, and BODbiomes("version.txt") in it.
These files have 7 things you should know:
Note: any new ores from mods will be added to the end of the BODprops file, and will only have their blockID's as identification. you have to figure out what ores go to what BlockID's yourself. ("#" starts a line as a comment in the text file)
1. probability_by_chunk: "rarity"
- this spreads out the probability of an ore occurring in a chunk (a chunk = 16x128x16 blocks) by a 1 in X chance. so if you have iron set to 10, 1 in every ten chunks will have iron in it. this is used for making for real mines
2. MAX_number_of_blocks_per_vein: "VeinSize"
this is the max number of blocks that can be made in a vein of an ore. this number goes to a random number generator, and averages half. so Iron set to 10, you will dig and find ~5 blocks connected. Also consider that veins can touch giving the appearance of larger veins, this is more prominent with a higher density: see #5. below
3. number_of_veins_per_chunk: "veinAmount"
taking the Iron example, if we set this to 20 for iron, iron now makes 20 veins, in 1 of every 10 chunks, with ~5 blocks per vein, making ~50 blocks average in the chunk.
WARNING! more veins = more time to create! WARNING!
4. max_height_from_bedrock: "height"
this option is.. well.. the height from bedrock, by default in vanilla minecraft, iron is 64 layers high, and diamond is 16. Be considerate, if you have 1000 blocks generate in a chunk below in the bottom 5 layers it will be crowded, this is the density and should be considered.
and I don't know what happens when it runs out of space, will most likely crash and corrupts your save.
5. Diameter
when a mine spawns in a chunk it is normally contained to that chunk's area (16x16), this allows you to make that larger, say 50, making it spawn in a 50x50 area, so it extends the its generation area (warning this will thin your ores out very quickly).
6. density vertical and horizontal:
these options shift the probability of a vein spawning to be greater towards the center
you can enter a number 1-100 as a percentage of density, 100 being as close as possible, and 1 being an even spread.
horizontal: is rather sensitive, I would recommend working in 1-50 for clean results.
vertical: will draw in the veins toward half the height, and as such will push it down deeper.
7. BODbiomes
it allows you to change the rarity of an ore based on what biome it's in. it has the blockID ,followed by the biome, followed by the new rarity for that ore in that biome.
like this: 15desert=50
will change the rarity of Iron to 50 in desert biomes. it only allows you to do this for the vanilla biomes.
Notes:
- new ores will be added to the .txt when they are first generated, and will need to be labeled and configured.
- you can easily reset the defaults by deleting BOD_properties.txt so a new one is made
- if you don't want the .txt on your desktop, move the minecraft.exe to your .mincraft folder and use a shortcut on your desktop
- changes to the .txt only occur in newly generated chunks
- I recommend an x-ray mod for getting you configurations just right
- I am not responsible for damaged saves
- GL and HF
- feel free to post your text configurations in a spoiler box with a description
Spoiler
V2.2
good luck, have fun, and edit some generation!
singleplayer - http://www.mediafire...x8nwy9b5oukk5xz - BOD 2.2fix2 for MC 1.2.4 / 1.2.5 (the 1.2.4 version works for 1.2.5, so don't freak out)
multiplayer - http://www.mediafire...n9w69y4tjew1qph - BOD 2.2fix2 for MC server 1.2.5
I am not responsible if you mess up your saves, back them up if you are unsure if you want a certain generation rate.
V2.2
good luck, have fun, and edit some generation!
singleplayer - http://www.mediafire...x8nwy9b5oukk5xz - BOD 2.2fix2 for MC 1.2.4 / 1.2.5 (the 1.2.4 version works for 1.2.5, so don't freak out)
multiplayer - http://www.mediafire...n9w69y4tjew1qph - BOD 2.2fix2 for MC server 1.2.5
I am not responsible if you mess up your saves, back them up if you are unsure if you want a certain generation rate.
Installation:
Spoiler
1. you have to open the main file for minecraft which should be in C:\user\"user name"\appdata\roaming\.minecraft\bin
2. there is a file named minecraft.jar, rename it to minecraft.zip
3. open it with a winzip, or a similar compression program
4. drop the file into the winzip window over the single .class files below, Don't drop it on the folders!
5. if you haven't for another mod, delete the META-INF folder
6. close winzip
7. rename minecraft.zip to minecraft.jar
and your ready to play!
to install it on your server:
1. find your server.jar (it must be the .jar from minecraft.net the .exe will not work)
2. rename it server.zip
3. repeat steps 3 and 4 of single player installation
4. rename server.zip back to server.jar
and now your friends can play!
- don't delete the Meta-inf folder for the server, it may cause your server to crash. if your server does not run properly, then try deleting it the Meta_inf. (thanks to Scearcrovv for finding this)
Other notes/ config repository1. you have to open the main file for minecraft which should be in C:\user\"user name"\appdata\roaming\.minecraft\bin
2. there is a file named minecraft.jar, rename it to minecraft.zip
3. open it with a winzip, or a similar compression program
4. drop the file into the winzip window over the single .class files below, Don't drop it on the folders!
5. if you haven't for another mod, delete the META-INF folder
6. close winzip
7. rename minecraft.zip to minecraft.jar
and your ready to play!
to install it on your server:
1. find your server.jar (it must be the .jar from minecraft.net the .exe will not work)
2. rename it server.zip
3. repeat steps 3 and 4 of single player installation
4. rename server.zip back to server.jar
and now your friends can play!
- don't delete the Meta-inf folder for the server, it may cause your server to crash. if your server does not run properly, then try deleting it the Meta_inf. (thanks to Scearcrovv for finding this)
Spoiler
Notes:
Notes:
Spoiler
Configs: feel free to post your config with a description- this only has an affect on ores that are newly generated, so it won't magically arrange ores on old maps. I recommend making a new map for this, or generating some new terrain.
- if you have an issue, post your game version and mod version, a description of the issue, and wait a little. I'll try to help
- I am not responsible for damaged saves
- If you try the mod, please give feed back in the comments and/or in the poll
- Good luck, and have fun
- if you have an issue, post your game version and mod version, a description of the issue, and wait a little. I'll try to help
- I am not responsible for damaged saves
- If you try the mod, please give feed back in the comments and/or in the poll
- Good luck, and have fun
Spoiler
IC2, starter config
IC2, starter config
Spoiler
#Dirt
3Rarity=50
3VeinSize=30
3VeinAmount=17
3Height=128
3Diameter=32
3VerticalDensity=15
3HorizontalDensity=10
#Gravel
13Rarity=50
13VeinSize=30
13VeinAmount=17
13Height=128
13Diameter=32
13VerticalDensity=15
13HorizontalDensity=10
#Gold
14Rarity=140
14VeinSize=10
14VeinAmount=70
14Height=50
14Diameter=50
14VerticalDensity=30
14HorizontalDensity=10
#Iron
15Rarity=75
15VeinSize=10
15VeinAmount=70
15Height=50
15Diameter=50
15VerticalDensity=15
15HorizontalDensity=20
#Coal
16Rarity=75
16VeinSize=16
16VeinAmount=43
16Height=90
16Diameter=48
16VerticalDensity=85
16HorizontalDensity=10
#Lapis
21Rarity=240
21VeinSize=10
21VeinAmount=100
21Height=50
21Diameter=50
21VerticalDensity=30
21HorizontalDensity=10
#Diamond
56Rarity=225
56VeinSize=10
56VeinAmount=100
56Height=50
56Diameter=60
56VerticalDensity=60
56HorizontalDensity=10
#Redstone
73Rarity=105
73VeinSize=15
73VeinAmount=46
73Height=38
73Diameter=50
73VerticalDensity=30
73HorizontalDensity=5
#Copper
249Rarity=82
249VeinSize=12
249VeinAmount=70
249Height=74
249Diameter=15
249VerticalDensity=10
249HorizontalDensity=1
#Tin
248Rarity=75
248VeinSize=10
248VeinAmount=70
248Height=74
248Diameter=15
248VerticalDensity=10
248HorizontalDensity=1
#Uranium
247Rarity=105
247VeinSize=10
247VeinAmount=100
247Height=66
247Diameter=15
247VerticalDensity=10
247HorizontalDensity=1
#Dirt
3Rarity=50
3VeinSize=30
3VeinAmount=17
3Height=128
3Diameter=32
3VerticalDensity=15
3HorizontalDensity=10
#Gravel
13Rarity=50
13VeinSize=30
13VeinAmount=17
13Height=128
13Diameter=32
13VerticalDensity=15
13HorizontalDensity=10
#Gold
14Rarity=140
14VeinSize=10
14VeinAmount=70
14Height=50
14Diameter=50
14VerticalDensity=30
14HorizontalDensity=10
#Iron
15Rarity=75
15VeinSize=10
15VeinAmount=70
15Height=50
15Diameter=50
15VerticalDensity=15
15HorizontalDensity=20
#Coal
16Rarity=75
16VeinSize=16
16VeinAmount=43
16Height=90
16Diameter=48
16VerticalDensity=85
16HorizontalDensity=10
#Lapis
21Rarity=240
21VeinSize=10
21VeinAmount=100
21Height=50
21Diameter=50
21VerticalDensity=30
21HorizontalDensity=10
#Diamond
56Rarity=225
56VeinSize=10
56VeinAmount=100
56Height=50
56Diameter=60
56VerticalDensity=60
56HorizontalDensity=10
#Redstone
73Rarity=105
73VeinSize=15
73VeinAmount=46
73Height=38
73Diameter=50
73VerticalDensity=30
73HorizontalDensity=5
#Copper
249Rarity=82
249VeinSize=12
249VeinAmount=70
249Height=74
249Diameter=15
249VerticalDensity=10
249HorizontalDensity=1
#Tin
248Rarity=75
248VeinSize=10
248VeinAmount=70
248Height=74
248Diameter=15
248VerticalDensity=10
248HorizontalDensity=1
#Uranium
247Rarity=105
247VeinSize=10
247VeinAmount=100
247Height=66
247Diameter=15
247VerticalDensity=10
247HorizontalDensity=1
Change log:
Spoiler
2.2fix2
- fixed bug with static variables, making the mines spawn in a dragged out line in the +x,+z direction.
2.2fix1
- fixed a bug with static variables, making all ores spawn with the same ID
2.2
- FIXED THE BUG where to many ores would spawn from modloader ores!
- adjusted the BODbiomes.txt
+ now changes the rarity of that ore to the value entered for that biome (so 15desert=50000 will change the rarity of iron to 50000 in desert biomes)
- adjusted some method orders to (i think) save memory.
- fixed seeds
+ seeds now maintain their terrain/biomes between vanilla and BOD, but some things like trees and ores will be different
2.1.1
+ fixed some coding errors that should help with proper generation
+adjusted the generation settings to be better
- diamond is more common
- made the mines larger with more veins
2.1:
+added customizable biome support
+added a directory to .minecraft
- a folder called BODprops now generates in your .minecraft folder and holds the BOD(version).txt and BODbiomes(version).txt
2.0: made other ores generate in the properties and made the mod 1.0 compatable
version archive:2.2fix2
- fixed bug with static variables, making the mines spawn in a dragged out line in the +x,+z direction.
2.2fix1
- fixed a bug with static variables, making all ores spawn with the same ID
2.2
- FIXED THE BUG where to many ores would spawn from modloader ores!
- adjusted the BODbiomes.txt
+ now changes the rarity of that ore to the value entered for that biome (so 15desert=50000 will change the rarity of iron to 50000 in desert biomes)
- adjusted some method orders to (i think) save memory.
- fixed seeds
+ seeds now maintain their terrain/biomes between vanilla and BOD, but some things like trees and ores will be different
2.1.1
+ fixed some coding errors that should help with proper generation
+adjusted the generation settings to be better
- diamond is more common
- made the mines larger with more veins
2.1:
+added customizable biome support
+added a directory to .minecraft
- a folder called BODprops now generates in your .minecraft folder and holds the BOD(version).txt and BODbiomes(version).txt
2.0: made other ores generate in the properties and made the mod 1.0 compatable
Spoiler
singleplayer - http://www.mediafire...7krntgl9rgmt9du - BOD 2.2fix2 for MC 1.2.3
multiplayer - a version was never made for 1.2.3
single player - http://www.mediafire...28v33lmtbis2rb9 BOD 2.2fix2 for MC 1.1
multiplayer - http://www.mediafire...6g8bpgrkgq7qge6 BOD 2.2fix2 for server 1.1 (the mines get cut of at a diameter o 16 still, I don't know why. just tweek the settings accordingly)
single player - http://www.mediafire...brdeomoi6ia05ga BOD 2.2fix1 for MC 1.1
single player - http://www.mediafire...yrm81y4dfx1jh11 BOD 2.1.1 for MC 1.1
multiplayer - http://www.mediafire...ff39pvvlex2o3vw BOD 2.1.1 for Server 1.1
single player - http://www.mediafire...29sr1ivf8h3hy6h - BOD 2.1.1 for MC 1.0
multiplayer - http://www.mediafire...zs145ch7a5xisan - BOD 2.1 for MC 1.0 currently broken... and I don't know why it won't work...
v2.1 singleplayer - http://www.mediafire...wqffl4swa9kwukc
single player - http://www.mediafire...oroqvc4ybrp0gxl - v2.0 for MC v1.0
multiplayer - http://www.mediafire...n6z2qdouk2x33x4 - v2.0 for MC v1.0
v2.0beta for MC v1.8.1 single player - http://www.mediafire...cymk43v49ohbae1
v2.0beta for MC v1.8.1 multiplayer - http://www.mediafire...691kb4k9pygsr74
1.7.3 single player - http://www.mediafire...ctczypah3049ch1
1.7.3 multiplayer - http://www.mediafire...4l1bmbzyt7tue5b
v1.4 1.6.6 single player - http://www.mediafire...m56lw29el09a0ve
v1.4 1.6.6 multiplayer - http://www.mediafire...uu3yjmpzscem8g8
v1.1 1.6.4 http://www.mediafire...2a0n1i0prhz9yn6
v1.0 (1.6.6) original: 1.6.6 COMPATABLE (there is really WAY too much ore in this version, might be good for busy SMP servers)
http://www.mediafire...982h7sso6dektsf - single player
http://www.mediafire...t5h2tj8mjhdp5le - (1.6.6!) multiplayer
v1.2 (1.6.6) 1.6.6 COMPATABLE ore mines are more rare, but have double the chance of generating in their biomes (see change log, and "technical stuff" post)
http://www.mediafire...ub4ap12504603wn - single player
http://www.mediafire...2tq02cbuix2ticg - (1.6.6!) Multiplayer
I will now move outdated and incompatible versions here from now on.
V1.3 - now has a properties file. It will create the file "BOD_properties.txt" in the location of of your minecraft.exe when map generation occurs for the first time. It will allow you to change the 1 in X chance of ore mines generating, and allows you to turn off the biome generations system (biome gen: each ore has twice the chance to generate in its biome). also note that the smaller the number the more common the ore, and that changes to the properties only take place in newly generated chunks
single player - http://www.mediafire...br69ij6vvabw0zw
multiplayer - http://www.mediafire...x7k9zak3n1k8jiz
single player - http://www.mediafire...ctczypah3049ch1 - v1.4 and MC 1.7.3
multiplayer - http://www.mediafire...4l1bmbzyt7tue5b - v1.4 and MC 1.7.3
The Code: full source for v2.2 (2/12/2012)singleplayer - http://www.mediafire...7krntgl9rgmt9du - BOD 2.2fix2 for MC 1.2.3
multiplayer - a version was never made for 1.2.3
single player - http://www.mediafire...28v33lmtbis2rb9 BOD 2.2fix2 for MC 1.1
multiplayer - http://www.mediafire...6g8bpgrkgq7qge6 BOD 2.2fix2 for server 1.1 (the mines get cut of at a diameter o 16 still, I don't know why. just tweek the settings accordingly)
single player - http://www.mediafire...brdeomoi6ia05ga BOD 2.2fix1 for MC 1.1
single player - http://www.mediafire...yrm81y4dfx1jh11 BOD 2.1.1 for MC 1.1
multiplayer - http://www.mediafire...ff39pvvlex2o3vw BOD 2.1.1 for Server 1.1
single player - http://www.mediafire...29sr1ivf8h3hy6h - BOD 2.1.1 for MC 1.0
v2.1 singleplayer - http://www.mediafire...wqffl4swa9kwukc
single player - http://www.mediafire...oroqvc4ybrp0gxl - v2.0 for MC v1.0
multiplayer - http://www.mediafire...n6z2qdouk2x33x4 - v2.0 for MC v1.0
v2.0beta for MC v1.8.1 single player - http://www.mediafire...cymk43v49ohbae1
v2.0beta for MC v1.8.1 multiplayer - http://www.mediafire...691kb4k9pygsr74
1.7.3 single player - http://www.mediafire...ctczypah3049ch1
1.7.3 multiplayer - http://www.mediafire...4l1bmbzyt7tue5b
v1.4 1.6.6 single player - http://www.mediafire...m56lw29el09a0ve
v1.4 1.6.6 multiplayer - http://www.mediafire...uu3yjmpzscem8g8
v1.1 1.6.4 http://www.mediafire...2a0n1i0prhz9yn6
v1.0 (1.6.6) original: 1.6.6 COMPATABLE (there is really WAY too much ore in this version, might be good for busy SMP servers)
http://www.mediafire...982h7sso6dektsf - single player
http://www.mediafire...t5h2tj8mjhdp5le - (1.6.6!) multiplayer
v1.2 (1.6.6) 1.6.6 COMPATABLE ore mines are more rare, but have double the chance of generating in their biomes (see change log, and "technical stuff" post)
http://www.mediafire...ub4ap12504603wn - single player
http://www.mediafire...2tq02cbuix2ticg - (1.6.6!) Multiplayer
I will now move outdated and incompatible versions here from now on.
V1.3 - now has a properties file. It will create the file "BOD_properties.txt" in the location of of your minecraft.exe when map generation occurs for the first time. It will allow you to change the 1 in X chance of ore mines generating, and allows you to turn off the biome generations system (biome gen: each ore has twice the chance to generate in its biome). also note that the smaller the number the more common the ore, and that changes to the properties only take place in newly generated chunks
single player - http://www.mediafire...br69ij6vvabw0zw
multiplayer - http://www.mediafire...x7k9zak3n1k8jiz
single player - http://www.mediafire...ctczypah3049ch1 - v1.4 and MC 1.7.3
multiplayer - http://www.mediafire...4l1bmbzyt7tue5b - v1.4 and MC 1.7.3
Spoiler
If you don't know how to mod you can ignore this.
I am going to allow other modders to integrate this mod and concept into their own if they wish (the mod now accepts new inputs from mods that add ores), but only under the condition that a credit to me and a link to my page are provided on the mod's page. Also post a link to your mod in a reply, or PM me so I know of you, and this can become a central hub of mods using this concept
. If you can mod you should be able to figure this out, see the "technical stuff" post below, for some other other details, though that's mostly out of date.
FULL CODE:

Banners: use one if you like the mod, without this the mod has no advertisement.If you don't know how to mod you can ignore this.
I am going to allow other modders to integrate this mod and concept into their own if they wish (the mod now accepts new inputs from mods that add ores), but only under the condition that a credit to me and a link to my page are provided on the mod's page. Also post a link to your mod in a reply, or PM me so I know of you, and this can become a central hub of mods using this concept
FULL CODE:
Spoiler
BiomeDecorator.java
WorldGenMinable.java
I see it as more important that the game is improved than me hoarding this mod's concept, my ultimate goal would be notch's implementation of this. good luck on modding all BiomeDecorator.java
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
if (currentWorld != null)
{
// throw new RuntimeException("Already decorating!!"); // must be removed for the mod to work
}
else
{
currentWorld = par1World;
randomGenerator = par2Random;
chunk_X = par3;
chunk_Z = par4;
decorate();
currentWorld = null;
randomGenerator = null;
return;
}
}
WorldGenMinable.java
package net.minecraft.src;
import java.io.*;
import java.util.*;
import net.minecraft.client.Minecraft; // remove for multiplayer server
import java.util.Random;
// Referenced classes of package net.minecraft.src:
// WorldGenerator, MathHelper, World, Block
public class WorldGenMinable extends WorldGenerator
{
public WorldGenMinable(int i, int j)
{
minableBlockId = i;
}
public boolean generate(World world, Random random, int i, int j, int k)//obsorb default system
{
randomOut = random; // pad the seed so it's the same as vannila
randomOut.nextFloat(); // |
randomOut.nextInt(3); // |
randomOut.nextInt(3); // |
randomOut.nextDouble();// |
if (minableBlockId==3)
{ // this makes sure everything is on a once per ore gen basis, because dirt generates first it sets everything up
MPChunk_X =((i / 16) * 16);// set output chunk x
MPChunk_Z =((k / 16) * 16);// set output chunk z
/*----*/ Random randomz = new Random(world.getSeed()); // setup a random for BOD
long l = (randomz.nextLong() / 2L) * 2L + 1L; // |
long l1 = (randomz.nextLong() / 2L) * 2L + 1L; // |
randomz.setSeed((long)i * l + (long)j * l1 ^ world.getSeed()); // |
/*----*/ rand = randomz;
worldObj = world; // set world
mineCount = 1; // tell checks that this is a new chunk
for (int lpCnt2 = 0; lpCnt2 < 40; lpCnt2++) {aOreCheck[lpCnt2]=0;} // zeros out array // mpblockid != mpprevid stops dirt and general cases, this will stop exceptions
}
MPBlockID = minableBlockId;// set output block ID
genBeforeCheck = false; // ore has not generated before unless told otherwise
if (MPBlockID != MPPrevID2) // only check for new ore
{
for (int lpCnt = 0; lpCnt < 40; lpCnt++) // check if ore has generated before, and tatle if so
{
if (aOreCheck[lpCnt] == MPBlockID) // if the current ID matches any recorded for this chunk, prevent generation
{
genBeforeCheck = true;
}
}
}
if(MPChunk_X != MPPrevX || MPChunk_Z != MPPrevZ || MPBlockID != MPPrevID)// if it is a new x or y chunk or is a new ore, then generate // blockID stops dirt
{
if (genBeforeCheck == false)
{
MPPrevX = MPChunk_X;
MPPrevZ = MPChunk_Z;
x_Chunk = MPChunk_X;
z_Chunk = MPChunk_Z;
MPPrevID = MPBlockID;
BetterOreDistribution(x_Chunk, z_Chunk, MPBlockID); // gather ore gen values from .txt
rarity = mPBiomeRarity(rarity, x_Chunk, z_Chunk, MPBlockID); // retrieve rarity for this ore in this biome
if (rand.nextInt(rarity) == 0) // use values
{
//mineCountS++; // used for debugging
// System.out.println("at " + (MPChunk_X / 16) + "," + (MPChunk_Z / 16) + ", id " + MPBlockID /*+ "-" + MPPrevID2 + "-" + MPPrevID3 + "-" + MPPrevID4*/ + ", R " + rarity + ", VS " + veinSi + ", VA " + veinAm + ", H " + height + ", D " + diameter + ", VD " + vDens + ", HD " + hDens + ", MC " + mineCountS); // used for debugging
for(int loopCount = 0; loopCount < veinAm; loopCount++)
{
int temp1 = mPCalculateDensity(diameter, hDens);
int temp2 = mPCalculateDensity(height, vDens);
int temp3 = mPCalculateDensity(diameter, hDens);
int l5 = x_Chunk + temp1;
int i9 = temp2;
int k13 = z_Chunk + temp3;
BODgenerate(worldObj, rand, l5, i9, k13, veinSi); // generate based on values
}
}
aOreCheck[mineCount] = MPBlockID; // add this ore to the list of ores for this chunk// note: regardless of it actually generating, this makes sure it only gets one attempt
mineCount++; // increase number for array, so the next ID is in its own slot
}
}
return true;
}
//======================================================================================
public int mPCalculateDensity(int oreDist, float oreDens) // returns the density value
{
int lpCnt = 0;
int dValPassInr = 0;
int dValPass = 0;
oreDens = oreDens * .01F;
oreDens = (oreDens * (oreDist >> 1)) + 1F;// establishes number of times to loop
lpCnt = (int)(oreDens); //stores number of times to loop
dValPassInr = (int)((oreDist/oreDens)+.5F); // distance devided by number of times it will loop, establishes the number for randomization
dValPass = 0;
while (lpCnt > 0) // loops to acumulate random values
{
dValPass = dValPass + rand.nextInt(dValPassInr); // acumulate randoms
lpCnt = lpCnt - 1; // decriment loop
}
return dValPass; // return proccesed random value
}
public int mPBiomeRarity(int biomeRar, int xChunkBio, int zChunkBio, int MPMinableBlockId)
{
worldChunkManager = worldObj.getWorldChunkManager();
BiomeGenBase biomegenbase = worldChunkManager.getBiomeGenAt(xChunkBio, zChunkBio);
Properties props = new Properties();
int[] biomeVals = new int[14] ;
int inc1 = 0;
while (inc1 <=13) // load the default into the array, otherwise its 0 and messes stuff up when something doesn't exist
{
biomeVals[inc1] = rarity;
inc1++;
}
String[] valPass = new String[14];
String valPassB = "1";
try
{
BODFile = new File(Minecraft.getAppDir("minecraft"), "/BODprops/BODbiomes(2.2).txt"); // setup file // remove the minecraft directory portion for multiplayer
props.load(new FileInputStream(BODFile));
valPass[0] = String.valueOf(MPMinableBlockId + "ocean"); // store character data from text in array
valPass[1] = String.valueOf(MPMinableBlockId + "plains");
valPass[2] = String.valueOf(MPMinableBlockId + "desert");
valPass[3] = String.valueOf(MPMinableBlockId + "extremeHills");
valPass[4] = String.valueOf(MPMinableBlockId + "forest");
valPass[5] = String.valueOf(MPMinableBlockId + "taiga");
valPass[6] = String.valueOf(MPMinableBlockId + "swampland");
valPass[7] = String.valueOf(MPMinableBlockId + "river");
valPass[8] = String.valueOf(MPMinableBlockId + "frozenOcean");
valPass[9] = String.valueOf(MPMinableBlockId + "frozenRiver");
valPass[10] = String.valueOf(MPMinableBlockId + "icePlains");
valPass[11] = String.valueOf(MPMinableBlockId + "iceMountains");
valPass[12] = String.valueOf(MPMinableBlockId + "mushroomIsland");
valPass[13] = String.valueOf(MPMinableBlockId + "mushroomIslandShore");
int inc = 0;
while (inc <= 13)
{
if (biomeVals[inc] <=0){biomeVals[inc]=rarity;} // if something is wierd, prevent zeros, cuz they screw stuff up
if (props.getProperty(valPass[inc])!= null) // make sure it exists first
{
valPassB = props.getProperty(valPass[inc]); // get new rarity value
biomeVals[inc] = Integer.valueOf(valPassB);
if (biomeVals[inc] <=0){biomeVals[inc]=rarity;} // prevent division by zero
}
inc = inc + 1;
}
}
catch(IOException j)
{
try
{
BufferedWriter out = new BufferedWriter(new FileWriter(BODFile));
out.write("# 3=dirt, 13=gravel, 14=gold, 15=iron, 16=coal, 21=lapis, 56=diamond, 73=redstone" + "\r\n");
out.write("\r\n");
out.write("#-----------ocean" + "\r\n");
out.write("21ocean=75" + "\r\n");
out.write("\r\n");
out.write("#-----------plains" + "\r\n");
out.write("3plains=25" + "\r\n");
out.write("\r\n");
out.write("#-----------desert" + "\r\n");
out.write("15desert=37" + "\r\n");
out.write("\r\n");
out.write("#-----------extremeHills" + "\r\n");
out.write("14extremeHills=70" + "\r\n");
out.write("\r\n");
out.write("#-----------forest" + "\r\n");
out.write("15forest=37" + "\r\n");
out.write("\r\n");
out.write("#-----------taiga" + "\r\n");
out.write("16taiga=42" + "\r\n");
out.write("\r\n");
out.write("#-----------swampland" + "\r\n");
out.write("73swampland=55" + "\r\n");
out.write("\r\n");
out.write("#-----------river" + "\r\n");
out.write("14river=70" + "\r\n");
out.write("\r\n");
out.write("#-----------frozenOcean" + "\r\n");
out.write("\r\n");
out.write("#-----------frozenRiver" + "\r\n");
out.write("\r\n");
out.write("#-----------icePlains" + "\r\n");
out.write("56icePlains=56" + "\r\n");
out.write("\r\n");
out.write("#-----------iceMountains" + "\r\n");
out.write("56iceMountains=56" + "\r\n");
out.write("\r\n");
out.write("#-----------mushroomIsland" + "\r\n");
out.write("13mushroomIsland=40" + "\r\n");
out.write("14mushroomIsland=50" + "\r\n");
out.write("15mushroomIsland=50" + "\r\n");
out.write("16mushroomIsland=50" + "\r\n");
out.write("21mushroomIsland=50" + "\r\n");
out.write("56mushroomIsland=50" + "\r\n");
out.write("73mushroomIsland=50" + "\r\n");
out.write("\r\n");
out.write("#-----------mushroomIslandShore" + "\r\n");
out.write("13mushroomIslandShore=40" + "\r\n");
out.write("14mushroomIslandShore=50" + "\r\n");
out.write("15mushroomIslandShore=50" + "\r\n");
out.write("16mushroomIslandShore=50" + "\r\n");
out.write("21mushroomIslandShore=50" + "\r\n");
out.write("56mushroomIslandShore=50" + "\r\n");
out.write("73mushroomIslandShore=50" + "\r\n");
out.write("" + "\r\n");
out.close();
}
catch(IOException i)
{
}
}
if (biomeRar <= 0) {biomeRar = rarity;} // prevent division by zero
if(biomegenbase == BiomeGenBase.ocean)
{
// if (biomeVals[0] <=0){biomeVals[0]=1;} // prevent division by zero
if( valPass[0] != null){biomeRar = biomeVals[0] ;} // 2.2 removed "biomeRar /" from {biomeRar = biomeRar / biomeVals[0] ;}
}
else if(biomegenbase == BiomeGenBase.plains)
{
// if (biomeVals[1] <=0){biomeVals[1]=1;}
if( valPass[1] != null){biomeRar = biomeVals[1] ;}
}
else if(biomegenbase == BiomeGenBase.desert)
{
// if (biomeVals[2] <=0){biomeVals[2]=1;}
if( valPass[2] != null){biomeRar = biomeVals[2] ;}
}
else if(biomegenbase == BiomeGenBase.extremeHills)
{
// if (biomeVals[3] <=0){biomeVals[3]=1;}
if( valPass[3] != null){biomeRar = biomeVals[3] ;}
}
else if(biomegenbase == BiomeGenBase.forest)
{
// if (biomeVals[4] <=0){biomeVals[4]=1;}
if( valPass[4] != null){biomeRar = biomeVals[4] ;}
}
else if(biomegenbase == BiomeGenBase.taiga)
{
// if (biomeVals[5] <=0){biomeVals[5]=1;}
if( valPass[5] != null){biomeRar = biomeVals[5] ;}
}
else if(biomegenbase == BiomeGenBase.swampland)
{
// if (biomeVals[6] <=0){biomeVals[6]=1;}
if( valPass[6] != null){biomeRar = biomeVals[6] ;}
}
else if(biomegenbase == BiomeGenBase.river)
{
// if (biomeVals[7] <=0){biomeVals[7]=1;}
if( valPass[7] != null){biomeRar = biomeVals[7] ;}
}
else if(biomegenbase == BiomeGenBase.frozenOcean)
{
// if (biomeVals[8] <=0){biomeVals[8]=1;}
if( valPass[8] != null){biomeRar = biomeVals[8] ;}
}
else if(biomegenbase == BiomeGenBase.frozenRiver)
{
// if (biomeVals[9] <=0){biomeVals[9]=1;}
if( valPass[9] != null){biomeRar = biomeVals[9] ;}
}
else if(biomegenbase == BiomeGenBase.icePlains)
{
// if (biomeVals[10] <=0){biomeVals[10]=1;}
if( valPass[10] != null){biomeRar = biomeVals[10] ;}
}
else if(biomegenbase == BiomeGenBase.iceMountains)
{
// if (biomeVals[11] <=0){biomeVals[11]=1;}
if( valPass[11] != null){biomeRar = biomeVals[11] ;}
}
else if(biomegenbase == BiomeGenBase.mushroomIsland)
{
// if (biomeVals[12] <=0){biomeVals[12]=1;}
if( valPass[12] != null){biomeRar = biomeVals[12] ;}
}
else if(biomegenbase == BiomeGenBase.mushroomIslandShore)
{
// if (biomeVals[13] <=0){biomeVals[13]=1;}
if( valPass[13] != null){biomeRar = biomeVals[13] ;}
}
else {biomeRar = rarity;}
if (biomeRar <= 0) {biomeRar = 1;} // prevent division by zero
return biomeRar;
}
public boolean BetterOreDistribution(int xChunk, int zChunk, int MPMinableBlockId)//======================================================================================
{
rarity = 2;
veinSi = 2;
veinAm = 2;
height = 2;
diameter = 2;
vDens = 2;
hDens = 2;
String valPass = "1";
Properties props = new Properties();
//try retrieve data from file
try
{
File f=new File(Minecraft.getAppDir("minecraft"), "/BODprops"); // remove minecraft directy portion for multiplayer
if(f.exists()==false)
{
f.mkdirs();
}
BODFile = new File(Minecraft.getAppDir("minecraft"), "/BODprops/BOD(2.2).txt");
props.load(new FileInputStream(BODFile));
// assign value to ore variable only if it is not null
String valPass1 = String.valueOf(MPMinableBlockId + "Rarity");
String valPass2 = String.valueOf(MPMinableBlockId + "VeinSize");
String valPass3 = String.valueOf(MPMinableBlockId + "VeinAmount");
String valPass4 = String.valueOf(MPMinableBlockId + "Height");
String valPass5 = String.valueOf(MPMinableBlockId + "Diameter");
String valPass6 = String.valueOf(MPMinableBlockId + "VerticalDensity");
String valPass7 = String.valueOf(MPMinableBlockId + "HorizontalDensity");
if (props.getProperty(valPass1)== null || props.getProperty(valPass2)== null || props.getProperty(valPass3)== null || props.getProperty(valPass4)== null || props.getProperty(valPass5)== null || props.getProperty(valPass6)== null || props.getProperty(valPass7)== null)
{
try
{
BufferedWriter out = new BufferedWriter(new FileWriter(BODFile,true));
out.write("#NewBlock" + MPMinableBlockId + "\r\n");
out.write(MPMinableBlockId + "Rarity=50" + "\r\n");
out.write(MPMinableBlockId + "VeinSize=10" + "\r\n");
out.write(MPMinableBlockId + "VeinAmount=70" + "\r\n");
out.write(MPMinableBlockId + "Height=95" + "\r\n");
out.write(MPMinableBlockId + "Diameter=48" + "\r\n");
out.write(MPMinableBlockId + "VerticalDensity=10" + "\r\n");
out.write(MPMinableBlockId + "HorizontalDensity=10" + "\r\n" + "\r\n");
out.close();
}
catch (IOException h)
{
//minecraft.thePlayer.addChatMessage("BOD: could not write to props file");
}
}
if (props.getProperty(valPass1)!= null){
valPass = props.getProperty(valPass1); // rarity
rarity = Integer.valueOf(valPass) ; }
if (props.getProperty(valPass2) != null){
valPass = props.getProperty(valPass2); // size
veinSi = Integer.valueOf(valPass) ; }
if (props.getProperty(valPass3) != null){
valPass = props.getProperty(valPass3); // amount
veinAm = Integer.valueOf(valPass) ; }
if (props.getProperty(valPass4) != null){
valPass = props.getProperty(valPass4); // height
height = Integer.valueOf(valPass) ; }
if (props.getProperty(valPass5) != null){
valPass = props.getProperty(valPass5); // diameter
diameter = Integer.valueOf(valPass) ; }
if (props.getProperty(valPass6) != null){
valPass = props.getProperty(valPass6); // vertical dense.
vDens = Integer.valueOf(valPass) ; }
if (props.getProperty(valPass7) != null){
valPass = props.getProperty(valPass7); // horiz. dense.
hDens = Integer.valueOf(valPass) ; }
}
//catch exception in case properties file does not exist
catch(IOException e)
{
try
{
BufferedWriter out = new BufferedWriter(new FileWriter(BODFile));
out.write("#Dirt" + "\r\n"); // dirt
out.write("3Rarity=50" + "\r\n");
out.write("3VeinSize=30" + "\r\n");
out.write("3VeinAmount=17" + "\r\n");
out.write("3Height=128" + "\r\n");
out.write("3Diameter=32" + "\r\n");
out.write("3VerticalDensity=15" + "\r\n");
out.write("3HorizontalDensity=10" + "\r\n" + "\r\n");
out.write("#Gravel" + "\r\n"); // gravel
out.write("13Rarity=50" + "\r\n");
out.write("13VeinSize=30" + "\r\n");
out.write("13VeinAmount=17" + "\r\n");
out.write("13Height=128" + "\r\n");
out.write("13Diameter=32" + "\r\n");
out.write("13VerticalDensity=15" + "\r\n");
out.write("13HorizontalDensity=10" + "\r\n" + "\r\n");
out.write("#Gold" + "\r\n"); // gold
out.write("14Rarity=140" + "\r\n");
out.write("14VeinSize=8" + "\r\n");
out.write("14VeinAmount=135" + "\r\n");
out.write("14Height=80" + "\r\n");
out.write("14Diameter=60" + "\r\n");
out.write("14VerticalDensity=20" + "\r\n");
out.write("14HorizontalDensity=10" + "\r\n" + "\r\n");
out.write("#Iron" + "\r\n"); // Iron
out.write("15Rarity=75" + "\r\n");
out.write("15VeinSize=8" + "\r\n");
out.write("15VeinAmount=220" + "\r\n");
out.write("15Height=80" + "\r\n");
out.write("15Diameter=65" + "\r\n");
out.write("15VerticalDensity=15" + "\r\n");
out.write("15HorizontalDensity=15" + "\r\n" + "\r\n");
out.write("#Coal" + "\r\n"); // coal
out.write("16Rarity=95" + "\r\n");
out.write("16VeinSize=14" + "\r\n");
out.write("16VeinAmount=150" + "\r\n");
out.write("16Height=90" + "\r\n");
out.write("16Diameter=70" + "\r\n");
out.write("16VerticalDensity=30" + "\r\n");
out.write("16HorizontalDensity=10" + "\r\n" + "\r\n");
out.write("#Lapis" + "\r\n"); // lapis
out.write("21Rarity=225" + "\r\n");
out.write("21VeinSize=8" + "\r\n");
out.write("21VeinAmount=200" + "\r\n");
out.write("21Height=50" + "\r\n");
out.write("21Diameter=70" + "\r\n");
out.write("21VerticalDensity=20" + "\r\n");
out.write("21HorizontalDensity=10" + "\r\n" + "\r\n");
out.write("#Diamond" + "\r\n"); // daimond
out.write("56Rarity=160" + "\r\n");
out.write("56VeinSize=8" + "\r\n");
out.write("56VeinAmount=220" + "\r\n");
out.write("56Height=70" + "\r\n");
out.write("56Diameter=70" + "\r\n");
out.write("56VerticalDensity=20" + "\r\n");
out.write("56HorizontalDensity=10" + "\r\n" + "\r\n");
out.write("#Redstone" + "\r\n"); // redstone
out.write("73Rarity=110" + "\r\n");
out.write("73VeinSize=12" + "\r\n");
out.write("73VeinAmount=160" + "\r\n");
out.write("73Height=12" + "\r\n");
out.write("73Diameter=160" + "\r\n");
out.write("73VerticalDensity=20" + "\r\n");
out.write("73HorizontalDensity=5" + "\r\n" + "\r\n");
out.close();
}
catch (IOException f)
{
//minecraft.thePlayer.addChatMessage("BOD: could not generate props file");
}
}
// all variables set, continue to generate
return true;
}
public boolean BODgenerate(World world, Random rand, int par3, int par4, int par5, int xyz)
{
//==========================================mp mod
numberOfBlocks = xyz; //input number of blocks per vein
//==========================================mp mod
float f = rand.nextFloat() * (float)Math.PI;
double d = (float)(par3 + 8) + (MathHelper.sin(f) * (float)numberOfBlocks) / 8F;
double d1 = (float)(par3 + 8) - (MathHelper.sin(f) * (float)numberOfBlocks) / 8F;
double d2 = (float)(par5 + 8) + (MathHelper.cos(f) * (float)numberOfBlocks) / 8F;
double d3 = (float)(par5 + 8) - (MathHelper.cos(f) * (float)numberOfBlocks) / 8F;
double d4 = (par4 + rand.nextInt(3)) - 2;
double d5 = (par4 + rand.nextInt(3)) - 2;
for (int i = 0; i <= numberOfBlocks; i++)
{
double d6 = d + ((d1 - d) * (double)i) / (double)numberOfBlocks;
double d7 = d4 + ((d5 - d4) * (double)i) / (double)numberOfBlocks;
double d8 = d2 + ((d3 - d2) * (double)i) / (double)numberOfBlocks;
double d9 = (rand.nextDouble() * (double)numberOfBlocks) / 16D;
double d10 = (double)(MathHelper.sin(((float)i * (float)Math.PI) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D;
double d11 = (double)(MathHelper.sin(((float)i * (float)Math.PI) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D;
int j = MathHelper.floor_double(d6 - d10 / 2D);
int k = MathHelper.floor_double(d7 - d11 / 2D);
int l = MathHelper.floor_double(d8 - d10 / 2D);
int i1 = MathHelper.floor_double(d6 + d10 / 2D);
int j1 = MathHelper.floor_double(d7 + d11 / 2D);
int k1 = MathHelper.floor_double(d8 + d10 / 2D);
for (int l1 = j; l1 <= i1; l1++)
{
double d12 = (((double)l1 + 0.5D) - d6) / (d10 / 2D);
if (d12 * d12 >= 1.0D)
{
continue;
}
for (int i2 = k; i2 <= j1; i2++)
{
double d13 = (((double)i2 + 0.5D) - d7) / (d11 / 2D);
if (d12 * d12 + d13 * d13 >= 1.0D)
{
continue;
}
for (int j2 = l; j2 <= k1; j2++)
{
double d14 = (((double)j2 + 0.5D) - d8) / (d10 / 2D);
if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D && world.getBlockId(l1, i2, j2) == Block.stone.blockID)
{
world.setBlock(l1, i2, j2, minableBlockId);
}
}
}
}
}
return true;
}
//==========================================mp mod
private static int[] aOreCheck = new int[40];// setup array to store oreIDs for this chunk // has to be static to survive instance calls
public static int MPChunk_X;
public static int MPChunk_Z;
private int x_Chunk;
private int z_Chunk;
public int MPBlockID;
public static int MPPrevX;
public static int MPPrevZ;
public static int MPPrevID;
public static int MPPrevID2;
//public static int MPPrevID3;
//public static int MPPrevID4;
private static boolean genBeforeCheck;
public static int mineCount;
public static int mineCountS;
private static Random randomOut;
private static Random rand;
private static World worldObj;
static File BODFile;
private static WorldChunkManager worldChunkManager;
private int rarity = 2;
private int veinSi = 2;
private int veinAm = 2;
private int height = 2;
private int diameter = 2;
private int vDens = 2;
private int hDens = 2;
//==========================================mp mod
private int minableBlockId;
private int numberOfBlocks;
}
Spoiler
this one, which I scribbled up real quick:

fan-made banner by gravyerd:


Credits:this one, which I scribbled up real quick:

[url="http://www.minecraftforum.net/topic/330485-15-01-better-revised-ore-distribution-ore-generation-mod-v11/"][img]http://imageshack.us/m/196/8629/betteroredistirbutionba.png[/img][/url]
fan-made banner by gravyerd:

[center][url="http://www.minecraftforum.net/topic/330485-15-01-better-revised-ore-distribution-ore-generation-mod-v11/"][IMG]http://i51.tinypic.com/166g0nm.gif[/IMG][/url][/center]fan-made banner by Ganom:

[url=http://www.minecraftforum.net/topic/330485-166-better-revised-ore-distribution-ore-generation-mod-v12/][img]http://img607.imageshack.us/img607/1918/betterore.jpg[/img][/url]
Spoiler
Thanks to the developers of MCP, without their programs, modding would be neigh impossible
thanks to ChinkyLee for his guide that allowed me to set up the programs needed
thanks to Scearcrovv for his relentless support of technical issues, this mod, and testing
and thanks to the Minecraft community, because without you guys this would be pointless and boring
Thanks to the developers of MCP, without their programs, modding would be neigh impossible
thanks to ChinkyLee for his guide that allowed me to set up the programs needed
thanks to Scearcrovv for his relentless support of technical issues, this mod, and testing
and thanks to the Minecraft community, because without you guys this would be pointless and boring
[1.7.3]Glowing Mushrooms
Spoiler
find glowing mushrooms and some glow dust to craft glow paste, eat it and you glow in the dark for a few minutes
the one and only version - http://www.mediafire...rsukyzahbpabrxb for MC 1.7.3
find glowing mushrooms and some glow dust to craft glow paste, eat it and you glow in the dark for a few minutes
the one and only version - http://www.mediafire...rsukyzahbpabrxb for MC 1.7.3
feel free to post about anything, and add a banner if you like the mod.
Copyright:
Spoiler
- I have the source code up for all to see, this means you can learn from, and with permission, use it.
- you may not republish this mod in any manner without first asking me about it.
- If you are going to link to the download, link to this post too, it has important information as a whole.
- do not distribute your own downloads of this mod.
- if I agree to let you have downloads of this mod elsewhere, send me a link to your post.
- do not re-hash the mod so you can call it your own unless I have stated I am no longer supporting the mod.
- when in doubt, ask me about it.
- I have the source code up for all to see, this means you can learn from, and with permission, use it.
- you may not republish this mod in any manner without first asking me about it.
- If you are going to link to the download, link to this post too, it has important information as a whole.
- do not distribute your own downloads of this mod.
- if I agree to let you have downloads of this mod elsewhere, send me a link to your post.
- do not re-hash the mod so you can call it your own unless I have stated I am no longer supporting the mod.
- when in doubt, ask me about it.
Curse
MMO-Champion
WowStead
Arena Junkies
Minecraft Forums
DarthHater
Diablo Fans
Terraria Online















