Guest User

Untitled

a guest
Apr 6th, 2015
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.03 KB | None | 0 0
  1. package skymine.redenergy.sow.items;
  2.  
  3. import net.minecraft.entity.Entity;
  4. import net.minecraft.entity.player.EntityPlayer;
  5. import net.minecraft.item.ItemStack;
  6. import net.minecraft.nbt.NBTTagCompound;
  7. import net.minecraft.world.World;
  8. import skymine.redenergy.sow.entities.EntityFlame;
  9. import skymine.redenergy.sow.utils.LogHelper;
  10.  
  11. public class ItemScreamPistol extends ItemWeapon{
  12.     private static final int reloadTime = 100;
  13.     public ItemScreamPistol(){
  14.         super();
  15.         this.setMaxDamage(100);
  16.         this.setMaxStackSize(1);
  17.     }
  18.  
  19.    
  20.     public int getMaxItemUseDuration(ItemStack itemStack) {
  21.         return 72000;
  22.     }
  23.        
  24.     @Override
  25.     public void onUpdate(ItemStack stack, World world,Entity entity, int p_77663_4_, boolean p_77663_5_) {
  26.         checkNBT(stack);
  27.         if(stack.getItemDamage() == 0){
  28.             stack.stackTagCompound.setBoolean("isReloading", false);
  29.             stack.setStackDisplayName("Scream");
  30.         }
  31.         if(stack.stackTagCompound.getBoolean("isReloading")){
  32.             stack.setItemDamage(stack.getItemDamage() - stack.getMaxDamage() / reloadTime);
  33.         }
  34.         super.onUpdate(stack, world, entity, p_77663_4_, p_77663_5_);
  35.     }
  36.  
  37.  
  38.     @Override
  39.     public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
  40.         checkNBT(stack);
  41.         player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
  42.         stack.stackTagCompound.setBoolean("isShooting", true);
  43. //      shootFire(stack, player.worldObj, player);
  44. //      stack.damageItem(10, player);
  45.         return stack;
  46.     }
  47.  
  48.    
  49.     @Override
  50.     public void onPlayerStoppedUsing(ItemStack stack, World world,EntityPlayer player, int ticks) {
  51.         stack.stackTagCompound.setBoolean("isShooting", false);
  52.     }
  53.  
  54.     public void onUsingTick(ItemStack stack, EntityPlayer player, int ticksInUse) {
  55.         if(!player.worldObj.isRemote){
  56.             if(stack.stackTagCompound.getBoolean("isShooting")){
  57.                 shootFire(stack, player.worldObj, player);
  58.             }
  59.         }
  60.     }
  61.    
  62.     private ItemStack shootFire(ItemStack stack, World world, EntityPlayer player){
  63.         if(!world.isRemote && stack.stackTagCompound.getBoolean("isShooting") && !stack.stackTagCompound.getBoolean("isReloading")){
  64.             if(stack.getItemDamage() != 100){
  65.                 for(int i = 0; i < 8; i++){
  66.                     EntityFlame flame = new EntityFlame(world, player);
  67.                     world.spawnEntityInWorld(flame);
  68.                 }
  69.                 stack.setItemDamage(stack.getItemDamage() + 1);
  70. //              stack.damageItem(1, player);
  71.             } else {
  72.                 player.stopUsingItem();
  73.                 reloadWeapon(stack, player);
  74.             }
  75.         }
  76.         return stack;
  77.     }
  78.    
  79.  
  80.     @Override
  81.     public void switchWeaponMode(ItemStack stack, EntityPlayer player) {}
  82.  
  83.    
  84.     @Override
  85.     public void reloadWeapon(ItemStack stack, EntityPlayer player) {
  86.         stack.stackTagCompound.setBoolean("isReloading", true);
  87.         stack.setStackDisplayName("Reloading...");
  88. //      stack.setItemDamage(0);
  89.         LogHelper.dLog("weapon reloaded");
  90.     }
  91.  
  92.  
  93.     private void checkNBT(ItemStack stack){
  94.         if(stack.stackTagCompound == null){
  95.             stack.stackTagCompound = new NBTTagCompound();
  96.             stack.stackTagCompound.setBoolean("isShooting", false);
  97.             stack.stackTagCompound.setBoolean("isReloading", false);
  98.         }
  99.     }
  100.    
  101.    
  102. }
Advertisement
Add Comment
Please, Sign In to add comment