Guest User

ItemThatspawnsparticles

a guest
Feb 12th, 2014
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.93 KB | None | 0 0
  1.  
  2.  
  3. import java.util.Random;
  4.  
  5. import net.minecraft.client.Minecraft;
  6. import net.minecraft.client.particle.EntityFX;
  7. import net.minecraft.creativetab.CreativeTabs;
  8. import net.minecraft.entity.Entity;
  9. import net.minecraft.entity.player.EntityPlayer;
  10. import net.minecraft.item.Item;
  11. import net.minecraft.item.ItemStack;
  12. import net.minecraft.nbt.NBTTagCompound;
  13. import net.minecraft.world.World;
  14.  
  15.  
  16.  
  17. public class ItemWhirlwindStaff extends Item {
  18.     private int whirlwindActive = 1;
  19.    
  20.     private double whirlwindSpawnX = 0.0f;
  21.     private double whirlwindSpawnY = 0.0f;
  22.     private double whirlwindSpawnZ = 0.0f;
  23.    
  24.     public ItemWhirlwindStaff()
  25.     {
  26.         super();
  27.         setCreativeTab(CreativeTabs.tabMisc);
  28.     }
  29.    
  30.    
  31.     public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer)
  32.         {
  33.         itemStack.stackTagCompound = new NBTTagCompound();
  34.        
  35.         if(whirlwindSpawnX == 0.0f || whirlwindSpawnY == 0.0f || whirlwindSpawnZ == 0.0f)
  36.         {
  37.             whirlwindSpawnX = entityPlayer.posX;
  38.             whirlwindSpawnY = entityPlayer.posY;
  39.             whirlwindSpawnZ = entityPlayer.posZ;
  40.             itemStack.stackTagCompound.setDouble("WhirlwindSpawnX", whirlwindSpawnX);
  41.             itemStack.stackTagCompound.setDouble("WhirlwindSpawnY", whirlwindSpawnY);
  42.             itemStack.stackTagCompound.setDouble("WhirlwindSpawnZ", whirlwindSpawnZ);
  43.            
  44.             System.out.println(whirlwindSpawnX);
  45.             System.out.println(whirlwindSpawnY);
  46.             System.out.println(whirlwindSpawnZ);
  47.             System.out.println("Not Set");
  48.         }      
  49.         Random rand = new Random();
  50.  
  51.         double entPosX = entityPlayer.posX;
  52.         double entPosY = entityPlayer.posY;
  53.         double entPosZ = entityPlayer.posZ;
  54.        
  55.         if(world.isRemote && whirlwindSpawnX != 0.0f || whirlwindSpawnY != 0.0f || whirlwindSpawnZ != 0.0f)
  56.         {
  57.             if(entityPlayer.isAirBorne)
  58.             {
  59.                 //entityPlayer.addVelocity(0.0f, 0.030f, 0.0f);
  60.             }
  61.  
  62.             for (int l = 0; l < 10; ++l)
  63.                 {
  64.                 double randPosX = (entPosX - 0.7f) + ((entPosX + 0.7f) - (entPosX - 0.7f)) * rand.nextDouble();
  65.                 double randPosY = (entPosY - 1.2) + ((entPosY-1.7f) - (entPosY - 1.2)) * rand.nextDouble();
  66.                 double randPosZ = (entPosZ - 0.7f) + ((entPosZ + 0.7f) - (entPosZ - 0.7f)) * rand.nextDouble();
  67.                
  68.                 double particleDistPlayerX = Math.sqrt((entPosX) * (entPosX) + (randPosX) * (randPosX));
  69.                 double particleDistPlayerZ = Math.sqrt((entPosZ) * (entPosZ) + (randPosZ) * (randPosZ));
  70.                
  71.                 double w = 2 * Math.PI * 1;
  72.                
  73.                 double motionX = w * (particleDistPlayerX/Math.abs(particleDistPlayerX));
  74.                 double motionZ = w * (particleDistPlayerZ/Math.abs(particleDistPlayerZ));
  75.                 //world.spawnParticle("smoke", randPosX, randPosY, randPosZ, 0.0D, 0.0D, 0.0D);
  76.                 EntityFX whirlwindFX = new EntityWhirlwindDustFX(world, randPosX, randPosY, randPosZ, 0.0D, 0.0D, 0.0D, entPosX, entPosY, entPosZ, RandomHelpers.randomPos(0.0f, 2.0f));
  77.                
  78.                 Minecraft.getMinecraft().effectRenderer.addEffect(whirlwindFX);
  79.  
  80.             }
  81.     }
  82.        
  83.        
  84.         return itemStack;
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment