Jump to content

[SOLVED][1.7.10] Newbie stepping over to Forge


AnotherDeveloper

Recommended Posts

So many tutorials everywhere! Many of those videos are totally out dated and just don't fully work. Even what I'm finding on the Forge wiki has deprecated and non-existing lines of code for the current version (10.13.0.1180). I've been using ModLoader for 3 years and it was easy all the way. I didn't edit base classes and was able to do things that Forge did.

 

I never went over to Forge because I hated it, and still do hate it some bit now. It's a frustrating API and it's making me tempted to crush my indestructible mouse.

 

As of now I'm just browsing for my solutions, but if you'd like to answer them then here is the list:

  • What up to date Forge tutorials can you recommend me? I am following ScratchForFun his tutorials right now.
  • I have the mcmod.info file with in src/main/resources but still I get it where it ask for the author to include it.
  • Where do I put my assets, such as items and blocks? I have it as src/main/resources/assets/shipcraft which works with lang related stuff but can't do it for textures.

Link to comment
Share on other sites

The directory to put the textures for your blocks is /src/main/resources/assets/[modname]/textures/blocks

Put your item's textures in /src/main/resources/assets/[modname]/textures/items

 

If you don't have the assets, textures, blocks or items folders then create them :)

 

Also, your en_US.lang file (and all other lang files) should go into /src/main/resources/assets/[modname]/lang rather than the resources folder.

 

You can find an up-to-date tutorial for some of the basic things you might want to do here: http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/1571558-1-7-2-forge-add-new-block-item-entity-ai-creative

 

Hope that helps :)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.