diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:52:43 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:52:43 -0400 |
| commit | a11c98c6cad501e081837ec8fa2e323edaeb1ca3 (patch) | |
| tree | ab97a3e81bfa3eec2ff530ec55ff4a69e48f49e3 /TF2 Crates/src/main/java/tf2crates/item | |
Initial commitmaster
Diffstat (limited to 'TF2 Crates/src/main/java/tf2crates/item')
11 files changed, 970 insertions, 0 deletions
diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemCrate.java b/TF2 Crates/src/main/java/tf2crates/item/ItemCrate.java new file mode 100755 index 0000000..90be581 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemCrate.java @@ -0,0 +1,196 @@ +package tf2crates.item;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.server.MinecraftServer;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import tf2crates.ReferenceTC;
+import tf2crates.ServerProxyTC;
+import tf2crates.crate.Crates;
+import tf2crates.crate.RandomLoot;
+import tlhpoeCore.network.MessagePlaySound;
+import tlhpoeCore.util.MathUtil;
+
+public class ItemCrate extends Item {
+ public static IIcon[] sCrateTextures;
+ public static int[] unusualChance;
+ public static int[] weaponChance;
+
+ public ItemCrate() {
+ super();
+
+ this.setUnlocalizedName("crate");
+ this.setTextureName(ReferenceTC.ID + ":crate");
+ this.setMaxStackSize(1);
+
+ this.hasSubtypes = true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register) {
+ super.registerIcons(register);
+
+ sCrateTextures = new IIcon[Crates.getNumberOfSeries() + 1];
+
+ for (int i = 0; i < sCrateTextures.length; i++) {
+ if (Crates.isSeriesSpecial(i)) {
+ sCrateTextures[i] = register.registerIcon(ReferenceTC.ID
+ + ":" + Crates.getNameFromSeries(i));
+ }
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconIndex(ItemStack itemStack) {
+ int series = 1 + itemStack.getItemDamage();
+
+ if (Crates.isSeriesSpecial(series)) {
+ return sCrateTextures[series];
+ }
+
+ return super.getIconIndex(itemStack);
+ }
+
+ @Override
+ public IIcon getIcon(ItemStack itemStack, int pass) {
+ int series = 1 + itemStack.getItemDamage();
+
+ if (Crates.isSeriesSpecial(series)) {
+ return sCrateTextures[series];
+ }
+
+ return super.getIcon(itemStack, pass);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List list) {
+ for (int i = 0; i < Crates.getNumberOfSeries(); i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack itemStack, EntityPlayer player,
+ List info, boolean f) {
+ int series = itemStack.getItemDamage() + 1;
+
+ info.add(Crates.isSeriesSpecial(series)
+ ? (EnumChatFormatting.GREEN
+ + (StatCollector.translateToLocal(
+ "crate." + Crates.getNameFromSeries(series)
+ + ".name")))
+ : EnumChatFormatting.YELLOW + "Crate Series #" + series);
+
+ Object[] lootItems = Crates.getLootForCrate(series);
+
+ for (int i = 0; i < lootItems.length; i++) {
+ Object loot = lootItems[i];
+ String name = null;
+
+ if (loot instanceof ItemStack) {
+ name = ((ItemStack) loot).getDisplayName();
+ } else if (loot instanceof RandomLoot) {
+ name = ((RandomLoot) loot).getDisplayName();
+ }
+
+ info.add(EnumChatFormatting.GRAY + name);
+ }
+
+ info.add(EnumChatFormatting.AQUA
+ + "or an Exceedingly Rare Special Item!");
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack itemStack, World world,
+ EntityPlayer player) {
+ if (!world.isRemote) {
+ if (player.capabilities.isCreativeMode || player.inventory
+ .consumeInventoryItem(ServerProxyTC.key)) {
+ int series = itemStack.getItemDamage() + 1;
+ Object[] lootItems = Crates.getLootForCrate(series);
+
+ ItemStack stackLoot = null;
+
+ if (MathUtil.getChance(unusualChance[0],
+ unusualChance[1])) {
+ stackLoot = new ItemStack(ServerProxyTC.unusualEffect,
+ 1, MathUtil.nextInt(
+ ItemUnusualEffect.TYPES.length));
+ } else if (MathUtil.getChance(weaponChance[0],
+ weaponChance[1])) {
+ stackLoot = new ItemStack(
+ RandomLoot.WEAPONS.get(MathUtil
+ .nextInt(RandomLoot.WEAPONS.size())),
+ 1);
+ } else {
+ Object loot =
+ lootItems[MathUtil.nextInt(lootItems.length)];
+
+ if (loot instanceof ItemStack) {
+ stackLoot = (ItemStack) loot;
+ } else if (loot instanceof RandomLoot) {
+ stackLoot = ((RandomLoot) loot).getLoot();
+ }
+ }
+
+ boolean full = true;
+
+ for (int i = 0; i < player.inventory.getSizeInventory();
+ i++) {
+ if (player.inventory.getStackInSlot(i) == null) {
+ full = false;
+ }
+ }
+
+ if (!full) {
+ player.inventory
+ .addItemStackToInventory(stackLoot.copy());
+ } else {
+ player.entityDropItem(stackLoot.copy(), 1F);
+ }
+
+ MinecraftServer.getServer().getConfigurationManager()
+ .sendChatMsg(new ChatComponentText(player
+ .getDisplayName()
+ + " just uncrated "
+ + (stackLoot.stackSize > 1
+ ? (EnumChatFormatting.AQUA + ""
+ + stackLoot.stackSize
+ + " ")
+ : "a ")
+ + EnumChatFormatting.YELLOW
+ + stackLoot.getDisplayName()
+ + (stackLoot.stackSize > 1 ? "s" : "")
+ + EnumChatFormatting.WHITE + "!!!"));
+
+ new MessagePlaySound(ReferenceTC.ID + ":tf2crates.uncrate")
+ .sendTo((EntityPlayerMP) player);
+
+ itemStack.stackSize--;
+ } else {
+ player.addChatMessage(new ChatComponentText("You need a "
+ + EnumChatFormatting.YELLOW
+ + "Steve Co. Supply Crate Key"
+ + EnumChatFormatting.WHITE + " to open this!"));
+ }
+ }
+
+ return itemStack;
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemKey.java b/TF2 Crates/src/main/java/tf2crates/item/ItemKey.java new file mode 100755 index 0000000..242f1a2 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemKey.java @@ -0,0 +1,35 @@ +package tf2crates.item;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import tf2crates.ReferenceTC;
+
+public class ItemKey extends Item {
+ public ItemKey() {
+ super();
+
+ this.setUnlocalizedName("key");
+ this.setTextureName(ReferenceTC.ID + ":key");
+ this.setMaxStackSize(1);
+ }
+
+ @Override
+ public EnumRarity getRarity(ItemStack itemStack) {
+ return EnumRarity.rare;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack itemStack, EntityPlayer player,
+ List info, boolean f) {
+ info.add(EnumChatFormatting.YELLOW
+ + "Used to open locked supply crates.");
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemKnife.java b/TF2 Crates/src/main/java/tf2crates/item/ItemKnife.java new file mode 100755 index 0000000..46412ee --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemKnife.java @@ -0,0 +1,106 @@ +package tf2crates.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemSword;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.IIcon;
+import tf2crates.ReferenceTC;
+import tf2crates.ServerProxyTC;
+import tf2crates.crate.RandomLoot;
+import tf2crates.entity.EntityDamageSourceBackstab;
+import tlhpoeCore.network.MessagePlaySound;
+import tlhpoeCore.util.MiscUtil;
+
+public class ItemKnife extends ItemSword {
+ public static double backstabDifficulty = 0.75D;
+
+ public IIcon goldTexture;
+
+ public ItemKnife(String name) {
+ super(ServerProxyTC.MOD_WEAPON);
+
+ this.setUnlocalizedName(name);
+ this.setTextureName(ReferenceTC.ID + ":weapon/" + name);
+
+ RandomLoot.WEAPONS.add(this);
+ }
+
+ public ItemKnife(String name, float dmg) {
+ this(name);
+
+ MiscUtil.replaceField("field_150934_a", ItemSword.class, dmg,
+ this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register) {
+ super.registerIcons(register);
+
+ this.goldTexture =
+ register.registerIcon(ReferenceTC.ID + ":weapon/gold/"
+ + this.getUnlocalizedName().substring(5));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconIndex(ItemStack itemStack) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIconIndex(itemStack);
+ }
+
+ @Override
+ public IIcon getIcon(ItemStack itemStack, int pass) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIcon(itemStack, pass);
+ }
+
+ @Override
+ public boolean hitEntity(ItemStack itemStack, EntityLivingBase prey,
+ EntityLivingBase attacker) {
+ itemStack.damageItem(1, attacker);
+
+ float pYaw = prey.rotationYawHead % 360F;
+
+ pYaw = pYaw < 0 ? 360 + pYaw : prey.rotationYawHead;
+
+ float aYaw = attacker.rotationYawHead < 0
+ ? 360 + attacker.rotationYawHead
+ : attacker.rotationYawHead;
+
+ float newRot = pYaw - aYaw;
+
+ if (newRot < (90 * backstabDifficulty)
+ && newRot > (-90 * backstabDifficulty)) {
+ if (!attacker.worldObj.isRemote) {
+ new MessagePlaySound(ReferenceTC.ID + ":tf2crates.crit")
+ .sendTo((EntityPlayerMP) attacker);
+ }
+
+ if (itemStack.getItem() == ServerProxyTC.conniversKunai) {
+ attacker.heal(prey.getMaxHealth());
+ }
+
+ prey.attackEntityFrom(EntityDamageSourceBackstab
+ .causeBackstabDamage(attacker),
+ prey.getMaxHealth() * 600);
+ }
+
+ return false;
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemModAxe.java b/TF2 Crates/src/main/java/tf2crates/item/ItemModAxe.java new file mode 100755 index 0000000..78dea2c --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemModAxe.java @@ -0,0 +1,88 @@ +package tf2crates.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemAxe;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemTool;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+import tf2crates.ReferenceTC;
+import tf2crates.ServerProxyTC;
+import tf2crates.crate.RandomLoot;
+import tlhpoeCore.util.MiscUtil;
+
+public class ItemModAxe extends ItemAxe {
+ public IIcon goldTexture;
+
+ public ItemModAxe(String name) {
+ super(ServerProxyTC.MOD_WEAPON);
+
+ this.setUnlocalizedName(name);
+ this.setTextureName(ReferenceTC.ID + ":weapon/" + name);
+
+ RandomLoot.WEAPONS.add(this);
+ }
+
+ public ItemModAxe(String name, float dmg) {
+ this(name);
+
+ MiscUtil.replaceField("damageVsEntity", ItemTool.class, dmg, this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register) {
+ super.registerIcons(register);
+
+ this.goldTexture =
+ register.registerIcon(ReferenceTC.ID + ":weapon/gold/"
+ + this.getUnlocalizedName().substring(5));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconIndex(ItemStack itemStack) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIconIndex(itemStack);
+ }
+
+ @Override
+ public IIcon getIcon(ItemStack itemStack, int pass) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIcon(itemStack, pass);
+ }
+
+ @Override
+ public void onUpdate(ItemStack itemStack, World world, Entity entity,
+ int f, boolean f2) {
+ if (this == ServerProxyTC.powerJack) {
+ if (entity instanceof EntityLivingBase) {
+ EntityLivingBase living = (EntityLivingBase) entity;
+ ItemStack heldItem = living.getHeldItem();
+
+ if (heldItem != null && heldItem.getItem() != null
+ && heldItem.getItem() == ServerProxyTC.powerJack) {
+ living.addPotionEffect(new PotionEffect(
+ Potion.moveSpeed.id, 2, 0, true));
+ }
+ }
+ }
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemModPickaxe.java b/TF2 Crates/src/main/java/tf2crates/item/ItemModPickaxe.java new file mode 100755 index 0000000..ddcd915 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemModPickaxe.java @@ -0,0 +1,100 @@ +package tf2crates.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemPickaxe;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+import tf2crates.ReferenceTC;
+import tf2crates.ServerProxyTC;
+import tf2crates.crate.RandomLoot;
+
+public class ItemModPickaxe extends ItemPickaxe {
+ public IIcon goldTexture;
+
+ public ItemModPickaxe(String name) {
+ super(ServerProxyTC.MOD_WEAPON);
+
+ this.setUnlocalizedName(name);
+ this.setTextureName(ReferenceTC.ID + ":weapon/" + name);
+
+ RandomLoot.WEAPONS.add(this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register) {
+ super.registerIcons(register);
+
+ this.goldTexture =
+ register.registerIcon(ReferenceTC.ID + ":weapon/gold/"
+ + this.getUnlocalizedName().substring(5));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconIndex(ItemStack itemStack) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIconIndex(itemStack);
+ }
+
+ @Override
+ public IIcon getIcon(ItemStack itemStack, int pass) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIcon(itemStack, pass);
+ }
+
+ @Override
+ public void onUpdate(ItemStack itemStack, World world, Entity entity,
+ int f, boolean f2) {
+ if (this == ServerProxyTC.escapePlan) {
+ if (entity instanceof EntityLivingBase) {
+ EntityLivingBase living = (EntityLivingBase) entity;
+ ItemStack heldItem = living.getHeldItem();
+
+ if (heldItem != null && heldItem.getItem() != null
+ && heldItem
+ .getItem() == ServerProxyTC.escapePlan) {
+ float per = living.getHealth() / living.getMaxHealth();
+ int amplifier = -1;
+
+ if (per <= 0.25F) {
+ amplifier = 2;
+ } else if (per <= 0.5F) {
+ amplifier = 1;
+ } else if (per <= 0.75F) {
+ amplifier = 0;
+ }
+
+ if (amplifier != -1) {
+ living.addPotionEffect(new PotionEffect(
+ Potion.moveSpeed.id, 2, amplifier, true));
+ }
+
+ if (amplifier > 0) {
+ living.addPotionEffect(
+ new PotionEffect(Potion.digSpeed.id, 2,
+ amplifier - 1, true));
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemModShovel.java b/TF2 Crates/src/main/java/tf2crates/item/ItemModShovel.java new file mode 100755 index 0000000..e43b713 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemModShovel.java @@ -0,0 +1,66 @@ +package tf2crates.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemSpade;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemTool;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.IIcon;
+import tf2crates.ReferenceTC;
+import tf2crates.ServerProxyTC;
+import tf2crates.crate.RandomLoot;
+import tlhpoeCore.util.MiscUtil;
+
+public class ItemModShovel extends ItemSpade {
+ public IIcon goldTexture;
+
+ public ItemModShovel(String name) {
+ super(ServerProxyTC.MOD_WEAPON);
+
+ this.setUnlocalizedName(name);
+ this.setTextureName(ReferenceTC.ID + ":weapon/" + name);
+
+ RandomLoot.WEAPONS.add(this);
+ }
+
+ public ItemModShovel(String name, float dmg) {
+ this(name);
+
+ MiscUtil.replaceField("damageVsEntity", ItemTool.class, dmg, this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register) {
+ super.registerIcons(register);
+
+ this.goldTexture =
+ register.registerIcon(ReferenceTC.ID + ":weapon/gold/"
+ + this.getUnlocalizedName().substring(5));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconIndex(ItemStack itemStack) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIconIndex(itemStack);
+ }
+
+ @Override
+ public IIcon getIcon(ItemStack itemStack, int pass) {
+ NBTTagCompound nbt = itemStack.getTagCompound();
+
+ if (nbt != null && nbt.getBoolean("Golden")) {
+ return this.goldTexture;
+ }
+
+ return super.getIcon(itemStack, pass);
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemNoiseMaker.java b/TF2 Crates/src/main/java/tf2crates/item/ItemNoiseMaker.java new file mode 100755 index 0000000..807e9ab --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemNoiseMaker.java @@ -0,0 +1,50 @@ +package tf2crates.item;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import tf2crates.ReferenceTC;
+import tlhpoeCore.util.MathUtil;
+
+public class ItemNoiseMaker extends Item {
+ public String[] noises;
+
+ public ItemNoiseMaker(String name, String... noises) {
+ super();
+
+ this.setUnlocalizedName(name);
+ this.setTextureName(ReferenceTC.ID + ":" + name);
+ this.setMaxStackSize(1);
+
+ this.noises = noises;
+ }
+
+ @Override
+ public void onPlayerStoppedUsing(ItemStack itemStack, World world,
+ EntityPlayer player, int time) {
+ if (this.getMaxItemUseDuration(itemStack) - time > 10) {
+ player.playSound(noises[MathUtil.nextInt(noises.length)],
+ 0.25F + ((float) (MathUtil.nextDouble() / 8)), 1F);
+ }
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack itemStack, World world,
+ EntityPlayer player) {
+ player.setItemInUse(itemStack,
+ this.getMaxItemUseDuration(itemStack));
+ return itemStack;
+ }
+
+ @Override
+ public int getMaxItemUseDuration(ItemStack itemStack) {
+ return Integer.MAX_VALUE;
+ }
+
+ @Override
+ public EnumAction getItemUseAction(ItemStack itemStack) {
+ return EnumAction.block;
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemPaint.java b/TF2 Crates/src/main/java/tf2crates/item/ItemPaint.java new file mode 100755 index 0000000..f1d4f51 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemPaint.java @@ -0,0 +1,124 @@ +package tf2crates.item;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import tf2crates.ReferenceTC;
+
+public class ItemPaint extends Item { // make paint able to change the
+ // color of wool blocks
+ public static final String[] TYPES = { "black", "red", "green",
+ "brown", "blue", "purple", "cyan", "silver", "gray", "pink",
+ "lime", "yellow", "lightBlue", "magenta", "orange", "white" };
+ public IIcon[] textures;
+
+ public ItemPaint() {
+ super();
+
+ this.setUnlocalizedName("paint");
+ this.setMaxStackSize(1);
+
+ this.hasSubtypes = true;
+
+ this.setContainerItem(this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister) {
+ textures = new IIcon[TYPES.length];
+
+ for (int i = 0; i < TYPES.length; i++) {
+ textures[i] = iconRegister
+ .registerIcon(ReferenceTC.ID + ":paint/" + TYPES[i]);
+ }
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack itemStack) {
+ return StatCollector.translateToLocal(
+ "paint." + TYPES[itemStack.getItemDamage()] + ".name");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List list) {
+ for (int i = 0; i < TYPES.length; i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ public EnumRarity getRarity(ItemStack itemStack) {
+ return EnumRarity.rare;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int dmg) {
+ return textures[dmg];
+ }
+
+ @Override
+ public boolean
+ doesContainerItemLeaveCraftingGrid(ItemStack itemStack) {
+ return false;
+ }
+
+ @Override
+ public boolean hasContainerItem(ItemStack stack) {
+ return true;
+ }
+
+ @Override
+ public ItemStack getContainerItem(ItemStack itemStack) {
+ return itemStack;
+ }
+
+ @Override
+ 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_) {
+ Block block = world.getBlock(x, y, z);
+
+ if (block == Blocks.wool || block == Blocks.carpet
+ || block == Blocks.glass || block == Blocks.stained_glass
+ || block == Blocks.glass_pane
+ || block == Blocks.stained_glass_pane
+ || block == Blocks.hardened_clay
+ || block == Blocks.stained_hardened_clay) {
+ if (!world.isRemote) {
+ if (block == Blocks.glass) {
+ block = Blocks.stained_glass;
+ }
+
+ if (block == Blocks.glass_pane) {
+ block = Blocks.stained_glass_pane;
+ }
+
+ if (block == Blocks.hardened_clay) {
+ block = Blocks.stained_hardened_clay;
+ }
+
+ world.setBlock(x, y, z, block,
+ 15 - itemStack.getItemDamage(), 2);
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemSandvich.java b/TF2 Crates/src/main/java/tf2crates/item/ItemSandvich.java new file mode 100755 index 0000000..0a58246 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemSandvich.java @@ -0,0 +1,78 @@ +package tf2crates.item;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemFood;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+import tf2crates.ReferenceTC;
+import tf2crates.crate.RandomLoot;
+
+public class ItemSandvich extends ItemFood {
+ public ItemSandvich() {
+ super(20, 0.32F, true);
+
+ this.setUnlocalizedName("sandvich");
+ this.setTextureName(ReferenceTC.ID + ":sandvich");
+ this.setMaxStackSize(1);
+ this.setMaxDamage(6001);
+ this.setAlwaysEdible();
+
+ RandomLoot.WEAPONS.add(this);
+ }
+
+ @Override
+ protected void onFoodEaten(ItemStack itemStack, World world,
+ EntityPlayer player) {
+ if (!world.isRemote) {
+ player.addPotionEffect(
+ new PotionEffect(Potion.regeneration.id, 600, 2));
+ player.addPotionEffect(
+ new PotionEffect(Potion.digSpeed.id, 600, 2));
+ player.addPotionEffect(
+ new PotionEffect(Potion.moveSpeed.id, 600, 1));
+
+ player.heal(player.getMaxHealth());
+
+ itemStack.setItemDamage(6000);
+ }
+ }
+
+ @Override
+ public ItemStack onEaten(ItemStack itemStack, World world,
+ EntityPlayer player) {
+ player.getFoodStats().func_151686_a(this, itemStack);
+
+ world.playSoundAtEntity(player, "random.burp", 0.5F,
+ world.rand.nextFloat() * 0.1F + 0.9F);
+
+ this.onFoodEaten(itemStack, world, player);
+
+ return itemStack;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack itemStack, World world,
+ EntityPlayer player) {
+ if (itemStack.getItemDamage() == 0) {
+ player.setItemInUse(itemStack,
+ this.getMaxItemUseDuration(itemStack));
+ }
+
+ return itemStack;
+ }
+
+ @Override
+ public void onUpdate(ItemStack itemStack, World world, Entity entity,
+ int f, boolean f2) {
+ if (!world.isRemote) {
+ int dmg = itemStack.getItemDamage();
+
+ if (dmg > 0) {
+ itemStack.setItemDamage(dmg - 1);
+ }
+ }
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemScrap.java b/TF2 Crates/src/main/java/tf2crates/item/ItemScrap.java new file mode 100755 index 0000000..900851d --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemScrap.java @@ -0,0 +1,66 @@ +package tf2crates.item;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import tf2crates.ReferenceTC;
+
+public class ItemScrap extends Item {
+ public static final String[] TYPES =
+ { "scrap", "reclaimed", "refined" };
+ public static final EnumRarity[] RARITIES =
+ { EnumRarity.uncommon, EnumRarity.rare, EnumRarity.epic };
+ public IIcon[] textures;
+
+ public ItemScrap() {
+ super();
+
+ this.setUnlocalizedName("scrap");
+
+ this.hasSubtypes = true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister) {
+ textures = new IIcon[TYPES.length];
+
+ for (int i = 0; i < TYPES.length; i++) {
+ textures[i] = iconRegister
+ .registerIcon(ReferenceTC.ID + ":" + TYPES[i]);
+ }
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack itemStack) {
+ return StatCollector.translateToLocal(
+ "item." + TYPES[itemStack.getItemDamage()] + ".name");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List list) {
+ for (int i = 0; i < TYPES.length; i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int dmg) {
+ return textures[dmg];
+ }
+
+ @Override
+ public EnumRarity getRarity(ItemStack itemStack) {
+ return RARITIES[itemStack.getItemDamage()];
+ }
+}
\ No newline at end of file diff --git a/TF2 Crates/src/main/java/tf2crates/item/ItemUnusualEffect.java b/TF2 Crates/src/main/java/tf2crates/item/ItemUnusualEffect.java new file mode 100755 index 0000000..03ac2b0 --- /dev/null +++ b/TF2 Crates/src/main/java/tf2crates/item/ItemUnusualEffect.java @@ -0,0 +1,61 @@ +package tf2crates.item;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+import tf2crates.ReferenceTC;
+
+public class ItemUnusualEffect extends Item {
+ public static final String[] TYPES = { "burningFlames", "poof",
+ "whiteSparkles", "flies", "critical", "magicalCrit", "musical",
+ "end", "enchanted", "volcano", "smoking", "slime", "loving",
+ "villager" };
+
+ public ItemUnusualEffect() {
+ super();
+
+ this.setUnlocalizedName("unusualEffect");
+ this.setTextureName(ReferenceTC.ID + ":unusualEffect");
+ this.setMaxStackSize(1);
+ this.setFull3D();
+
+ this.hasSubtypes = true;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack itemStack) {
+ return StatCollector
+ .translateToLocal("unusualEffect."
+ + TYPES[itemStack.getItemDamage()] + ".name")
+ + " Unusual Effect";
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List list) {
+ for (int i = 0; i < TYPES.length; i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ public EnumRarity getRarity(ItemStack itemStack) {
+ return EnumRarity.epic;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack itemStack, EntityPlayer player,
+ List info, boolean f) {
+ info.add(EnumChatFormatting.YELLOW
+ + "Combine this with the helmet of your choice!");
+ }
+}
\ No newline at end of file |
