package net.minecraft.world.gen.feature; import java.util.Iterator; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.BlockPos; import net.minecraft.world.World; public class WorldGenBlockBlob extends WorldGenerator { private final Block field_150545_a; private final int field_150544_b; private static final String __OBFID = "CL_00000402"; public WorldGenBlockBlob(Block p_i45450_1_, int p_i45450_2_) { super(false); this.field_150545_a = p_i45450_1_; this.field_150544_b = p_i45450_2_; } public boolean generate(World worldIn, Random p_180709_2_, BlockPos p_180709_3_) { while (true) { if (p_180709_3_.getY() > 3) { label47: { if (!worldIn.isAirBlock(p_180709_3_.offsetDown())) { Block var4 = worldIn.getBlockState(p_180709_3_.offsetDown()).getBlock(); if (var4 == Blocks.grass || var4 == Blocks.dirt || var4 == Blocks.stone) { break label47; } } p_180709_3_ = p_180709_3_.offsetDown(); continue; } } if (p_180709_3_.getY() <= 3) { return false; } int var12 = this.field_150544_b; for (int var5 = 0; var12 >= 0 && var5 < 3; ++var5) { int var6 = var12 + p_180709_2_.nextInt(2); int var7 = var12 + p_180709_2_.nextInt(2); int var8 = var12 + p_180709_2_.nextInt(2); float var9 = (float)(var6 + var7 + var8) * 0.333F + 0.5F; Iterator var10 = BlockPos.getAllInBox(p_180709_3_.add(-var6, -var7, -var8), p_180709_3_.add(var6, var7, var8)).iterator(); while (var10.hasNext()) { BlockPos var11 = (BlockPos)var10.next(); if (var11.distanceSq(p_180709_3_) <= (double)(var9 * var9)) { worldIn.setBlockState(var11, this.field_150545_a.getDefaultState(), 4); } } p_180709_3_ = p_180709_3_.add(-(var12 + 1) + p_180709_2_.nextInt(2 + var12 * 2), 0 - p_180709_2_.nextInt(2), -(var12 + 1) + p_180709_2_.nextInt(2 + var12 * 2)); } return true; } } }