I know that I have made a Similar thread in the past about it, but I really need some live assistance.
I setup a minecraft project (Probably the easiest part honestly). Now I'm just lost. There's thousands of source files, Most of which contains things I have not a single clue about. But I guess I don't need to worry about that for now
I tried to get started but seriously how do you even go about doing that? I'm assuming making a package for my mod would be the first thing. But where?
How do I tell forge that "Hey, this is my mod and it contains x things in it, each of which contains x textures and x rendering models, there's also x generated things in it, thanks". Building thing like blocks and gens aren't crazy hard for me, its to communicate with forge that confuses me.
I've seen tuts showing basic modding but they just code and don't say what those things do. like for the main class there an annotation type @mod that apparently tells forge that this is the main class to the mod. Okay how do I add other classes to that class? Is there a registry that I can use for that? Do I just create a new object of the class in the main class? I have not 1 clue and quite frankly I am discouraged.
I really hope someone has been where I am, and I would really like some advice. Thanks.
If you're experienced in Java, you'll get used in no time. The basic tutorials on how to setup your packages and the main class of your mod are found on youtube and google, it's pretty easy. Don't go through the entire Minecraft source, you'll have to get multiple puke buckets ready and it can't be good for your health. However, I'd recommend that you learn how to do the most basic stuff (blocks, items, armor, etc) to get used to this new environment. After that, you want to get used to the Forge API. By that, I mean how to handle your stuff over the event bus, tile entities, and much more. By then, get a clear idea of what mod you want to make and learn whatever you need to make it.
If you have more questions, I'd be happy to give you a hand
Call registration methods from the 3 main parts of the FML life cycle. Each must be annotated with @EventHandler, must be public static and in your @Mod annotated class. Many modders consider it good practice to have separate classes for registering each type of thing (entities, blocks, items, etc.)
Yes, the @Mod annotation tells the Forge Mod Loader which file is a valid mod. Inside it you will need methods that accept a single event argument.
Let me describe some for you:
Anything you do from the method that accepts this event as an argument can be safely added to the game. This includes registering all blocks, items, itemblocks, and entities, among other things. Entity renders should be registered in this phase as of 1.8.
You will use GameRegistry methods added by Forge to register almost everything. For example, calling GameRegistry.registerBlock(Block myBlockInstance, String unlocalizedName) in 1.8.x or 1.7.10 will add a block to the game. Hopefully you set its other attributes before doing that. In 1.9 the GameRegistry class becomes even more flexible and is used to register dimensions and biomes as well.
This method should register event handlers (that's another topic) and block and item rendering. Also register crafting recipes here as of 1.8.
... I never use this. I suppose many mods do if they want to query all the blocks or liquids that have been added, but I've never had a need for that myself. Anyone care to elaborate?
Here's one example of an @Mod annotated file that calls a Config class, Item and Block registration class, Entity registration, rendering, event handlers, etc. See ExtraGolems.java
The proxies are another core part of modding setup. CommonProxy is shared code between the client and server. All blocks, items, entities, and pretty much everything content- or logic-oriented should be shared. For client only things, use the proxy. This mostly includes rendering and name localization.
Rollback Post to RevisionRollBack
Click this banner for a list of illegal mod distributors -- only download from legal sites!