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.util.math.BlockPos; 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, BlockPos pos) { if(world.getBlockState(pos).getMaterial() != Material.WATER) { return false; } else { int toGenerate = random.nextInt(numberOfBlocks - 2) + 2; byte yOffset = 1; for(int xPos = pos.getX() - toGenerate; xPos <= pos.getX() + toGenerate; xPos++) { for(int zPos = pos.getZ() - toGenerate; zPos <= pos.getZ() + toGenerate; zPos++) { int xOffset = xPos - pos.getX(); int zOffset = zPos - pos.getZ(); if((xOffset*xOffset) + (zOffset*zOffset) <= toGenerate*toGenerate) { for(int yPos = pos.getY() - yOffset; yPos <= pos.getY() + yOffset; yPos++) { BlockPos newPos = new BlockPos(xPos, yPos, zPos); Block block = world.getBlockState(newPos).getBlock(); if(block == Blocks.DIRT || block == Blocks.CLAY || block == MekanismBlocks.SaltBlock) { world.setBlockState(newPos, blockGen.getDefaultState(), 2); } } } } } return true; } } }