Guest User

Untitled

a guest
Jan 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.54 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import java.util.Random;
  4.  
  5. public class BlockFlare extends Block {
  6.  
  7. protected BlockFlare(int i, int j, boolean lit, long ID) {
  8. super(i, j, Material.ground);
  9. setTickOnLoad(true);
  10. flareLit = lit;
  11. time = 6;
  12. this.ID = ID;
  13. }
  14.  
  15. @Override
  16. public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i,
  17. int j, int k) {
  18. return null;
  19. }
  20.  
  21. @Override
  22. public boolean isOpaqueCube() {
  23. return false;
  24. }
  25.  
  26. @Override
  27. public boolean renderAsNormalBlock() {
  28. return false;
  29. }
  30.  
  31. @Override
  32. public int getRenderType() {
  33. return 2;
  34. }
  35.  
  36. private boolean func_31032_h(World world, int i, int j, int k) {
  37. return world.isBlockNormalCube(i, j, k)
  38. || world.getBlockId(i, j, k) == Block.fence.blockID;
  39. }
  40.  
  41. @Override
  42. public boolean canPlaceBlockAt(World world, int i, int j, int k) {
  43. if (world.isBlockNormalCube(i - 1, j, k)) {
  44. return true;
  45. }
  46. if (world.isBlockNormalCube(i + 1, j, k)) {
  47. return true;
  48. }
  49. if (world.isBlockNormalCube(i, j, k - 1)) {
  50. return true;
  51. }
  52. if (world.isBlockNormalCube(i, j, k + 1)) {
  53. return true;
  54. }
  55. return func_31032_h(world, i, j - 1, k);
  56. }
  57.  
  58. @Override
  59. public void onBlockPlaced(World world, int i, int j, int k, int l) {
  60. this.worldObj = world;
  61. this.i = i;
  62. this.j = j;
  63. this.k = l;
  64.  
  65. int i1 = world.getBlockMetadata(i, j, k);
  66. if (l == 1 && func_31032_h(world, i, j - 1, k)) {
  67. i1 = 5;
  68. }
  69. if (l == 2 && world.isBlockNormalCube(i, j, k + 1)) {
  70. i1 = 4;
  71. }
  72. if (l == 3 && world.isBlockNormalCube(i, j, k - 1)) {
  73. i1 = 3;
  74. }
  75. if (l == 4 && world.isBlockNormalCube(i + 1, j, k)) {
  76. i1 = 2;
  77. }
  78. if (l == 5 && world.isBlockNormalCube(i - 1, j, k)) {
  79. i1 = 1;
  80. }
  81. world.setBlockMetadataWithNotify(i, j, k, i1);
  82. if (flareLit) {
  83. mod_DefenceCraft.addFlareToList(this);
  84. }
  85. }
  86.  
  87. @Override
  88. public void onBlockAdded(World world, int i, int j, int k) {
  89. if (world.isBlockNormalCube(i - 1, j, k)) {
  90. world.setBlockMetadataWithNotify(i, j, k, 1);
  91. } else if (world.isBlockNormalCube(i + 1, j, k)) {
  92. world.setBlockMetadataWithNotify(i, j, k, 2);
  93. } else if (world.isBlockNormalCube(i, j, k - 1)) {
  94. world.setBlockMetadataWithNotify(i, j, k, 3);
  95. } else if (world.isBlockNormalCube(i, j, k + 1)) {
  96. world.setBlockMetadataWithNotify(i, j, k, 4);
  97. } else if (func_31032_h(world, i, j - 1, k)) {
  98. world.setBlockMetadataWithNotify(i, j, k, 5);
  99. }
  100. dropFlareIfCantStay(world, i, j, k);
  101. }
  102.  
  103. @Override
  104. public void onNeighborBlockChange(World world, int i, int j, int k, int l) {
  105. if (dropFlareIfCantStay(world, i, j, k)) {
  106. int i1 = world.getBlockMetadata(i, j, k);
  107. boolean flag = false;
  108. if (!world.isBlockNormalCube(i - 1, j, k) && i1 == 1) {
  109. flag = true;
  110. }
  111. if (!world.isBlockNormalCube(i + 1, j, k) && i1 == 2) {
  112. flag = true;
  113. }
  114. if (!world.isBlockNormalCube(i, j, k - 1) && i1 == 3) {
  115. flag = true;
  116. }
  117. if (!world.isBlockNormalCube(i, j, k + 1) && i1 == 4) {
  118. flag = true;
  119. }
  120. if (!func_31032_h(world, i, j - 1, k) && i1 == 5) {
  121. flag = true;
  122. }
  123. if (flag) {
  124. dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k));
  125. world.setBlockWithNotify(i, j, k, 0);
  126. }
  127. }
  128. }
  129.  
  130. private boolean dropFlareIfCantStay(World world, int i, int j, int k) {
  131. if (!canPlaceBlockAt(world, i, j, k)) {
  132. dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k));
  133. world.setBlockWithNotify(i, j, k, 0);
  134. return false;
  135. } else {
  136. return true;
  137. }
  138. }
  139.  
  140. @Override
  141. public MovingObjectPosition collisionRayTrace(World world, int i, int j,
  142. int k, Vec3D vec3d, Vec3D vec3d1) {
  143. int l = world.getBlockMetadata(i, j, k) & 7;
  144. float f = 0.15F;
  145. if (l == 1) {
  146. setBlockBounds(0.0F, 0.2F, 0.5F - f, f * 2.0F, 0.8F, 0.5F + f);
  147. } else if (l == 2) {
  148. setBlockBounds(1.0F - f * 2.0F, 0.2F, 0.5F - f, 1.0F, 0.8F,
  149. 0.5F + f);
  150. } else if (l == 3) {
  151. setBlockBounds(0.5F - f, 0.2F, 0.0F, 0.5F + f, 0.8F, f * 2.0F);
  152. } else if (l == 4) {
  153. setBlockBounds(0.5F - f, 0.2F, 1.0F - f * 2.0F, 0.5F + f, 0.8F,
  154. 1.0F);
  155. } else {
  156. float f1 = 0.1F;
  157. setBlockBounds(0.5F - f1, 0.0F, 0.5F - f1, 0.5F + f1, 0.6F,
  158. 0.5F + f1);
  159. }
  160. return super.collisionRayTrace(world, i, j, k, vec3d, vec3d1);
  161. }
  162.  
  163. @Override
  164. public void randomDisplayTick(World world, int i, int j, int k,
  165. Random random) {
  166. if (!flareLit) {
  167. return;
  168. } else if (flareLit) {
  169. double d = (float) i + 0.9F;
  170. double d1 = (float) j + 0.7F;
  171. double d2 = (float) k + 0.5F;
  172. double d3 = 0.2199999988079071D;
  173. double d4 = 0.27000001072883606D;
  174. world.spawnParticle("smoke", d - d4, d1 + d3, d2, 0.0D, 0.0D, 0.0D);
  175. world.spawnParticle("smoke", d + d4, d1 + d3, d2, 0.0D, 0.0D, 0.0D);
  176. world.spawnParticle("smoke", d, d1 + d3, d2 - d4, 0.0D, 0.0D, 0.0D);
  177. world.spawnParticle("smoke", d, d1 + d3, d2 + d4, 0.0D, 0.0D, 0.0D);
  178. world.spawnParticle("smoke", d - d4, d1 - d3, d2, 0.0D, 0.0D, 0.0D);
  179. world.spawnParticle("smoke", d + d4, d1 + d3, d2, 0.0D, 0.0D, 0.0D);
  180. world.spawnParticle("smoke", d - d1, d2 - d3, d4, 0.0D, 0.0D, 0.0D);
  181. world.spawnParticle("smoke", d + d1, d2 + d3, d4, 0.0D, 0.0D, 0.0D);
  182. world.spawnParticle("smoke", d + d4, d1 + d3, d2, 0.0D, 0.0D, 0.0D);
  183. world.spawnParticle("smoke", d - d4, d1 - d3, d2, 0.0D, 0.0D, 0.0D);
  184. world.spawnParticle("smoke", d + d1, d2 + d3, d4, 0.0D, 0.0D, 0.0D);
  185. world.spawnParticle("smoke", d - d1, d2 - d3, d4, 0.0D, 0.0D, 0.0D);
  186. // I know, it's a bit overdone but oh well lmao
  187. }
  188. }
  189.  
  190. public void burnOut() {
  191. if (flareLit) {
  192. mod_DefenceCraft.addNewFlare(worldObj, i, j, k, false);
  193. }
  194. }
  195.  
  196. private boolean flareLit;
  197. public int time;
  198. public long ID;
  199. private World worldObj;
  200. private int i;
  201. private int j;
  202. private int k;
  203. }
Add Comment
Please, Sign In to add comment