package net.minecraft.world.gen.feature; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; public class WorldGenBlockBlob extends WorldGenerator { private Block field_150545_a; private 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 p_76484_1_, Random p_76484_2_, int p_76484_3_, int p_76484_4_, int p_76484_5_) { while (true) { if (p_76484_4_ > 3) { label63: { if (!p_76484_1_.isAirBlock(p_76484_3_, p_76484_4_ - 1, p_76484_5_)) { Block block = p_76484_1_.getBlock(p_76484_3_, p_76484_4_ - 1, p_76484_5_); if (block == Blocks.grass || block == Blocks.dirt || block == Blocks.stone) { break label63; } } --p_76484_4_; continue; } } if (p_76484_4_ <= 3) { return false; } int k2 = this.field_150544_b; for (int l = 0; k2 >= 0 && l < 3; ++l) { int i1 = k2 + p_76484_2_.nextInt(2); int j1 = k2 + p_76484_2_.nextInt(2); int k1 = k2 + p_76484_2_.nextInt(2); float f = (float)(i1 + j1 + k1) * 0.333F + 0.5F; for (int l1 = p_76484_3_ - i1; l1 <= p_76484_3_ + i1; ++l1) { for (int i2 = p_76484_5_ - k1; i2 <= p_76484_5_ + k1; ++i2) { for (int j2 = p_76484_4_ - j1; j2 <= p_76484_4_ + j1; ++j2) { float f1 = (float)(l1 - p_76484_3_); float f2 = (float)(i2 - p_76484_5_); float f3 = (float)(j2 - p_76484_4_); if (f1 * f1 + f2 * f2 + f3 * f3 <= f * f) { p_76484_1_.setBlock(l1, j2, i2, this.field_150545_a, 0, 4); } } } } p_76484_3_ += -(k2 + 1) + p_76484_2_.nextInt(2 + k2 * 2); p_76484_5_ += -(k2 + 1) + p_76484_2_.nextInt(2 + k2 * 2); p_76484_4_ += 0 - p_76484_2_.nextInt(2); } return true; } } }