• 第三章:真正弄清楚一个Mod的组织结构


    <基于1.8 Forge的Minecraft mod制作经验分享>

    首先看看一个mod的文件结构,懂Java的应该都看得懂:

    src/main/
                --java/com.xxxxxxxx.xxx/
                                            ----block/
                                            ----item/
                                            ......
                                            ----xxx.java
                --resources/assets/xxx/
                                            ----blockstates/
                                            ----lang/
                                            ----models/
                                            ----textures/
                                            ----mcmod.info


    可以看到在main文件夹下,有java、resources两个文件夹,前者放Java源码,后者存放要用到的资源,现在开始具体介绍:

    1. 首先,你需要一个用@Mod(modid = xxxx, version = xxxx)这个注解标识的Java主类作为入口,对应上图的xxx.java。Forge会根据这个注解识别到它。modid是你的mod的Id,即一个唯一标识你的mod的字符串,记得小写,version是版本号,一个形如1.0.0的String。一般建议把这两个String作为常量定义主类里,方便随后的调用。

      然后,你需要用@EventHandler注解标注几个方法,使这个主类能够真正的在Forge运行时做一些事情。这个注解是根据其标注的方法的参数来工作的,这里有三个基本的参数:FMLPreInitializationEvent、FMLInitializationEvent、FMLPostInitializationEvent。这三个参数其实是三个事件,Forge会在MC开始时依次执行这三个事件。关于它们的具体分工我发现很难说清楚,还是在之后用到的时候再细说吧。

      在我的斗罗大(大)陆(坑)mod里,主类是长这样的:

      @Mod(modid = DouroMod.MODID, version = DouroMod.VERSION)
      public class DouroMod
      {
          /**ModInfo*/
          public static final String MODID = "douromod";
          public static final String VERSION = "0.0.0";
      
          ......
          ......
      
          @EventHandler
          public void preInit(FMLPreInitializationEvent event)
          { ...... }
      
          @EventHandler
          public void init(FMLInitializationEvent event)
          { ...... }
      
          @EventHandler
          public void postInit(FMLPostInitializationEvent event)
          { ...... }
      }


    2. 然后你需要对你的mod做一个描述,这部分内容在上图中的mcmod.info里面完成。里面的modid、name、description等等都是顾名思义的,填上就行。需要注意version、mcversion别动,看得出那是占位符吧,是由gradle搞定的,不需要你写。另外,如果想要输中文并正常显示的话,需要把文件编码调整为GBK而不是UTF-8,有点奇怪对吧,所以建议别用中文,除非你想让外国友人看到乱码。

    3. 现在你的mod主类已经建立,并且用@Mod申明了mod的Id和Version,也为你的mod添加了描述信息。但你还需要在build.gradle里面同步的修改它们。在工程目录下找到build.gradle并打开,可以看到里面其实写的很详细,你需要改什么,不应该动什么。关键是把version = ""里面改为你的mod版本号,group = ""里面写你的包名com.xxxxxxxx.xxx,archivesBaseName = ""里面写mod的Id。

    好了,运行试试看,在mod选项里是不是已经看到了你的mod以及的描述信息了呢?我的Github链接https://github.com/zhengxiaoyao0716/DouroMod,快来一起做啊

    第三章:真正弄清楚一个Mod的组织结构

    爱冷剑,怜悲箫,月下狼孤啸; 轻点画,慢勾描,云中人逍遥。
  • 相关阅读:
    软件项目管理阅读笔记02
    大二下周总结(11)
    “帮你APP”团队冲刺9
    “帮你APP”团队冲刺8
    “帮你APP”团队冲刺7
    “帮你APP”团队冲刺6
    “帮你APP”团队冲刺5
    单词统计
    “帮你APP”团队冲刺4
    “帮你APP”团队冲刺3
  • 原文地址:https://www.cnblogs.com/zhengxiaoyao0716/p/5914930.html
Copyright © 2020-2023  润新知