Advertisement
Guest User

Untitled

a guest
Dec 19th, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1.  
  2. private void ReplaceBlocksForBiome(int i, int j, byte[] data, Biome[] amobspawnerbase)
  3. {
  4. byte byte0 = 64;
  5. double d = 0.03125D;
  6. SandNoise = Noise4.GenerateNoiseOctaves(SandNoise, i * 16, j * 16, 0.0D, 16, 16, 1, d, d, 1.0D);
  7. GravelNoise = Noise4.GenerateNoiseOctaves(GravelNoise, i * 16, 109.0134D, j * 16, 16, 1, 16, d, 1.0D, d);
  8. StoneNoise = Noise5.GenerateNoiseOctaves(StoneNoise, i * 16, j * 16, 0.0D, 16, 16, 1, d * 2D, d * 2D, d * 2D);
  9. for (int x = 0; x < 16; x++)
  10. {
  11. for (int z = 0; z < 16; z++)
  12. {
  13. Biome mobspawnerbase = amobspawnerbase[x + z * 16];
  14. bool flag = SandNoise[x + z * 16] + Rand.nextDouble() * 0.20000000000000001D > 0.0D;
  15. bool flag1 = GravelNoise[x + z * 16] + Rand.nextDouble() * 0.20000000000000001D > 3D;
  16. int i1 = (int)(StoneNoise[x + z * 16] / 3D + 3D + Rand.nextDouble() * 0.25D);
  17. int j1 = -1;
  18. byte byte1 = mobspawnerbase.TopBlock;
  19. byte byte2 = mobspawnerbase.FillerBlock;
  20. for (int y = 127; y >= 0; y--)
  21. {
  22. int l1 = (z * 16 + x) * 128 + y;
  23. if (y <= 0 + Rand.nextInt(5))
  24. {
  25. data[l1] = (byte)BlockData.Blocks.Bedrock;
  26. continue;
  27. }
  28. byte byte3 = data[l1];
  29. if (byte3 == 0)
  30. {
  31. j1 = -1;
  32. continue;
  33. }
  34. if (byte3 != (byte)BlockData.Blocks.Stone)
  35. {
  36. continue;
  37. }
  38. if (j1 == -1)
  39. {
  40. if (i1 <= 0)
  41. {
  42. byte1 = 0;
  43. byte2 = (byte)(byte)BlockData.Blocks.Stone;
  44. }
  45. else if (y >= byte0 - 4 && y <= byte0 + 1)
  46. {
  47. byte1 = mobspawnerbase.TopBlock;
  48. byte2 = mobspawnerbase.FillerBlock;
  49. if (flag1)
  50. {
  51. byte1 = 0;
  52. }
  53. if (flag1)
  54. {
  55. byte2 = (byte)BlockData.Blocks.Gravel;
  56. }
  57. if (flag)
  58. {
  59. byte1 = (byte)BlockData.Blocks.Sand;
  60. byte2 = (byte)BlockData.Blocks.Sand;
  61. }
  62. }
  63. if (y < byte0 && byte1 == 0)
  64. {
  65. byte1 = (byte)BlockData.Blocks.Water;
  66. }
  67. j1 = i1;
  68. if (y >= byte0 - 1)
  69. {
  70. data[l1] = byte1;
  71. }
  72. else
  73. {
  74. data[l1] = byte2;
  75. }
  76. continue;
  77. }
  78. if (j1 <= 0)
  79. {
  80. continue;
  81. }
  82. j1--;
  83. data[l1] = byte2;
  84. if (j1 == 0 && byte2 == (byte)BlockData.Blocks.Sand)
  85. {
  86. j1 = Rand.nextInt(4);
  87. byte2 = (byte)BlockData.Blocks.Sandstone;
  88. }
  89. }
  90. }
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement