Forge载入mod的时候首先是通过基本类来载入的,你的mod的其它所有类都需要通过基本类来注册到Forge里面以便Forge载入,正因为这样,建议你以你的mod的名称来命名你的基本类。就像教程的一样,教程所要做的mod叫“Generic Mod”,基本类的名称就叫“Generic”。
在上面一步,我们建立了一个空的类。接下来让我们看看怎么构建一个标准的基本类。把Eclipse自动生成的代码删除掉,我们来看看下面的代码怎么写的:
- package tutorial.generic;
- import cpw.mods.fml.common.Mod;
- import cpw.mods.fml.common.Mod.EventHandler; // 1.6.2版本用这个
- //import cpw.mods.fml.common.Mod.PreInit; // 1.5.2版本用这个
- //import cpw.mods.fml.common.Mod.Init; // 1.5.2版本用这个
- //import cpw.mods.fml.common.Mod.PostInit; // 1.5.2版本用这个
- 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.network.NetworkMod;
- @Mod(modid="GenericModID", name="Generic", version="0.0.0")
- @NetworkMod(clientSideRequired=true)
- public class Generic {
- // Forge用到的你的mod的一个实例
- @Instance(value = "GenericModID")
- public static Generic instance;
-
- //告诉Forge你的客户端和服务端的“代理类”在哪里
- @SidedProxy(clientSide="tutorial.generic.client.ClientProxy", serverSide="tutorial.generic.CommonProxy")
- public static CommonProxy proxy;
-
- @EventHandler // 1.6.2版本用这个
- //@PreInit // 1.5.2版本用这个
- public void preInit(FMLPreInitializationEvent event) {
- // Stub Method
- }
-
- @EventHandler // 1.6.2版本用这个
- //@Init // 1.5.2版本用这个
- public void load(FMLInitializationEvent event) {
- proxy.registerRenderers();
- }
-
- @EventHandler // 1.6.2版本用这个
- //@PostInit // 1.5.2版本用这个
- public void postInit(FMLPostInitializationEvent event) {
- // Stub Method
- }
- }
复制代码 代理类
如果你写完了上述代码,但是没有代理类(即把@SidedProxy 注释掉),你的mod也许可以在单人游戏里运行,但在多人游戏里就不可以了。 | 这里面有很多的导入(imports)和注解(@),是吧?导入的列表会随着教程的进行而变得越来越长。通常,Eclipse会帮你自动导入所需的类以及添加导入,所以教程里就不详述导入的方面了。 当你写完这些代码以后你会遇到一个错误(error)。写有“CommonProxy”的地方应该会有红色下划线出现,这是正常的。在教你如何建立代理类的教程里会说到怎么建立“CommonProxy”,这里先不用管这个错误。
|