
sefodopo
Members-
Posts
14 -
Joined
-
Last visited
Everything posted by sefodopo
-
never mind I was able to add an if statement to check if it would be the last use and then only create one.
-
never mind I was able to add an if statement to check if it would be the last use and then only create one.
-
What I mean is I have an Item that is used only in crafting recipes but when I craft with that Item I have a handler that checks if my Item is in the crafting table then it adds damage to my Item and it shows the damage in Minecraft but when I use It up it doesn't break any suggestions? Mine.java: package sefodopo.mine; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="sefodopoMine", name="Mine", version="1.0.1") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Mine { final static Item mineGrind = new mainItem(5000, 64, "mineGrind").setMaxDamage(64).setNoRepair(); public static int mineGrindID = mineGrind.itemID; public static CreativeTabs mineMain = new CreativeTabs("mineMain") { public ItemStack getIconItemStack() { return new ItemStack(mineGrind, 1, 0); } }; // The instance of your mod that Forge uses. @Instance("Generic") public static Mine instance; // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="sefodopo.mine.client.ClientProxy", serverSide="sefodopo.mine.CommonProxy") public static CommonProxy proxy; @PreInit public void preInit(FMLPreInitializationEvent event) { // Stub Method } @Init public void load(FMLInitializationEvent event) { proxy.registerRenderers(); LanguageRegistry.instance().addStringLocalization("itemGroup.mineMain", "en_US", "Mine"); LanguageRegistry.addName(mineGrind, "Grind"); mineGrind.setCreativeTab(mineMain); recipes(); GameRegistry.registerCraftingHandler(new craftingHandler()); } private void recipes() { GameRegistry.addRecipe(new ItemStack(mineGrind), "xxx", "xxx", "xxx", 'x', new ItemStack(Block.gravel)); GameRegistry.addShapelessRecipe(new ItemStack(Block.sand, 3), new ItemStack(Block.dirt), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); GameRegistry.addShapelessRecipe(new ItemStack(Block.sand, 5), new ItemStack(Block.cobblestone), new ItemStack(mineGrind), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); GameRegistry.addShapelessRecipe(new ItemStack(Block.sand, 3), new ItemStack(Block.gravel), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); GameRegistry.addShapelessRecipe(new ItemStack(Item.silk), new ItemStack(Block.cloth, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); } @PostInit public void postInit(FMLPostInitializationEvent event) { // Stub Method } } mainItem.java: package sefodopo.mine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class mainItem extends Item { public mainItem(int par1, int maxStackSize, String Name, Item item) { super(par1); setMaxStackSize(maxStackSize); setUnlocalizedName(Name); setContainerItem(item); } public mainItem(int par1, int maxStackSize, String Name) { super(par1); setMaxStackSize(maxStackSize); setUnlocalizedName(Name); } @Override @SideOnly(Side.CLIENT) public void registerIcons(IconRegister iconRegister) { this.itemIcon=iconRegister.registerIcon("sefodopo:mineGrind"); } } craftingHandler.java: package sefodopo.mine; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import cpw.mods.fml.common.ICraftingHandler; public class craftingHandler implements ICraftingHandler { @Override public void onCrafting(EntityPlayer player, ItemStack item, IInventory inv) { // TODO Auto-generated method stub for(int i=0; i < inv.getSizeInventory(); i++) { if(inv.getStackInSlot(i) != null) { ItemStack j = inv.getStackInSlot(i); if(j.getItem() != null && j.getItem() == Mine.mineGrind) { ItemStack k = new ItemStack(Mine.mineGrind, 2, (j.getItemDamage() + 1));//makes 2 items, 1 that is used and 1 that is damaged inv.setInventorySlotContents(i, k);//i is slot, k is Item } } } } @Override public void onSmelting(EntityPlayer player, ItemStack item) { // TODO Auto-generated method stub } }
-
What I mean is I have an Item that is used only in crafting recipes but when I craft with that Item I have a handler that checks if my Item is in the crafting table then it adds damage to my Item and it shows the damage in Minecraft but when I use It up it doesn't break any suggestions? Mine.java: package sefodopo.mine; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="sefodopoMine", name="Mine", version="1.0.1") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Mine { final static Item mineGrind = new mainItem(5000, 64, "mineGrind").setMaxDamage(64).setNoRepair(); public static int mineGrindID = mineGrind.itemID; public static CreativeTabs mineMain = new CreativeTabs("mineMain") { public ItemStack getIconItemStack() { return new ItemStack(mineGrind, 1, 0); } }; // The instance of your mod that Forge uses. @Instance("Generic") public static Mine instance; // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="sefodopo.mine.client.ClientProxy", serverSide="sefodopo.mine.CommonProxy") public static CommonProxy proxy; @PreInit public void preInit(FMLPreInitializationEvent event) { // Stub Method } @Init public void load(FMLInitializationEvent event) { proxy.registerRenderers(); LanguageRegistry.instance().addStringLocalization("itemGroup.mineMain", "en_US", "Mine"); LanguageRegistry.addName(mineGrind, "Grind"); mineGrind.setCreativeTab(mineMain); recipes(); GameRegistry.registerCraftingHandler(new craftingHandler()); } private void recipes() { GameRegistry.addRecipe(new ItemStack(mineGrind), "xxx", "xxx", "xxx", 'x', new ItemStack(Block.gravel)); GameRegistry.addShapelessRecipe(new ItemStack(Block.sand, 3), new ItemStack(Block.dirt), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); GameRegistry.addShapelessRecipe(new ItemStack(Block.sand, 5), new ItemStack(Block.cobblestone), new ItemStack(mineGrind), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); GameRegistry.addShapelessRecipe(new ItemStack(Block.sand, 3), new ItemStack(Block.gravel), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); GameRegistry.addShapelessRecipe(new ItemStack(Item.silk), new ItemStack(Block.cloth, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(mineGrind, 1, OreDictionary.WILDCARD_VALUE)); } @PostInit public void postInit(FMLPostInitializationEvent event) { // Stub Method } } mainItem.java: package sefodopo.mine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class mainItem extends Item { public mainItem(int par1, int maxStackSize, String Name, Item item) { super(par1); setMaxStackSize(maxStackSize); setUnlocalizedName(Name); setContainerItem(item); } public mainItem(int par1, int maxStackSize, String Name) { super(par1); setMaxStackSize(maxStackSize); setUnlocalizedName(Name); } @Override @SideOnly(Side.CLIENT) public void registerIcons(IconRegister iconRegister) { this.itemIcon=iconRegister.registerIcon("sefodopo:mineGrind"); } } craftingHandler.java: package sefodopo.mine; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import cpw.mods.fml.common.ICraftingHandler; public class craftingHandler implements ICraftingHandler { @Override public void onCrafting(EntityPlayer player, ItemStack item, IInventory inv) { // TODO Auto-generated method stub for(int i=0; i < inv.getSizeInventory(); i++) { if(inv.getStackInSlot(i) != null) { ItemStack j = inv.getStackInSlot(i); if(j.getItem() != null && j.getItem() == Mine.mineGrind) { ItemStack k = new ItemStack(Mine.mineGrind, 2, (j.getItemDamage() + 1));//makes 2 items, 1 that is used and 1 that is damaged inv.setInventorySlotContents(i, k);//i is slot, k is Item } } } } @Override public void onSmelting(EntityPlayer player, ItemStack item) { // TODO Auto-generated method stub } }
-
now i have a crafting handler that damages my item every time i use it in a crafting recipe but it doesn't break. How would you fix that?
-
now i have a crafting handler that damages my item every time i use it in a crafting recipe but it doesn't break. How would you fix that?
-
how would you use a tool in a crafting recipe no matter what the damage value is for it.
-
how would you use a tool in a crafting recipe no matter what the damage value is for it.