Posted January 25, 201510 yr I want to make a Item that will spawn a entity. However I want it to only spawn this entity when wearing custom armor. I do not have any code for this or know how to do this.
January 25, 201510 yr you can check what the player has in his armor slots (0-3???) before the entity is spawned. It would be great if you could give us some code. Here could be your advertisement!
January 25, 201510 yr In the Item right click method, you must use the player variable to check for the armor in a certain slot (player.getCurrentArmor I think? Not sure). If the player DOES have the armor on, then you spawn the entity. I think, like what Jacky said, 0 is helmet and 3 is boots. Creator of the MyFit, MagiCraft, Tesseract gun, and Papa's Wingeria mod.
January 26, 201510 yr Author The player.getcurrentarmor code is correct but idk where to put what armor or which armor slot.
January 26, 201510 yr Hi The player.getcurrentarmor code is correct but idk where to put what armor or which armor slot. Without seeing your code, it's hard to tell if you're on the right track. But if you just need to know which armour slot is which (helmet, breastplate etc) then for sure the easiest way is just to try it? System.out.println("Slot 0:" + player.inventory.armorInventory[0]); System.out.println("Slot 1:" + player.inventory.armorInventory[1]); System.out.println("Slot 2:" + player.inventory.armorInventory[2]); System.out.println("Slot 3:" + player.inventory.armorInventory[3]); -TGG
January 26, 201510 yr Author I don't really know how to use player.getcurrentarmor so that is why it is blank. package com.mineturnedmod.mineturned.items; import com.mineturnedmod.mineturned.Mineturnedmain; import com.mineturnedmod.mineturned.entity.EntityRpg; import cpw.mods.fml.common.eventhandler.Event; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class Missile extends Item { public Missile() { super(); setMaxStackSize(64).setFull3D(); } @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World,EntityPlayer par3EntityPlayer) { if(par3EntityPlayer.capabilities.isCreativeMode||par3EntityPlayer.inventory.consumeInventoryItem(Mineturnedmain.Missile)) if(par3EntityPlayer.getCurrentArmor()) { par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); if (!par2World.isRemote) { par2World.spawnEntityInWorld(new EntityRpg(par2World, par3EntityPlayer)); } } return par1ItemStack; } @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg){ this.itemIcon = reg.registerIcon("morecraftingmod:arrow"); } }
January 26, 201510 yr For example, if your armour is an item- ItemStack armourPiece0 = par3EntityPlayer.inventory.armorInventory[0]; if (armourPiece0 != null && armourPiece0.getItem() == myCustomArmourItem) { // do my entity spawn } -TGG
January 26, 201510 yr Author For example, if your armour is an item- ItemStack armourPiece0 = par3EntityPlayer.inventory.armorInventory[0]; if (armourPiece0 != null && armourPiece0.getItem() == myCustomArmourItem) { // do my entity spawn } -TGG Umm but there is no player.getcurrentarmor
January 26, 201510 yr For example, if your armour is an item- ItemStack armourPiece0 = par3EntityPlayer.inventory.armorInventory[0]; if (armourPiece0 != null && armourPiece0.getItem() == myCustomArmourItem) { // do my entity spawn } -TGG Umm but there is no player.getcurrentarmor True. Instead, this line gets the current armour piece (Helmet I think) ItemStack armourPiece0 = par3EntityPlayer.inventory.armorInventory[0]; -TGG
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.