Guest User

Untitled

a guest
May 26th, 2014
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. package fantasy_biomes.trees;
  2.  
  3. import java.util.Random;
  4.  
  5. import fantasy_biomes.Main;
  6. import fantasy_biomes.blocks.BlockFrozenTreeSapling;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.BlockSapling;
  9. import net.minecraft.world.World;
  10. import net.minecraft.world.gen.feature.WorldGenerator;
  11. import net.minecraftforge.common.ForgeDirection;
  12.  
  13. public class WorldGenFrozenTree extends WorldGenerator
  14. {
  15. public WorldGenFrozenTree(boolean par1)
  16. {
  17. super(par1);
  18. }
  19.  
  20. public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
  21. {
  22. int l = par2Random.nextInt(4) + 6;
  23. int i1 = 1 + par2Random.nextInt(2);
  24. int j1 = l - i1;
  25. int k1 = 2 + par2Random.nextInt(2);
  26. boolean flag = true;
  27.  
  28. if (par4 >= 1 && par4 + l + 1 <= 256)
  29. {
  30. int l1;
  31. int i2;
  32. int j2;
  33. int k2;
  34.  
  35. for (l1 = par4; l1 <= par4 + 1 + l && flag; ++l1)
  36. {
  37. boolean flag1 = true;
  38.  
  39. if (l1 - par4 < i1)
  40. {
  41. k2 = 0;
  42. }
  43. else
  44. {
  45. k2 = k1;
  46. }
  47.  
  48. for (i2 = par3 - k2; i2 <= par3 + k2 && flag; ++i2)
  49. {
  50. for (int l2 = par5 - k2; l2 <= par5 + k2 && flag; ++l2)
  51. {
  52. if (l1 >= 0 && l1 < 256)
  53. {
  54. j2 = par1World.getBlockId(i2, l1, l2);
  55.  
  56. Block block = Block.blocksList[j2];
  57.  
  58. if (j2 != 0 && block != null && !block.isLeaves(par1World, i2, l1, l2))
  59. {
  60. flag = false;
  61. }
  62. }
  63. else
  64. {
  65. flag = false;
  66. }
  67. }
  68. }
  69. }
  70.  
  71. if (!flag)
  72. {
  73. return false;
  74. }
  75. else
  76. {
  77. l1 = par1World.getBlockId(par3, par4 - 1, par5);
  78. Block soil = Block.blocksList[l1];
  79. boolean isValidSoil = soil != null && soil.canSustainPlant(par1World, par3, par4 - 1, par5, ForgeDirection.UP, (BlockFrozenTreeSapling)Main.blockFrozenTreeSapling);
  80.  
  81. if (isValidSoil && par4 < 256 - l - 1)
  82. {
  83. soil.onPlantGrow(par1World, par3, par4 - 1, par5, par3, par4, par5);
  84. k2 = par2Random.nextInt(2);
  85. i2 = 1;
  86. byte b0 = 0;
  87. int i3;
  88. int j3;
  89.  
  90. for (j2 = 0; j2 <= j1; ++j2)
  91. {
  92. j3 = par4 + l - j2;
  93.  
  94. for (i3 = par3 - k2; i3 <= par3 + k2; ++i3)
  95. {
  96. int k3 = i3 - par3;
  97.  
  98. for (int l3 = par5 - k2; l3 <= par5 + k2; ++l3)
  99. {
  100. int i4 = l3 - par5;
  101.  
  102. Block block = Block.blocksList[par1World.getBlockId(i3, j3, l3)];
  103.  
  104. if ((Math.abs(k3) != k2 || Math.abs(i4) != k2 || k2 <= 0) &&
  105. (block == null || block.canBeReplacedByLeaves(par1World, i3, j3, l3)))
  106. {
  107. this.setBlockAndMetadata(par1World, i3, j3, l3, Block.ice.blockID, 1);
  108. }
  109. }
  110. }
  111.  
  112. if (k2 >= i2)
  113. {
  114. k2 = b0;
  115. b0 = 1;
  116. ++i2;
  117.  
  118. if (i2 > k1)
  119. {
  120. i2 = k1;
  121. }
  122. }
  123. else
  124. {
  125. ++k2;
  126. }
  127. }
  128.  
  129. j2 = par2Random.nextInt(3);
  130.  
  131. for (j3 = 0; j3 < l - j2; ++j3)
  132. {
  133. i3 = par1World.getBlockId(par3, par4 + j3, par5);
  134.  
  135. Block block = Block.blocksList[i3];
  136.  
  137. if (i3 == 0 || block == null || block.isLeaves(par1World, par3, par4 + j3, par5))
  138. {
  139. this.setBlockAndMetadata(par1World, par3, par4 + j3, par5, Block.wood.blockID, 1);
  140. }
  141. }
  142.  
  143. return true;
  144. }
  145. else
  146. {
  147. return false;
  148. }
  149. }
  150. }
  151. else
  152. {
  153. return false;
  154. }
  155. }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment