I already knew where to put the lang stuff, but images I wasn't sure about. So according to what you're saying I have everything in the correct directories. I checked my spelling a few gazillion times and all that gets thrown at me is:
[Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4096_bigboat.png
java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4096_bigboat.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:593) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:941) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_60]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_60]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_60]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_60]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_60]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_60]
at GradleStart.bounce(GradleStart.java:95) [start/:?]
at GradleStart.startClient(GradleStart.java:88) [start/:?]
at GradleStart.main(GradleStart.java:56) [start/:?]
What I have in the main class is:
package net.advmccoder.shipcraft;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
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.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "shipcraft" , version = "3.0")
public class ShipCraftMod {
@Instance(value="shipcraftmod")
public static ShipCraftMod instance;
public static Block shipworkbench;
public static Item bigBoat;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
shipworkbench = new BlockShipWorkbench(Material.iron).setHardness(3.5F).setResistance(3.5F);
GameRegistry.registerBlock(shipworkbench, "shipworkbench");
bigBoat = new ItemBigBoat(2000).setUnlocalizedName("bigboat");
GameRegistry.registerItem(bigBoat, "bigboat");
}
@EventHandler
public void init(FMLInitializationEvent event) {
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
}
}
In the item that I've created, I've got:
package net.advmccoder.shipcraft;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class ItemBigBoat extends Item {
public ItemBigBoat(int i) {
super();
setMaxStackSize(1);
setCreativeTab(CreativeTabs.tabTransport);
}
}
I'm not sure if using preInit is the right one to use, but that's why I see them doing on the Forge wiki