DataGenerator教程(4)——掉落表生成

来源:哔哩哔哩 发布:2023-09-08 23:41:07


(相关资料图)

另一个常用的生成器就是LootTable生成了,这个生成器可以很方便的产生掉落自身的掉落表,并且也可以产生诸如树叶或者受到时运、精准采集等附魔影响的掉落表,总归是比复制了原版掉落表改成自己的物品方便的,并且也可以支持使用物品对象,降低了迁移、重命名和拼写错误的风险。

首先,LootTableProvider它并不需要直接编写生成LootTable的方法,它是通过支持SubProvider,也就是它的子生成器来产生LootTable,因此我们不需要继承它并复写它,只需要构建它的实例即可:

其中LootContextParamSets决定了LootTable的类型,为了实现掉落表,我们需要实现LootTableSubProvider接口并在上述方法中提交给LootTableProvider。LootTableSubProvider非常简单,就是一个在generate方法中提供id和的对象。至于对象,它过于复杂,普通开发者往往不需要使用该对象,而只需要使用原版提供的方法,因此这里暂时不讲述。

其中最重要的SubProvider就是BlockLootSubProvider,它可以用于生成方块的掉落表,这也是大多数人需要使用生成器自动化的掉落表,但是这个provider有个比较讨厌的检查,它会检查是否每一个方块都恰当的提供了掉落表(而原版不需要我们生成掉落表,但是会被认为没有提供掉落表),这里提供一种绕过限制的思路:

这样只需在generate方法里面写生成LootTable的方法即可,常用的有dropSelf(方块掉落自身),dropOther(掉落其它物品)等,可以查阅BlockLootSubProvider,官方和mcp提供的方法名称都十分具有自述性,可以很方便的使用。

最后,别忘了注册!

关键词:
相关新闻