zoukankan      html  css  js  c++  java
  • 【Forge】Minecraft 1.7.10 Mod开发研究

    Mod已经创建好了,现在该把内容添加进来了。

    首先建一个类来统一管理Mod中所有的物品的实例和实例的初始化。

    建包的事就不提了,看着建吧。

    public class ModItems {
        public static ItemKuroNekoBag kuroNekoBag;
        
        public static void init() {
            kuroNekoBag = new ItemKuroNekoBag();
        }
    }

    直接在主类中的preInit方法里用起来。

    @Mod.EventHandler
    public void preInit(FMLPreInitializationEvent event) {
        ModItems.init();
    }

    然后把上面的ItemKuroNekoBag给创建出来,MC中的物品基类是net.minecraft.item.Item类,所以继承这个类。

    MC的命名方式是Item×××、Block×××,可以敲个item看看自动提示,应该是所有物品都有,可以根据需要继承现成的物品。

    建完类给一个无参构造方法,然后在构造方法里设置物品的各种属性,其中大部分是set×××。

    setUnlocalizedName(NAME);
    setCreativeTab(CreativeTabs.tabTools);
    setMaxStackSize(1);
    setTextureName(Constants.MOD_ID + ":" + NAME);
    像这样

    setCreativeTab决定了把这个道具放到创造模式的物品栏中的哪一个标签页里,CreativeTabs是个枚举类,还可以自己创建,不过暂时用不着。

    setMaxStackSize决定了这个物品最大可以堆叠多少个,背包肯定不能堆叠,所以就给个1。

    然后是两个比较麻烦的方法,先说setTextureName,这个方法用来设置物品的材质,接受的参数格式是主类中用注解设置的modID加上一个冒号再加上图片的名字,不包含后缀名。

    第二篇里说了工程目录中除了放代码的java文件夹还有一个放资源文件的resources文件夹,里面一开始是空的,需要自己建路径。大部分文件都需要放到assets文件夹下,在assets文件夹下需要建立一个以modID命名的文件夹作标识,而材质文件又要放到其中的textures文件夹下,现在需要的物品材质还要放到更深一层的items文件夹下,这些文件夹自然是要自己来建的。

    于是一顿创建之后就成了这样:assets/nekobags/textures/items/kuronekobag.png。

    因为我材质的文件名和物品的名字弄成了一样的,所以就直接用了常量,如果图片名不一样话就照着改。

    之后再说setUnlocalizedName这个方法。

    和Android的处理方式差不多,为了多语言兼容,同一个名字的各种翻译是统一用配置文件来管理的,这个方法设置的顾名思义是一个统一的标志,我这里直接叫kuronekobag。

    然后创建语言文件,同样在resources文件夹下,像这样:assets/nekobags/lang/

    然后在这个文件夹下面创建各语种的语言文件,我这里只用中英两种,en_US.lang和zh_CN.lang,需要其他语言依此类推,看不懂文件名的话需要自行补语言代码知识。

    里面是各种键值对,比如这样:

    item.kuronekobag.name=黑猫背包

    如果是方块的名称的话就把item改成tile。

    这样一个物品就创建好了,然后需要把它注册到游戏里面。

    在物品构造方法里加上一行代码:

    GameRegistry.registerItem(this, NAME);

    保存编译运行,这个黑猫背包就可以在创造模式物品栏里的工具那栏最下面找到了。

  • 相关阅读:
    for循环,pydev提示未使用的变量,解决办法
    sc 与net命令的区别
    Selenium测试Ajax程序(转)
    Python yield 使用浅析(转)
    python操作Excel读写--使用xlrd
    Python操作Mysql实例代码教程在线版(查询手册)
    MySQL之alter语句用法总结
    使用WebDriver遇到的那些坑(转)
    python 列表转为字典的两个小方法
    python
  • 原文地址:https://www.cnblogs.com/chihane/p/4182363.html
Copyright © 2011-2022 走看看