4

Is there a mod or other method by which I could have a world in which wherever one type of block would normally be generated another type would be instead? Specifically, I was thinking it would be interesting and difficult to attempt playing in a world where all generated wood would be generated as obsidian instead and vice versa.

Is there any existing way to do this? If not, can anyone guess how difficult such a mod would be to create? I've never done any modding of Minecraft before, but I have plenty of programming experience, and if it wouldn't be too time consuming of a project I would attempt it.

3
  • Could those users who labeled this is a duplicate please explain to me why these questions are equivalent? As I am currently contesting in the above edit, I don't believe they are. However, if people still feel they are, it would be useful to me to know why they are. Commented Dec 15, 2013 at 21:28
  • 1
    Voting to reopen as this question concerns world generation, while the other one is about existing world's block replacement.
    – 3ventic
    Commented Dec 15, 2013 at 21:46
  • 1
    Interesting concept, however in this example, as wood would pretty much only be found on top of lava, you'd probably have a difficult time retrieving it before it started burning.
    – user22078
    Commented Jan 29, 2014 at 22:03

9 Answers 9

2

I know this is an older question but if you have not found a solution to this or a mod implementing this functionality already I am just making a quick glance over the Minecraft source generated by the latest Minecraft Coder Pack (9.03 for Minecraft 1.7.2) and in the BlockSapling class (net.minecraft.block.BlockSapling) I found a list of imports for the tree types that can be grown from saplings

import net.minecraft.world.gen.feature.WorldGenBigTree;
import net.minecraft.world.gen.feature.WorldGenCanopyTree;
import net.minecraft.world.gen.feature.WorldGenForest;
import net.minecraft.world.gen.feature.WorldGenMegaJungle;
import net.minecraft.world.gen.feature.WorldGenMegaPineTree;
import net.minecraft.world.gen.feature.WorldGenSavannaTree;
import net.minecraft.world.gen.feature.WorldGenTaiga2;
import net.minecraft.world.gen.feature.WorldGenTrees;
import net.minecraft.world.gen.feature.WorldGenerator;

In the tree generating classes there are generate methods

public boolean generate(World, Random, int, int, int)

Since these are the main tree generating classes for world generation you could find where they create the logs (Blocks.log and Blocks.log2) and change the generated type.

Keep in mind you will need to change the block leaves look for when they do their random tick (that is if you still want leaves). From what I can see you would change line 134 (as generated by this version of MCP) in net.minecraft.block.BlockLeaves

if (var15 != Blocks.log && var15 != Blocks.log2)

to

if (var15 != Blocks.obsidian)

As for obsidian to logs, you would need to do the following:

In BlockLiquid.java (net.minecraft.block.BlockLiquid) on line 526 (as generated by this version of MCP) you will find

p_149805_1_.setBlock(p_149805_2_, p_149805_3_, p_149805_4_, Blocks.obsidian);

which when deobfuscated would be

par1World.setBlock(xCoord, yCoord, zCoord, Blocks.obsidian);

you would change the Blocks.obsidian to Blocks.log and possibly set a randomized metadata value.

If you also wanted the obsidian in the end to be generated as logs you would edit net.minecraft.world.gen.feature.WorldGenSpikes, on line 55 (also as generated by the current MCP) you would do the same as above.

Now as I have seen in one of the comments, there is the problem of wood being burned by lava before the player can get to it. The solution to this is also the reason it was never a problem. The only time obsidian is created naturally is in The End (the obsidian pillars) and whenever water flows over lava. Since there would not naturally be any air around the obsidian (either being stone, gravel, ores, water, or lava) fire can not be started and cannot destroy the logs.

Edit: If you wanted to change the behavior and block type used by nether portals that might be a bit more complicated, and changing this would cause the possibility of burning portals, since they can be generated near fire or lava in either world.

1

If you are trying this on singleplayer, you could limit the land generated then follow the next few steps:

  1. Download MCedit from here.
  2. Go into MCedit, then open your world.
  3. Look up a video on how to select area in MCedit, then select your limited area.
  4. Press the 4 button on your keyboard.
  5. Choose your replace block, then click ok.
  6. Click replace, select the second block to your replacing block.
  7. Click replace.

Unless you want to make the whole world like that, but it'll take a lot longer:

  1. Steps 1-2
  2. Press Ctrl+A
  3. Steps 4-7
0

There aren't any such mods I know of, but I don't see why it would be so hard to make. To me the hardest part would probably be the interface where you would make the choices of which blocks to replace and what with.

What I'm thinking with how you could do this (though I'm almost in the same boat as you - barely modded Minecraft but plenty of programming experience) is that you could just take the existing world generator and use variables for each type of block that would be generated. The interface would allow you to change the values of these variables, and then these variables get fed into the generator and create your custom world.

0

I don't know of a one-for-one replacement mod, but if you want to change the ore generation rates and add new "ores" of any block, you can look into CoFHCore. It has a config file to affect world generation. I've got it to generate "veins" of Melonium (melon blocks) in the world.

0

There arent any mods like that, but before you(maybe) start to code anything, check out mcedit. It is a free program for modifying your saves.

0

there is a way to make custom flatlands, here is the video tutorial:

i do not take credit for this video or the rights to it

its not exactly what you want, but its similar and until you find an answer, this is as good as its going to get

0
0

You could try generating a large portion of the world, and then replacing the blocks you want using mIDas Gold.

A simpler solution would be to generate a large amount of the world, then using MCEdit.

0

Now you can do it in 1.8 with world customization.

EDIT:It only works with some particular blocks. When creating customized worlds, go to ore settings and replace one setting with another.

2
  • 1
    Should be noted that this is currently only possible with Snapshot versions which Enable experimental development versions ('snapshots') needs to be ticked in the profiles options menu to download. this is only necessary until 1.8 is actually released
    – Memor-X
    Commented Jul 14, 2014 at 4:44
  • Can you expand your answer? How exactly do you do it in 1.8?
    – fredley
    Commented Jul 14, 2014 at 7:54
-1

You can use worldedit and select a large area(if his is a server, if not you can use single player commands(mod)) and type //replace grass(or stone or whatever) sponge and it will replace all of the grass blocks in that area with sponge.

1
  • This will not affect newly generated blocks, so it's totally not an answer to this question.
    – o0'.
    Commented Mar 1, 2014 at 13:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .