关于 MC 的 Forge 模组开发(四):创造模式物品栏与合成表

关于 MC 的 Forge 模组开发(四):创造模式物品栏与合成表

私下我又制作了一个物品 “C++”,暂不放图。

一、创造模式物品栏

大家肯定不喜欢把东西堆在杂项里面,毕竟是自己的物品,肯定安排一个专属物品栏。

现在我们就来干这个事情。

首先新建 groups 包,和 items 放在一块,然后在下面新建 OIGroup 和 ModGroup 两个类。

OIGroup 的内容如下:

public class OIGroup extends ItemGroup {
    public OIGroup(){ super("oi_group"); }

    public ItemStack makeIcon(){
        return new ItemStack(ItemRegistry.c__.get());
    }
}

这里我们先让它继承自原版的 ItemGroup,并提供一个构造函数,调用父类的构造函数,参数是注册名。

然后我们复写 makeIcon 方法,它返回用作图标的物品,其返回值是 ItemStack(你可以简单地理解为,ItemStackItem 的区别就是,Item 只是物品,ItemStack 则是占据一个物品栏的物品,它多出了数量和 NBT 的概念,并由一个 Item 实例代表其中所有的物品),调用 ItemRegistry 中注册的物品的 get() 方法。

这里用我们新写的 “C++" 物品作为图标,当然,你也可以替换为其他物品。

然后进入到 ModGroup,我们要在这里声明我们创造模式物品栏的示例:

public class ModGroup {
    public static final ItemGroup oiGroup=new OIGroup();
}

名字随意就好了,现在我们回到已有的物品中,更改它们的创造模式物品栏。

IncompleteC__ 为例,打开后将 super(new Properties().group(ItemGroup.MATERIALS)) 改为 super(new Properties().tab(ModGroup.oiGroup)) 即可。

先别急着启动,我们到汉化文件中给物品栏加上名字:

  itemGroup.oi_group: OI

然后启动游戏,就会发现物品栏多出了翻页功能,翻过去就是我们的 OI 物品栏啦!

如果汉化没加载成功,请检查一下语法,比如 , 是否正确,我不会告诉你我卡这卡了十分钟~。

现在看看我们的物品栏吧!

image-20221213090325360

二、合成配方

合成配方的制作和我们之前的部分不太一样,它是通过数据包的方式加载的。

就像为原版制作数据包一样,我们要为 mod 制作数据包。

你可能注意到了,在 resources 目录下还有一个 pack.mcmeta 文件,这其实就是数据包的一部分,尽管你可以保持默认

我们新建一个 data 文件夹,然后在里面建立对应的文件目录。

对于我们需要的配方,它就是这样:data/olympiadininformatics/recipes

请不要用 IDEA 一次性建立这个文件夹,它不会建立为多层,而仅仅是一个名为:data.olympiadininformatics.recipes 的文件夹。天知道我搁这卡了多久

现在我们创建一个 json 文件,名称随意,我选择和物品同名:c__.json

我们接下来添加一个配方,用九个 “残缺的C++” 合成 “C++”,就像锭合成块一样。

c__.json 中内容如下:

{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "111",
    "111",
    "111"
  ],
  "key": {
    "1": {
      "item": "olympiadininformatics:incompletec__"
    }
  },
  "result": {
    "item": "olympiadininformatics:c__",
    "count": 1
  }
}

type 是合成的类型,在这里,我们是有序合成,其他都以后可能会涉及。

pattern 就是合成表的形式,其中物品用字符表示,不需要的位置用空格代替。

key 存贮每个字符代表的物品,当然,不一定是物品,也可以是指定的 tag(或者矿辞?)。

resault 是返回的物品,其中 count 表示数量。

现在进入游戏,就可以发现配方生效了!

三、一些其他的事

参考链接:

合成

配方

posted @   LQ636721  阅读(556)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示