Advertisement
Guest User

Untitled

a guest
Sep 7th, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.17 KB | None | 0 0
  1. package com.halestormxv.item;
  2.  
  3. import java.lang.reflect.*;
  4. import java.util.List;
  5. import java.util.Random;
  6.  
  7. import com.halestormxv.Main.handler.ExtendedPlayer;
  8. import com.halestormxv.entity.goldspirits.EntityAquarius;
  9. import com.halestormxv.entity.goldspirits.EntityAries;
  10. import com.halestormxv.entity.goldspirits.EntityCancer;
  11. import com.halestormxv.entity.goldspirits.EntityCapricorn;
  12. import com.halestormxv.entity.goldspirits.EntityGemini;
  13. import com.halestormxv.entity.goldspirits.EntityLeo;
  14. import com.halestormxv.entity.goldspirits.EntityLibra;
  15. import com.halestormxv.entity.goldspirits.EntityPisces;
  16. import com.halestormxv.entity.goldspirits.EntitySagittarius;
  17. import com.halestormxv.entity.goldspirits.EntityScorpio;
  18. import com.halestormxv.entity.goldspirits.EntityTaurus;
  19. import com.halestormxv.entity.goldspirits.EntityVirgo;
  20. import com.halestormxv.lib.RefStrings;
  21.  
  22. import cpw.mods.fml.relauncher.Side;
  23. import cpw.mods.fml.relauncher.SideOnly;
  24. import net.minecraft.block.Block;
  25. import net.minecraft.block.BlockLog;
  26. import net.minecraft.client.renderer.texture.IIconRegister;
  27. import net.minecraft.creativetab.CreativeTabs;
  28. import net.minecraft.entity.Entity;
  29. import net.minecraft.entity.passive.EntityTameable;
  30. import net.minecraft.entity.player.EntityPlayer;
  31. import net.minecraft.init.Blocks;
  32. import net.minecraft.item.Item;
  33. import net.minecraft.item.ItemStack;
  34. import net.minecraft.nbt.NBTTagCompound;
  35. import net.minecraft.nbt.NBTTagList;
  36. import net.minecraft.util.ChatComponentTranslation;
  37. import net.minecraft.util.EnumChatFormatting;
  38. import net.minecraft.util.IIcon;
  39. import net.minecraft.util.MathHelper;
  40. import net.minecraft.world.World;
  41.  
  42. public class celKey extends Item
  43. {
  44.     public static final String[] celKeys = new String[] {"Aquarius", "Taurus", "Cancer", "Virgo", "Sagittarius", "Leo", "Aries", "Scorpio", "Gemini", "Capricorn", "Pisces", "Libra"};
  45.     public static final String[] celKeys2 = new String[] {"Aquarius", "Taurus", "Cancer", "Virgo", "Sagittarius", "Leo", "Aries", "Scorpio", "Gemini", "Capricorn", "Pisces", "Libra"};
  46.     public static Class<? extends Entity>[] entityClasses = new Class[]
  47.             {
  48.                     EntityAquarius.class, EntityTaurus.class, EntityCancer.class, EntityVirgo.class,
  49.                     EntitySagittarius.class, EntityLeo.class, EntityAries.class, EntityScorpio.class,
  50.                     EntityGemini.class, EntityCapricorn.class, EntityPisces.class, EntityLibra.class
  51.             };
  52.     public static int SpiritCostBase[] = new int[]{8, 14, 11, 13, 12, 9, 6, 8, 10, 7, 9, 12};
  53.     public static int SpiritCostFormula[] = new int[]{7, 9, 9, 12, 10, 3, 12, 6, 8, 12, 6, 5};
  54.     public static int SpiritSummonCost;
  55.  
  56.     @SideOnly(Side.CLIENT)
  57.     private IIcon[] iconID;
  58.  
  59.     public celKey()
  60.     {
  61.         this.setHasSubtypes(true);
  62.         this.setMaxDamage(0);
  63.         this.setMaxStackSize(1);
  64.     }
  65.  
  66.     @SideOnly(Side.CLIENT)
  67.     public IIcon getIconFromDamage(int meta)
  68.     {
  69.         int j = MathHelper.clamp_int(meta, 0, 11);
  70.         return this.iconID[j];
  71.     }
  72.  
  73.     public String getUnlocalizedName(ItemStack itemstack)
  74.     {
  75.         int i = MathHelper.clamp_int(itemstack.getItemDamage(), 0, 11);
  76.         return super.getUnlocalizedName() + "." + celKeys[i];
  77.     }
  78.  
  79.     public boolean onItemUse(ItemStack itemstack, EntityPlayer player, World world, int x, int y, int z, int meta, float p_77648_8_, float p_77648_9_, float p_77648_10_)
  80.     {
  81.         if (player.canPlayerEdit(x, y, z, meta, itemstack) && !world.isRemote)
  82.         {
  83.             try {
  84.                 Entity e = entityClasses[itemstack.getItemDamage()].getConstructor(World.class).newInstance(world);
  85.                 Random randCordY = new Random();
  86.                 Random randCordZ = new Random();
  87.                 int sF = SpiritCostFormula[itemstack.getItemDamage()];
  88.                 int sB = SpiritCostBase[itemstack.getItemDamage()];
  89.                 int sC = SpiritSummonCost = (int)(Math.ceil((player.experienceLevel) / sF));
  90.                 ExtendedPlayer instance = ExtendedPlayer.get(player);  
  91.                 //if (!itemstack.hasTagCompound())
  92.                 //{
  93.                 //  itemstack.setTagCompound(new NBTTagCompound());
  94.                 //}
  95.                 //if (!itemstack.getTagCompound().getBoolean("Active"))
  96.                 if (!instance.summonedState[itemstack.getItemDamage()])
  97.                 {
  98.                     if ( (player.experienceTotal > sC) && (player.experienceLevel >= sB) )
  99.                     {
  100.                         int rY = randCordY.nextInt(3);
  101.                         int rZ = randCordZ.nextInt(3) + 1;
  102.                         e.setPosition(player.posX, player.posY + rY, player.posZ - rZ);
  103.                         ((EntityTameable) e).func_152115_b(player.getUniqueID().toString());
  104.                         world.spawnEntityInWorld(e);
  105.                         world.playSoundAtEntity(player, RefStrings.MODID + ":summon-bell", 0.7F, 1.0F);
  106.                         player.addChatComponentMessage(new ChatComponentTranslation ("Come forth "+celKeys2[itemstack.getItemDamage()] +"! I summon you!"));
  107.                         instance.setSummoned(itemstack, itemstack.getItemDamage(), player.getEntityData());
  108.                         if(sC > sB){ player.addExperienceLevel((int)-sC); return true; }else{ player.addExperienceLevel((int)-sB); return true; }
  109.                     }
  110.                     else
  111.                     {
  112.                         player.addChatComponentMessage(new ChatComponentTranslation ("\u00A74You do not have enough Celestial Power!"));
  113.                         return false;
  114.                     }
  115.                 }
  116.                 else
  117.                 {
  118.                     player.addChatComponentMessage(new ChatComponentTranslation (celKeys2[itemstack.getItemDamage()]+" is already summoned!"));
  119.                     //itemstack.getTagCompound().setBoolean("Active", false);
  120.                     return false;
  121.                 }
  122.  
  123.             } catch (InstantiationException e) {
  124.                 e.printStackTrace();
  125.             } catch (IllegalAccessException e) {
  126.                 e.printStackTrace();
  127.             } catch (IllegalArgumentException e) {
  128.                 e.printStackTrace();
  129.             } catch (InvocationTargetException e) {
  130.                 e.printStackTrace();
  131.             } catch (NoSuchMethodException e) {
  132.                 e.printStackTrace();
  133.             } catch (SecurityException e) {
  134.                 e.printStackTrace();
  135.             }
  136.         }
  137.         else if (itemstack.getItemDamage() > 11){};
  138.         return false;
  139.     }
  140.  
  141.  
  142.     @SideOnly(Side.CLIENT)
  143.     public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_)
  144.     {
  145.         for (int i = 0; i < 12; ++i)
  146.         {
  147.             p_150895_3_.add(new ItemStack(p_150895_1_, 1, i));
  148.         }
  149.     }
  150.  
  151.     @SideOnly(Side.CLIENT)
  152.     public void registerIcons(IIconRegister IIcon)
  153.     {
  154.         this.iconID = new IIcon[celKeys2.length];
  155.  
  156.         for (int i = 0; i < celKeys2.length; ++i)
  157.         {
  158.             this.iconID[i] = IIcon.registerIcon(RefStrings.MODID + ":celestialkey" + "_" + celKeys2[i]);
  159.         }
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement