Advertisement
Nessiesson

Untitled

Dec 7th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.05 KB | None | 0 0
  1. public boolean generate(World worldIn, Random rand, BlockPos position) {
  2.     float f = rand.nextFloat() * (float) Math.PI;
  3.     double d0 = (float) (position.getX() + 8) + MathHelper.sin(f) * (float) this.numberOfBlocks / 8.0F;
  4.     double d1 = (float) (position.getX() + 8) - MathHelper.sin(f) * (float) this.numberOfBlocks / 8.0F;
  5.     double d2 = (float) (position.getZ() + 8) + MathHelper.cos(f) * (float) this.numberOfBlocks / 8.0F;
  6.     double d3 = (float) (position.getZ() + 8) - MathHelper.cos(f) * (float) this.numberOfBlocks / 8.0F;
  7.     double d4 = position.getY() + rand.nextInt(3) - 2;
  8.     double d5 = position.getY() + rand.nextInt(3) - 2;
  9.  
  10.     for (int i = 0; i < this.numberOfBlocks; ++i) {
  11.         float f1 = (float) i / (float) this.numberOfBlocks;
  12.         double d6 = d0 + (d1 - d0) * (double) f1;
  13.         double d7 = d4 + (d5 - d4) * (double) f1;
  14.         double d8 = d2 + (d3 - d2) * (double) f1;
  15.         double d9 = rand.nextDouble() * (double) this.numberOfBlocks / 16.0D;
  16.         double d10 = (double) (MathHelper.sin((float) Math.PI * f1) + 1.0F) * d9 + 1.0D;
  17.         double d11 = (double) (MathHelper.sin((float) Math.PI * f1) + 1.0F) * d9 + 1.0D;
  18.         int j = MathHelper.floor(d6 - d10 / 2.0D);
  19.         int k = MathHelper.floor(d7 - d11 / 2.0D);
  20.         int l = MathHelper.floor(d8 - d10 / 2.0D);
  21.         int i1 = MathHelper.floor(d6 + d10 / 2.0D);
  22.         int j1 = MathHelper.floor(d7 + d11 / 2.0D);
  23.         int k1 = MathHelper.floor(d8 + d10 / 2.0D);
  24.  
  25.         for (int l1 = j; l1 <= i1; ++l1) {
  26.             double d12 = ((double) l1 + 0.5D - d6) / (d10 / 2.0D);
  27.  
  28.             if (d12 * d12 < 1.0D) {
  29.                 for (int i2 = k; i2 <= j1; ++i2) {
  30.                     double d13 = ((double) i2 + 0.5D - d7) / (d11 / 2.0D);
  31.  
  32.                     if (d12 * d12 + d13 * d13 < 1.0D) {
  33.                         for (int j2 = l; j2 <= k1; ++j2) {
  34.                             double d14 = ((double) j2 + 0.5D - d8) / (d10 / 2.0D);
  35.  
  36.                             if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D) {
  37.                                 BlockPos blockpos = new BlockPos(l1, i2, j2);
  38.  
  39.                                 if (this.predicate.apply(worldIn.getBlockState(blockpos))) {
  40.                                     worldIn.setBlockState(blockpos, this.oreBlock, 2);
  41.                                 }
  42.                             }
  43.                         }
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.     }
  49.  
  50.     return true;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement