Posted February 27, 201312 yr So I've been following tutorials and learning how to work with forge, and I've got a new material that can be made into tools. For some reason, I can't enchant any of them. Here's some example code for the pickaxe: package moar.main; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; import net.minecraft.item.Item; import net.minecraft.creativetab.*; import moar.main.Moar; public class MoarPickaxe extends MoarTool { public static final Block[] blocksEffectiveAgainst = new Block[] {Block.cobblestone, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold, Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered, Moar.oreSilver}; public MoarPickaxe(int ID, EnumToolMaterial m, int texture, String name) { super(ID, 1, m, blocksEffectiveAgainst); this.setCreativeTab(CreativeTabs.tabTools); setIconIndex(texture); setItemName(name); } public boolean canHarvestBlock(Block par1Block) { return par1Block == Block.obsidian ? this.toolMaterial.getHarvestLevel() == 3 : (par1Block != Block.blockDiamond && par1Block != Block.oreDiamond ? (par1Block != Block.oreEmerald && par1Block != Block.blockEmerald ? (par1Block != Block.blockGold && par1Block != Block.oreGold ? (par1Block != Block.blockSteel && par1Block != Block.oreIron ? (par1Block != Block.blockLapis && par1Block != Block.oreLapis ? (par1Block != Block.oreRedstone && par1Block != Block.oreRedstoneGlowing ? (par1Block.blockMaterial == Material.rock ? true : (par1Block.blockMaterial == Material.iron ? true : par1Block.blockMaterial == Material.anvil)) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2); } public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) { return par2Block != null && (par2Block.blockMaterial == Material.iron || par2Block.blockMaterial == Material.anvil || par2Block.blockMaterial == Material.rock) ? this.efficiencyOnProperMaterial : super.getStrVsBlock(par1ItemStack, par2Block); } public String getTextureFile() { return CommonProxy.ITEMS_PNG; } public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) { return Moar.silverIngot.itemID == par2ItemStack.itemID ? true: super.getIsRepairable(par1ItemStack, par2ItemStack); } } And my main class: package moar.main; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; 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; import net.minecraft.item.EnumAction; import net.minecraft.item.EnumToolMaterial; @Mod(modid="moar", name="MOAR", version="0.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Moar { @Instance("moar") public static Moar instance; public static EnumToolMaterial silver = net.minecraftforge.common.EnumHelper.addToolMaterial("silver", 2, 1561, 4.0F, 2, 10); //Items public final static Item silverIngot = new MoarItem(5000).setMaxStackSize(64).setIconIndex(0).setItemName("silverIngot"); //Tools and Weapons public final static Item silverSword = new MoarSword(5001, silver, 1, "silverSword"); public final static Item silverShovel = new MoarShovel(5002, silver, 2, "silverShovel"); public final static Item silverPickaxe = new MoarPickaxe(5003, silver, 3, "silverPickaxe"); public final static Item silverAxe = new MoarAxe(5004, silver, 4, "silverAxe"); public final static Item silverHoe = new MoarHoes(5005, silver, 5, "silverHoe"); //Blocks public final static Block oreSilver = new MoarBlock(500,16,Material.iron); @SidedProxy(clientSide="moar.main.client.ClientProxy", serverSide="moar.main.CommonProxy") public static CommonProxy proxy; @PreInit public void preInit(FMLPreInitializationEvent event) { // Stub Method } @Init public void load(FMLInitializationEvent event) { //Names LanguageRegistry.addName(silverIngot, "Silver Ingot"); LanguageRegistry.addName(oreSilver, "Silver Ore"); LanguageRegistry.addName(silverSword, "Silver Sword"); LanguageRegistry.addName(silverPickaxe, "Silver Pickaxe"); LanguageRegistry.addName(silverShovel, "Silver Shovel"); LanguageRegistry.addName(silverAxe, "Silver Axe"); LanguageRegistry.addName(silverHoe, "Silver Hoe"); //Harvest Levels MinecraftForge.setBlockHarvestLevel(oreSilver, "pickaxe", 2); //Block Registry GameRegistry.registerBlock(oreSilver, "oreSilver"); //Crafting Recipes GameRegistry.addRecipe(new ItemStack(Moar.silverSword, 1), "#", "#", "X", '#', Moar.silverIngot, 'X', Item.stick); GameRegistry.addRecipe(new ItemStack(Moar.silverShovel, 1), "#", "X", "X", '#', Moar.silverIngot, 'X', Item.stick); GameRegistry.addRecipe(new ItemStack(Moar.silverPickaxe, 1), "###"," X ", " X ", '#', Moar.silverIngot, 'X', Item.stick); GameRegistry.addRecipe(new ItemStack(Moar.silverAxe, 1), "## ", "#X ", " X ", '#', Moar.silverIngot, 'X', Item.stick); GameRegistry.addRecipe(new ItemStack(Moar.silverHoe, 1), "## ", " X ", " X ", '#', Moar.silverIngot, 'X', Item.stick); //Furnace Recipes GameRegistry.addSmelting(oreSilver.blockID, new ItemStack(silverIngot), 0.5F); } @PostInit public void postInit(FMLPostInitializationEvent event) { // Stub Method } } Is there something that I'm missing to make them enchantable?
February 28, 201312 yr instead of making a thing called moar tools just have it extend ItemPickaxe then you can just make the classes in moartools static and access those you using a simple method. Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
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.