public override bool generate(World world, java.util.Random random, int i, int j, int k) { float f = random.nextFloat() * 3.141593F; double d = (float)(i + 8) + (MathHelper.sin(f) * (float)numberOfBlocks) / 8F; double d1 = (float)(i + 8) - (MathHelper.sin(f) * (float)numberOfBlocks) / 8F; double d2 = (float)(k + 8) + (MathHelper.cos(f) * (float)numberOfBlocks) / 8F; double d3 = (float)(k + 8) - (MathHelper.cos(f) * (float)numberOfBlocks) / 8F; double d4 = (j + random.nextInt(3)) - 2; double d5 = (j + random.nextInt(3)) - 2; for (int l = 0; l <= numberOfBlocks; l++) { double d6 = d + ((d1 - d) * (double)l) / (double)numberOfBlocks; double d7 = d4 + ((d5 - d4) * (double)l) / (double)numberOfBlocks; double d8 = d2 + ((d3 - d2) * (double)l) / (double)numberOfBlocks; double d9 = (random.nextDouble() * (double)numberOfBlocks) / 16D; double d10 = (double)(MathHelper.sin(((float)l * 3.141593F) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D; double d11 = (double)(MathHelper.sin(((float)l * 3.141593F) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D; int i1 = MathHelper.floor_double(d6 - d10 / 2D); int j1 = MathHelper.floor_double(d7 - d11 / 2D); int k1 = MathHelper.floor_double(d8 - d10 / 2D); int l1 = MathHelper.floor_double(d6 + d10 / 2D); int i2 = MathHelper.floor_double(d7 + d11 / 2D); int j2 = MathHelper.floor_double(d8 + d10 / 2D); for (int k2 = i1; k2 <= l1; k2++) { double d12 = (((double)k2 + 0.5D) - d6) / (d10 / 2D); if (d12 * d12 >= 1.0D) { continue; } for (int l2 = j1; l2 <= i2; l2++) { double d13 = (((double)l2 + 0.5D) - d7) / (d11 / 2D); if (d12 * d12 + d13 * d13 >= 1.0D) { continue; } for (int i3 = k1; i3 <= j2; i3++) { double d14 = (((double)i3 + 0.5D) - d8) / (d10 / 2D); if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D && world.GetBlock(k2, l2, i3) == (byte)Blocks.Stone) { world.SetBlock(k2, l2, i3, (byte)minableBlockId); } } } } } return true; }
protected void randomlyPlaceBlock(World world, StructureBoundingBox structureboundingbox, java.util.Random random, float f, int i, int j, int k, int l, int i1) { if(random.nextFloat() < f) { func_35309_a(world, l, i1, i, j, k, structureboundingbox); } }
protected void randomlyFillWithBlocks(World world, StructureBoundingBox structureboundingbox, java.util.Random random, float f, int i, int j, int k, int l, int i1, int j1, int k1, int l1, bool flag) { for(int i2 = j; i2 <= i1; i2++) { for(int j2 = i; j2 <= l; j2++) { for(int k2 = k; k2 <= j1; k2++) { if(random.nextFloat() > f || flag && func_35297_a(world, j2, i2, k2, structureboundingbox) == 0) { continue; } if(i2 == j || i2 == i1 || j2 == i || j2 == l || k2 == k || k2 == j1) { func_35309_a(world, k1, 0, j2, i2, k2, structureboundingbox); } else { func_35309_a(world, l1, 0, j2, i2, k2, structureboundingbox); } } } } }