Advertisement
Guest User

Untitled

a guest
Oct 19th, 2015
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. package com.mtndewey.ninjamod.item;
  2.  
  3. import net.minecraft.block.BlockLiquid;
  4. import net.minecraft.block.material.Material;
  5. import net.minecraft.block.state.IBlockState;
  6. import net.minecraft.entity.EntityLivingBase;
  7. import net.minecraft.entity.player.EntityPlayer;
  8. import net.minecraft.init.Blocks;
  9. import net.minecraft.init.Items;
  10. import net.minecraft.item.Item;
  11. import net.minecraft.item.ItemBucket;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.item.ItemSword;
  14. import net.minecraft.potion.Potion;
  15. import net.minecraft.potion.PotionEffect;
  16. import net.minecraft.stats.StatList;
  17. import net.minecraft.util.BlockPos;
  18. import net.minecraft.util.EnumParticleTypes;
  19. import net.minecraft.util.MovingObjectPosition;
  20. import net.minecraft.world.World;
  21.  
  22. import com.mtndewey.ninjamod.NinjaMod;
  23.  
  24. public class ItemWaterKatana extends ItemSword {
  25.  
  26. public ItemWaterKatana(ToolMaterial material) {
  27. super(material);
  28. this.setCreativeTab(NinjaMod.tabNinja);
  29. }
  30.  
  31. @Override
  32. public boolean hitEntity(ItemStack stack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) {
  33. if (stack.getItem() == NinjaModItems.waterKatana) {
  34. stack.damageItem(1, par3EntityLivingBase);
  35. par2EntityLivingBase.addPotionEffect(new PotionEffect(
  36. Potion.moveSlowdown.id, 120, 5));
  37. }
  38. return true;
  39.  
  40. }
  41.  
  42. @Override
  43. public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
  44. {
  45. MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(worldIn, playerIn, true);
  46.  
  47. if (movingobjectposition == null)
  48. {
  49. return itemStackIn;
  50. }
  51. else
  52. {
  53. ItemStack ret = net.minecraftforge.event.ForgeEventFactory.onBucketUse(playerIn, worldIn, itemStackIn, movingobjectposition);
  54. if (ret != null) return ret;
  55.  
  56. if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
  57. {
  58. BlockPos blockpos = movingobjectposition.getBlockPos();
  59. BlockPos blockpos1 = blockpos.offset(movingobjectposition.sideHit);
  60.  
  61. if (!playerIn.canPlayerEdit(blockpos1, movingobjectposition.sideHit, itemStackIn))
  62. {
  63. return itemStackIn;
  64. }
  65.  
  66. if (this.tryPlaceContainedLiquid(worldIn, blockpos1) && !playerIn.capabilities.isCreativeMode)
  67. {
  68. playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
  69. return new ItemStack(Items.bucket);
  70. }
  71. }
  72. }
  73.  
  74. return itemStackIn;
  75. }
  76.  
  77. public boolean tryPlaceContainedLiquid(World worldIn, BlockPos pos)
  78. {
  79. Material material = worldIn.getBlockState(pos).getBlock().getMaterial();
  80. boolean flag = !material.isSolid();
  81.  
  82. if (!worldIn.isAirBlock(pos) && !flag)
  83. {
  84. return false;
  85. }
  86. else
  87. {
  88. if (worldIn.provider.doesWaterVaporize())
  89. {
  90. int i = pos.getX();
  91. int j = pos.getY();
  92. int k = pos.getZ();
  93. worldIn.playSoundEffect((double)((float)i + 0.5F), (double)((float)j + 0.5F), (double)((float)k + 0.5F), "random.fizz", 0.5F, 2.6F + (worldIn.rand.nextFloat() - worldIn.rand.nextFloat()) * 0.8F);
  94.  
  95. for (int l = 0; l < 8; ++l)
  96. {
  97. worldIn.spawnParticle(EnumParticleTypes.SMOKE_LARGE, (double)i + Math.random(), (double)j + Math.random(), (double)k + Math.random(), 0.0D, 0.0D, 0.0D, new int[0]);
  98. }
  99. }
  100. else
  101. {
  102. if (!worldIn.isRemote && flag && !material.isLiquid())
  103. {
  104. worldIn.destroyBlock(pos, true);
  105. }
  106.  
  107. worldIn.setBlockState(pos, Blocks.flowing_water.getDefaultState(), 3);
  108. }
  109.  
  110. return true;
  111. }
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement