| package mekanism.common.world; |
| |
| import java.util.Random; |
| |
| import mekanism.common.MekanismBlocks; |
| |
| import net.minecraft.block.Block; |
| import net.minecraft.block.material.Material; |
| import net.minecraft.init.Blocks; |
| import net.minecraft.world.World; |
| import net.minecraft.world.gen.feature.WorldGenerator; |
| |
| public class WorldGenSalt extends WorldGenerator |
| { |
| private Block blockGen; |
| |
| private int numberOfBlocks; |
| |
| public WorldGenSalt(int blockNum) |
| { |
| blockGen = MekanismBlocks.SaltBlock; |
| numberOfBlocks = blockNum; |
| } |
| |
| @Override |
| public boolean generate(World world, Random random, int x, int y, int z) |
| { |
| if(world.getBlock(x, y, z).getMaterial() != Material.water) |
| { |
| return false; |
| } |
| else { |
| int toGenerate = random.nextInt(numberOfBlocks - 2) + 2; |
| byte yOffset = 1; |
| |
| for(int xPos = x - toGenerate; xPos <= x + toGenerate; xPos++) |
| { |
| for(int zPos = z - toGenerate; zPos <= z + toGenerate; zPos++) |
| { |
| int xOffset = xPos - x; |
| int zOffset = zPos - z; |
| |
| if((xOffset*xOffset) + (zOffset*zOffset) <= toGenerate*toGenerate) |
| { |
| for(int yPos = y - yOffset; yPos <= y + yOffset; yPos++) |
| { |
| Block block = world.getBlock(xPos, yPos, zPos); |
| |
| if(block == Blocks.dirt || block == Blocks.clay || block == MekanismBlocks.SaltBlock) |
| { |
| world.setBlock(xPos, yPos, zPos, blockGen, 0, 2); |
| } |
| } |
| } |
| } |
| } |
| |
| return true; |
| } |
| } |
| } |