I have been working on a small noobish mod recently(not new to java, but new to ForgeAPI and methodology) and i am encountering the weirdest problem ever i swear... so all i am trying to do is code in a set of tools with a custom EnumToolMaterial, and everything works all fine and dandy in the eclipse debug environment, when i add the mod to my minecraft with some other mods(BOP, EBXL, TE) almost everything works fine... but for some reason my shovel refuses to acknowledge any mod items that are covered under shovel's... axe works pick works but not the shovel...
main file(relevant stuff at least)
@EventHandler
public void init(FMLInitializationEvent event)
{
genItems();
genArmor();
regRecipes();
}
in continuation to this, i tried building a custom sand block, literally just a sand block, and while it worked and behaved identically to a sand block, vanilla tools and quartz tools from Applied Energistics, my custom shovel was still ineffective against it...
i would love to try that... but all of a friggin sudden(literally after a close and open of eclipse) i get a "source not found" error when i try to open the super, or any other vanilla class file... i have re-built the dang gradlew like 9 times, deleted and downloaded a new eclipse, had it working for 7 seconds but with some extremely weird comments surrounding the whole file, then it just flickered over to source not found again...
this is all i see
// Compiled from ItemSpade.java (version 1.6 : 50.0, super bit)
public class net.minecraft.item.ItemSpade extends net.minecraft.item.ItemTool {
// Field descriptor #7 [Lnet/minecraft/block/Block;
public static final net.minecraft.block.Block[] blocksEffectiveAgainst;
EDIT: the weirdest thing to all this is... it still builds and plays minecraft just frickin fine -.-
EDIT2: fixed that with the help of google, for anyone else who sees this and has it happen http://www.minecraftforge.net/forum/index.php?topic=17573.0
i would, but 1.7.10 is... well.. to put it politely, very early alpha... i cannot even get a vanilla + forge 1.7.10 to work, it crashes every 5 seconds with any number of random error's... 1.6.4 is well established and in my experience pretty solid(at least as solid as the coder's making mods)
back on topic - the comments im referring to were user written comment's by the line numbers and at the end of the file, they looked like /* 56 *//* *insert real name here* temp/src/documents/desktop/jdk1.7/users */ --- like i said, strange comments... "re-built the dang gradlew" was my attempt at not cussing while using the commands to set up a gradle workspace(gradlew setUpDevWorkspace eclipse) since i assume profanity is a violation of TOS...
and copying the entire ItemSpade class did nothing... and even if it did... wouldn't that remove mod compatibility though? everywhere i have read says that if you @Override the harvest declaration's in the ItemTOOLNAMEHERE class then you eliminate mod compatibility because they alter those declaration's... and if u leave out the @Override it probably wont register correctly while still extending the ItemSpade class, but if u literally clone the ItemSpade class and extend ItemTool you theoretically will run into the problem i have to begin with right?... at this point i miss actual Java -.-
also, it may be a bit less than ideal morally, but i have de-compiled a few other tool mods(educational purposes only ofcourse), and used GitHub to look at a bunch more, and most of them are the same with the exception of registering the textures and tab's in the tool class instead of the main mod file...
Very early alpha? No it's not, it's been final for months. That's not polite or impolite at all, it's simply incorrect.
1.6.4 is well established, but it's obsolete and no longer maintained.
How are you getting crashes every 5 seconds? That doesn't even make sense, it takes longer than 5 seconds to restart from a crash. And I've never had a Forge related problem with 1.7.x, even when I started modding when it actually *was* alpha. I had crashes because of my own bad code though...
Alright yeah, back on topic - I'm sure someone who cares about 1.6.x will come along eventually
alright, 5 seconds was perhaps an exaggeration, but it still doesnt change the fact that 1.7.x crashed within 3 minutes of me launching it every time, always with a weird error, once it was OUT OF MEMORY despite having 4G allocated to vanilla, a few hundred times it was JAVA.LANG EXCEPTION, another couple hundred times it was EXCEPTION ACCESS VIOLATION, once it tossed an invalid video card driver error, and a few times it gave me NULL POINTER EXCEPTIONS... pretty broken imo, final or not... and are you sure its final? i thought to make a private modpack and ever mod required a version of forge not even listed on the website... heck tinkers had me go to the forums for experimental dev builds, and that was under a month ago(11/3 i think) maybe i will look back into 1.7, but i will not stop with this project until it is finished...
directly on-topic: why does the version matter that much? the 1.6.4 code for adding a tool is identical in every way to the 1.7.x code for adding a tool, the only exception to this is that 1.6.4 required ID's instead of names, and uses LanguageRegistry instead of the EN_US localization or w/e its called... but none of that matters as to how the tool is set and functions... plus any decent coder should be able to understand both just as easy... i can read 1.7.x code just fine, and im new to forge modding, may not be the best troubleshooter at it but i still can read and understand it...
Speaking from experience Access Violation Errors are normally because of broken or dodgy RAM which would also explain the out of memory error but a crash report would be helpful to sort out the problem
it does not want to crash in the eclipse debug environment, so thats a start... but it still isnt final, as the current and recommended are not the same version... i may give 1.7.10 another shot, but i will still be finishing this 1.6.4 project nevertheless, so any constructive help is still appreciated...
@Ohrm thanks for your concerns, but my RAM is better than perfect(by that i mean, stock it runs better than most comparable and yet i could overclock the crap out of it just fine) it was more likely a Java problem handling my RAM(which is very common, Java is terrible with memory management) than an actual physical problem with my RAM( http://www.teamgroup.com.tw/filterable_product/tabs_detail/data/en/9/782/zfKsFi.html, easily overclocks to ridiculous speeds and was built for it)... also i am a techie for a living so im pretty sure i would catch it if my RAM had problems... normally i would tell someone the same thing though man
to be fair i would rather not make any amount of hassle out of this, i was hoping it was just a slight oversight on my behalf and someone else would catch it for me, and to be frank i did not even want to make a post asking for help, i will not be releasing this mod so it matters very little, and i highly doubt i ever will release a mod, this is literally just a side project i needed to do because a few mod's i wanted in my pack had dead authors and no license available, since i have Java knowledge i figured i would just make my own, and its really not a big deal if my shovel's refuse to dig up mod dirt and stuff...
if someone wants to really help, make a super simple 1.7.10 mod that literally just adds an emerald shovel slightly faster than diamond with slightly more dura, make sure it works on some BOP mud, then shoot me the code and ill date it back to 1.6.4 and call it a day... u dont even gotta make textures for it just the base code... either that or shoot me a PM i can send u my entire source and u can look for yourself as long as u want... and if nobody is game for that, thats fine too ill just leave it as is and call it a day, since it does technically work just fine until u hit mod dirt/gravel style blocks...
EDIT: and just to clarify, my shovel still breaks the block and gives the drops, it just doesnt do it with speed, it acts just like a fist...
but it still isnt final, as the current and recommended are not the same version...
True, I should have used the term "Release" - point is, it's not alpha or even beta, it's effectively "ready for production" so to speak.
But if you want to argue semantics, there's no such thing as final software - except when it's dead/stopped, like 1.6.4. When the recommended and current are the same version, that means it's dead. But it's not, they're still adding new things and fixing other things.
And if you say "They're still fixing things so that means it's not alpha/beta", then Minecraft itself is alpha/beta, and so are Windows/Linux/OSX/everything not dead. There are always bugs, and always improvements to make. Forge for 1.6.4 however, any bugs that are remaining will never be fixed. Also, 1.7.10 has a lot of cool new stuff.
If you need help with making a mod in 1.7.10, the tutorial I followed when I first started is here. I had no issues at all with this one.
i appreciate it man, but im really not interested in modding at all, with coders like Immibis and Reika and MANY others its just kinda pointless to try... the only reason i even bothered is my modpack im building, i could not get permission for a Rotten Flesh to leather smelter that worked right, nor a Quartz Ore in the Overworld mod that didnt add a billion other useless things, nor a mod to add Emerald/Lapis/Nether Star tools... i already have all 3 done but the dang shovel wont work... i may just call it a day...
i started a brand new mod and tried all over with the same results... but i asked Reika, who said im missing getStrVsBlock in the Item class... so im going to play around with trying to figure that out a minute
i appreciate it man, but im really not interested in modding at all, with coders like Immibis and Reika and MANY others its just kinda pointless to try... the only reason i even bothered is my modpack im building, i could not get permission for a Rotten Flesh to leather smelter that worked right, nor a Quartz Ore in the Overworld mod that didnt add a billion other useless things, nor a mod to add Emerald/Lapis/Nether Star tools... i already have all 3 done but the dang shovel wont work... i may just call it a day...
Very fair enough then. That's a little depressing to just not bother because you're so intimidated by others... but I guess if you one day get a great idea you might change your mind and be interested.
It's sad though that Minecraft modding really isn't simple Anyway, I wish you luck.
not intimidated really... i just dont see the point in spending my time trying to compete with them... and your right, i have always said to myself if i ever get a good idea ill make it happen, but until i do im modding more out of need than want...
it really is fairly simple from what i see... the only problem is improper documentation in the declared class files... every good API has very very detailed information in each class file... and it wouldnt be so bad, but this is my run of luck in life... i have Murphy's law in my DNA man... if it can possibly go wrong, it will with me, maybe even twice... even after looking at 20+ other basic tool mods it boils down to us having almost exact code and theirs working but not mine... so idk... i followed every letter to the t, crossed my t's dotted my i's and still just get the weirdest problem ever...
/**
* The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32)
*/
public int getMaxUses()
{
return this.maxUses;
}
/**
* The strength of this tool material against blocks which it is effective against.
*/
public float getEfficiencyOnProperMaterial()
{
return this.efficiencyOnProperMaterial;
}
/**
* Damage versus entities.
*/
public float getDamageVsEntity()
{
return this.damageVsEntity;
}
/**
* The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD)
*/
public int getHarvestLevel()
{
return this.harvestLevel;
}
/**
* Return the natural enchantability factor of the material.
*/
public int getEnchantability()
{
return this.enchantability;
}
/**
* Return the crafting material for this tool material, used to determine the item that can be used to repair a tool
* with an anvil
*/
public int getToolCraftingMaterial()
{
switch (this)
{
case WOOD: return Block.planks.blockID;
case STONE: return Block.cobblestone.blockID;
case GOLD: return Item.ingotGold.itemID;
case IRON: return Item.ingotIron.itemID;
case EMERALD: return Item.diamond.itemID;
default: return (customCraftingMaterial == null ? 0 : customCraftingMaterial.itemID);
}
}
}
anyone else notice that in EnumToolMaterial DIAMOND doesnt exist? WOOD, STONE, GOLD, IRON, EMERALD...
not intimidated really... i just dont see the point in spending my time trying to compete with them... and your right, i have always said to myself if i ever get a good idea ill make it happen, but until i do im modding more out of need than want...
I understand, and really that's good. Every second person here wants help with their own mod that has been done many times already, there's a lot of mods out there and you'd really need something special to get any interest (like my mod - which is crazy complicated and will take years lol).
It has been EMERALD since before the actual addition of emeralds. So not really a derp as diamonds and emeralds are gemstones :3 Should have been called diamond though
main file(relevant stuff at least)
public void init(FMLInitializationEvent event)
{
genItems();
genArmor();
regRecipes();
}
private void genItems(){
EnumToolMaterial matEmerald = EnumHelper
.addToolMaterial("Emerald", 6, 2400, 14.0f, 7.0f, 25);
eAxe = new Axe(eAxeID, matEmerald).setUnlocalizedName("Emerald Axe");
regModel(eAxe);
regItems(eAxe);
eHoe = new Hoe(eHoeID, matEmerald).setUnlocalizedName("Emerald Hoe");
regModel(eHoe);
regItems(eHoe);
eShovel = new Shovel(eShovelID, matEmerald).setUnlocalizedName("Emerald Shovel");
regModel(eShovel);
regItems(eShovel);
ePick = new Pick(ePickID, matEmerald).setUnlocalizedName("Emerald Pickaxe");
regModel(ePick);
regItems(ePick);
eSword = new Sword(eSwordID, matEmerald).setUnlocalizedName("Emerald Sword");
regModel(eSword);
regItems(eSword);
}
private void regItems(Item item) {
GameRegistry.registerItem(item, item.getUnlocalizedName());
LanguageRegistry.addName(item, item.getUnlocalizedName().substring(5));
}
private void regModel(Item item){
item.setTextureName((ArmorUp.MODID+":"+item.getUnlocalizedName().substring(5)).toLowerCase());
}
i wont post all 5 tool classes, since all of them are identical except the class they extend, but i will post 2 for referrence
pick
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.ItemPickaxe;
public class Pick extends ItemPickaxe {
public Pick(int id, EnumToolMaterial toolMat) {
super(id, toolMat);
// TODO Auto-generated constructor stub
}
}
shovel
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.ItemSpade;
public class Shovel extends ItemSpade {
public Shovel(int id, EnumToolMaterial toolMat) {
super(id, toolMat);
}
}
now why is it my pick still works with mod blocks, but my shovel refuses to work with mod blocks? (mud blocks for example, also quicksand)
any help maybe?
oh yea... 1.6.4 built against Forge 964 tested with Forge 965
what in the heck did i do wrong?
this is all i see
public class net.minecraft.item.ItemSpade extends net.minecraft.item.ItemTool {
// Field descriptor #7 [Lnet/minecraft/block/Block;
public static final net.minecraft.block.Block[] blocksEffectiveAgainst;
// Method descriptor #9 (ILnet/minecraft/item/EnumToolMaterial;)V
// Stack: 5, Locals: 3
public ItemSpade(int p_i1900_1_, net.minecraft.item.EnumToolMaterial p_i1900_2_);
0 aload_0 [this]
1 iload_1 [p_i1900_1_]
2 fconst_1
3 aload_2 [p_i1900_2_]
4 getstatic net.minecraft.item.ItemSpade.blocksEffectiveAgainst : net.minecraft.block.Block[] [11]
7 invokespecial net.minecraft.item.ItemTool(int, float, net.minecraft.item.EnumToolMaterial, net.minecraft.block.Block[]) [14]
10 return
Line numbers:
[pc: 0, line: 11]
[pc: 10, line: 12]
Local variable table:
[pc: 0, pc: 0] local: this index: 0 type: net.minecraft.item.ItemSpade
[pc: 0, pc: 0] local: p_i1900_1_ index: 1 type: int
[pc: 0, pc: 0] local: p_i1900_2_ index: 2 type: net.minecraft.item.EnumToolMaterial
// Method descriptor #22 (Lnet/minecraft/block/Block;)Z
// Stack: 2, Locals: 2
public boolean canHarvestBlock(net.minecraft.block.Block arg0);
0 aload_1 [arg0]
1 getstatic net.minecraft.block.Block.snow : net.minecraft.block.Block [28]
4 if_acmpne 9
7 iconst_1
8 ireturn
9 aload_1 [arg0]
10 getstatic net.minecraft.block.Block.blockSnow : net.minecraft.block.Block [31]
13 if_acmpne 18
16 iconst_1
17 ireturn
18 iconst_0
19 ireturn
Line numbers:
[pc: 0, line: 16]
[pc: 9, line: 17]
[pc: 18, line: 18]
Stack map table: number of frames 2
[pc: 9, full, stack: {}, locals: {_, net.minecraft.block.Block}]
[pc: 18, chop 2 local(s)]
// Method descriptor #33 ()V
// Stack: 4, Locals: 0
static {};
0 bipush 10
2 anewarray net.minecraft.block.Block [24]
5 dup
6 iconst_0
7 getstatic net.minecraft.block.Block.grass : net.minecraft.block.BlockGrass [37]
10 aastore
11 dup
12 iconst_1
13 getstatic net.minecraft.block.Block.dirt : net.minecraft.block.Block [40]
16 aastore
17 dup
18 iconst_2
19 getstatic net.minecraft.block.Block.sand : net.minecraft.block.Block [43]
22 aastore
23 dup
24 iconst_3
25 getstatic net.minecraft.block.Block.gravel : net.minecraft.block.Block [46]
28 aastore
29 dup
30 iconst_4
31 getstatic net.minecraft.block.Block.snow : net.minecraft.block.Block [28]
34 aastore
35 dup
36 iconst_5
37 getstatic net.minecraft.block.Block.blockSnow : net.minecraft.block.Block [31]
40 aastore
41 dup
42 bipush 6
44 getstatic net.minecraft.block.Block.blockClay : net.minecraft.block.Block [49]
47 aastore
48 dup
49 bipush 7
51 getstatic net.minecraft.block.Block.tilledField : net.minecraft.block.Block [52]
54 aastore
55 dup
56 bipush 8
58 getstatic net.minecraft.block.Block.slowSand : net.minecraft.block.Block [55]
61 aastore
62 dup
63 bipush 9
65 getstatic net.minecraft.block.Block.mycelium : net.minecraft.block.BlockMycelium [59]
68 aastore
69 putstatic net.minecraft.item.ItemSpade.blocksEffectiveAgainst : net.minecraft.block.Block[] [11]
72 return
Line numbers:
[pc: 0, line: 6]
}
EDIT2: fixed that with the help of google, for anyone else who sees this and has it happen http://www.minecraftforge.net/forum/index.php?topic=17573.0
What is "re-built the dang gradlew"?
You're in Minecraft 1.6.4 and you're new to Forge, I suggest you move to 1.7.10 since 1.6.4 is no longer supported.
back on topic - the comments im referring to were user written comment's by the line numbers and at the end of the file, they looked like /* 56 *//* *insert real name here* temp/src/documents/desktop/jdk1.7/users */ --- like i said, strange comments... "re-built the dang gradlew" was my attempt at not cussing while using the commands to set up a gradle workspace(gradlew setUpDevWorkspace eclipse) since i assume profanity is a violation of TOS...
and copying the entire ItemSpade class did nothing... and even if it did... wouldn't that remove mod compatibility though? everywhere i have read says that if you @Override the harvest declaration's in the ItemTOOLNAMEHERE class then you eliminate mod compatibility because they alter those declaration's... and if u leave out the @Override it probably wont register correctly while still extending the ItemSpade class, but if u literally clone the ItemSpade class and extend ItemTool you theoretically will run into the problem i have to begin with right?... at this point i miss actual Java -.-
also, it may be a bit less than ideal morally, but i have de-compiled a few other tool mods(educational purposes only ofcourse), and used GitHub to look at a bunch more, and most of them are the same with the exception of registering the textures and tab's in the tool class instead of the main mod file...
1.6.4 is well established, but it's obsolete and no longer maintained.
How are you getting crashes every 5 seconds? That doesn't even make sense, it takes longer than 5 seconds to restart from a crash. And I've never had a Forge related problem with 1.7.x, even when I started modding when it actually *was* alpha. I had crashes because of my own bad code though...
Alright yeah, back on topic - I'm sure someone who cares about 1.6.x will come along eventually
directly on-topic: why does the version matter that much? the 1.6.4 code for adding a tool is identical in every way to the 1.7.x code for adding a tool, the only exception to this is that 1.6.4 required ID's instead of names, and uses LanguageRegistry instead of the EN_US localization or w/e its called... but none of that matters as to how the tool is set and functions... plus any decent coder should be able to understand both just as easy... i can read 1.7.x code just fine, and im new to forge modding, may not be the best troubleshooter at it but i still can read and understand it...
@Ohrm thanks for your concerns, but my RAM is better than perfect(by that i mean, stock it runs better than most comparable and yet i could overclock the crap out of it just fine) it was more likely a Java problem handling my RAM(which is very common, Java is terrible with memory management) than an actual physical problem with my RAM( http://www.teamgroup.com.tw/filterable_product/tabs_detail/data/en/9/782/zfKsFi.html, easily overclocks to ridiculous speeds and was built for it)... also i am a techie for a living so im pretty sure i would catch it if my RAM had problems... normally i would tell someone the same thing though man
to be fair i would rather not make any amount of hassle out of this, i was hoping it was just a slight oversight on my behalf and someone else would catch it for me, and to be frank i did not even want to make a post asking for help, i will not be releasing this mod so it matters very little, and i highly doubt i ever will release a mod, this is literally just a side project i needed to do because a few mod's i wanted in my pack had dead authors and no license available, since i have Java knowledge i figured i would just make my own, and its really not a big deal if my shovel's refuse to dig up mod dirt and stuff...
if someone wants to really help, make a super simple 1.7.10 mod that literally just adds an emerald shovel slightly faster than diamond with slightly more dura, make sure it works on some BOP mud, then shoot me the code and ill date it back to 1.6.4 and call it a day... u dont even gotta make textures for it just the base code... either that or shoot me a PM i can send u my entire source and u can look for yourself as long as u want... and if nobody is game for that, thats fine too ill just leave it as is and call it a day, since it does technically work just fine until u hit mod dirt/gravel style blocks...
EDIT: and just to clarify, my shovel still breaks the block and gives the drops, it just doesnt do it with speed, it acts just like a fist...
True, I should have used the term "Release" - point is, it's not alpha or even beta, it's effectively "ready for production" so to speak.
But if you want to argue semantics, there's no such thing as final software - except when it's dead/stopped, like 1.6.4. When the recommended and current are the same version, that means it's dead. But it's not, they're still adding new things and fixing other things.
And if you say "They're still fixing things so that means it's not alpha/beta", then Minecraft itself is alpha/beta, and so are Windows/Linux/OSX/everything not dead. There are always bugs, and always improvements to make. Forge for 1.6.4 however, any bugs that are remaining will never be fixed. Also, 1.7.10 has a lot of cool new stuff.
If you need help with making a mod in 1.7.10, the tutorial I followed when I first started is here. I had no issues at all with this one.
Very fair enough then. That's a little depressing to just not bother because you're so intimidated by others... but I guess if you one day get a great idea you might change your mind and be interested.
It's sad though that Minecraft modding really isn't simple Anyway, I wish you luck.
it really is fairly simple from what i see... the only problem is improper documentation in the declared class files... every good API has very very detailed information in each class file... and it wouldnt be so bad, but this is my run of luck in life... i have Murphy's law in my DNA man... if it can possibly go wrong, it will with me, maybe even twice... even after looking at 20+ other basic tool mods it boils down to us having almost exact code and theirs working but not mine... so idk... i followed every letter to the t, crossed my t's dotted my i's and still just get the weirdest problem ever...
package net.minecraft.item;
import net.minecraft.block.Block;
public enum EnumToolMaterial
{
WOOD(0, 59, 2.0F, 0.0F, 15),
STONE(1, 131, 4.0F, 1.0F, 5),
IRON(2, 250, 6.0F, 2.0F, 14),
EMERALD(3, 1561, 8.0F, 3.0F, 10),
GOLD(0, 32, 12.0F, 0.0F, 22);
/**
* The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD)
*/
private final int harvestLevel;
/**
* The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32)
*/
private final int maxUses;
/**
* The strength of this tool material against blocks which it is effective against.
*/
private final float efficiencyOnProperMaterial;
/** Damage versus entities. */
private final float damageVsEntity;
/** Defines the natural enchantability factor of the material. */
private final int enchantability;
//Added by forge for custom Armor materials.
public Item customCraftingMaterial = null;
private EnumToolMaterial(int par3, int par4, float par5, float par6, int par7)
{
this.harvestLevel = par3;
this.maxUses = par4;
this.efficiencyOnProperMaterial = par5;
this.damageVsEntity = par6;
this.enchantability = par7;
}
/**
* The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32)
*/
public int getMaxUses()
{
return this.maxUses;
}
/**
* The strength of this tool material against blocks which it is effective against.
*/
public float getEfficiencyOnProperMaterial()
{
return this.efficiencyOnProperMaterial;
}
/**
* Damage versus entities.
*/
public float getDamageVsEntity()
{
return this.damageVsEntity;
}
/**
* The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD)
*/
public int getHarvestLevel()
{
return this.harvestLevel;
}
/**
* Return the natural enchantability factor of the material.
*/
public int getEnchantability()
{
return this.enchantability;
}
/**
* Return the crafting material for this tool material, used to determine the item that can be used to repair a tool
* with an anvil
*/
public int getToolCraftingMaterial()
{
switch (this)
{
case WOOD: return Block.planks.blockID;
case STONE: return Block.cobblestone.blockID;
case GOLD: return Item.ingotGold.itemID;
case IRON: return Item.ingotIron.itemID;
case EMERALD: return Item.diamond.itemID;
default: return (customCraftingMaterial == null ? 0 : customCraftingMaterial.itemID);
}
}
}
anyone else notice that in EnumToolMaterial DIAMOND doesnt exist? WOOD, STONE, GOLD, IRON, EMERALD...
I understand, and really that's good. Every second person here wants help with their own mod that has been done many times already, there's a lot of mods out there and you'd really need something special to get any interest (like my mod - which is crazy complicated and will take years lol).
Minecraft derp, look at this part:
So EnumToolMaterial.EMERALD is the diamond tier.
Art by me: MrPancakeWolfie@DeviantArt
eShovel = new ItemSpade(eShovelID, EnumToolMaterial.EMERALD).setUnlocalizedName("Emerald Shovel");
and it still doesnt work... it has to be a forge problem or something... either that or maybe the other mods blocks are not registered right? maybe?