Advertisement
hassansyyid

Untitled

Jul 5th, 2015
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.50 KB | None | 0 0
  1. package com.arisux.avp.block;
  2.  
  3. import java.util.Random;
  4.  
  5. import com.arisux.avp.entities.tile.PoweredTileEntity;
  6. import com.arisux.avp.entities.tile.TileEntityBlastdoor;
  7.  
  8. import net.minecraft.block.Block;
  9. import net.minecraft.block.material.Material;
  10. import net.minecraft.entity.Entity;
  11. import net.minecraft.entity.player.EntityPlayer;
  12. import net.minecraft.util.AxisAlignedBB;
  13. import net.minecraft.world.World;
  14.  
  15. public class GhostBlock extends Block
  16. {
  17. private Block parentBlock;
  18. private PoweredTileEntity parentTileEntity;
  19. public boolean canCollide;
  20.  
  21. public GhostBlock()
  22. {
  23. super(Material.iron);
  24. setTickRandomly(true);
  25. }
  26.  
  27. @Override
  28. public int getRenderType()
  29. {
  30. return -1;
  31. }
  32.  
  33. @Override
  34. public void updateTick(World worldIn, int x, int y, int z, Random rand)
  35. {
  36. getParentBlock(worldIn, x, y, z);
  37. }
  38.  
  39. public Block getParentBlock(World world, int xPos, int yPos, int zPos)
  40. {
  41. for(int x = xPos + 1; x <= (3 + xPos); x++)
  42. {
  43. if(world.getTileEntity(x, yPos, zPos) instanceof TileEntityBlastdoor)
  44. {
  45. TileEntityBlastdoor te = (TileEntityBlastdoor) world.getTileEntity(x, yPos, zPos);
  46. parentTileEntity = te;
  47. BlockBlastdoor b = (BlockBlastdoor) world.getBlock(x, yPos, zPos);
  48. parentBlock = b;
  49. return parentBlock;
  50. }
  51. for(int y = yPos + 1; y <= (3 + yPos); y++)
  52. {
  53. if(world.getTileEntity(x, y, zPos) instanceof TileEntityBlastdoor)
  54. {
  55. TileEntityBlastdoor te = (TileEntityBlastdoor) world.getTileEntity(x, y, zPos);
  56. parentTileEntity = te;
  57. BlockBlastdoor b = (BlockBlastdoor) world.getBlock(x, y, zPos);
  58. parentBlock = b;
  59. return parentBlock;
  60. }
  61. for(int z = zPos + 1; z <= (3 + zPos); z++)
  62. {
  63. if(world.getTileEntity(x, y, z) instanceof TileEntityBlastdoor)
  64. {
  65. TileEntityBlastdoor te = (TileEntityBlastdoor) world.getTileEntity(x, y, z);
  66. parentTileEntity = te;
  67. BlockBlastdoor b = (BlockBlastdoor) world.getBlock(x, y, z);
  68. parentBlock = b;
  69. return parentBlock;
  70. }
  71. }
  72. }
  73. }
  74.  
  75. for(int x = xPos - 1; x >= (xPos - 3); x--)
  76. {
  77. if(world.getTileEntity(x, yPos, zPos) instanceof TileEntityBlastdoor)
  78. {
  79. TileEntityBlastdoor te = (TileEntityBlastdoor) world.getTileEntity(x, yPos, zPos);
  80. parentTileEntity = te;
  81. BlockBlastdoor b = (BlockBlastdoor) world.getBlock(x, yPos, zPos);
  82. parentBlock = b;
  83. return parentBlock;
  84. }
  85. for(int y = yPos - 1; y >= (yPos - 3); y--)
  86. {
  87. if(world.getTileEntity(x, y, zPos) instanceof TileEntityBlastdoor)
  88. {
  89. TileEntityBlastdoor te = (TileEntityBlastdoor) world.getTileEntity(x, y, zPos);
  90. parentTileEntity = te;
  91. BlockBlastdoor b = (BlockBlastdoor) world.getBlock(x, y, zPos);
  92. parentBlock = b;
  93. return parentBlock;
  94. }
  95. for(int z = zPos - 1; z >= (zPos - 3); z--)
  96. {
  97. if(world.getTileEntity(x, y, z) instanceof TileEntityBlastdoor)
  98. {
  99. TileEntityBlastdoor te = (TileEntityBlastdoor) world.getTileEntity(x, y, z);
  100. parentTileEntity = te;
  101. BlockBlastdoor b = (BlockBlastdoor) world.getBlock(x, y, z);
  102. parentBlock = b;
  103. return parentBlock;
  104. }
  105. }
  106. }
  107. }
  108. return parentBlock;
  109. }
  110.  
  111. @Override
  112. public boolean onBlockActivated(World world, int posX, int posY, int posZ, EntityPlayer player, int side, float subX, float subY, float subZ)
  113. {
  114. getParentBlock(world, posX, posY, posZ);
  115. try
  116. {
  117. return parentBlock.onBlockActivated(world, parentTileEntity.xCoord, parentTileEntity.yCoord, parentTileEntity.zCoord, player, side, subX, subY, subZ);
  118. }
  119. catch(NullPointerException e)
  120. {
  121.  
  122. }
  123. return true;
  124. }
  125. @Override
  126. public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_)
  127. {
  128. if(this.parentBlock != null && this.parentTileEntity != null)
  129. {
  130. TileEntityBlastdoor te = (TileEntityBlastdoor) this.parentTileEntity;
  131. if(te.isDoorOpen())
  132. {
  133. return null;
  134. }
  135. if(!te.isDoorOpen())
  136. {
  137. return AxisAlignedBB.getBoundingBox((double)p_149668_2_ + this.minX, (double)p_149668_3_ + this.minY, (double)p_149668_4_ + this.minZ, (double)p_149668_2_ + this.maxX, (double)p_149668_3_ + this.maxY, (double)p_149668_4_ + this.maxZ);
  138. }
  139. }
  140. return AxisAlignedBB.getBoundingBox((double)p_149668_2_ + this.minX, (double)p_149668_3_ + this.minY, (double)p_149668_4_ + this.minZ, (double)p_149668_2_ + this.maxX, (double)p_149668_3_ + this.maxY, (double)p_149668_4_ + this.maxZ);
  141. }
  142.  
  143. @Override
  144. public void breakBlock(World world, int posX, int posY, int posZ, Block blockBroken, int meta)
  145. {
  146. //getParentBlock(world, posX, posY, posZ);
  147. if(parentBlock != null && parentTileEntity != null)
  148. {
  149. try
  150. {
  151. TileEntityBlastdoor te = (TileEntityBlastdoor) parentTileEntity;
  152. if(!te.isDoorOpen())
  153. {
  154. parentBlock.breakBlock(world, parentTileEntity.xCoord, parentTileEntity.yCoord, parentTileEntity.zCoord, blockBroken, meta);
  155. }
  156. }
  157. catch(NullPointerException e)
  158. {
  159.  
  160. }
  161. }
  162. else
  163. {
  164. getParentBlock(world, posX, posY, posZ);
  165. try
  166. {
  167. TileEntityBlastdoor te = (TileEntityBlastdoor) parentTileEntity;
  168. if(!te.isDoorOpen())
  169. {
  170. parentBlock.breakBlock(world, parentTileEntity.xCoord, parentTileEntity.yCoord, parentTileEntity.zCoord, blockBroken, meta);
  171. }
  172. }
  173. catch(NullPointerException e)
  174. {
  175.  
  176. }
  177. }
  178. }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement