跳到正文

RandomLib

作者:NaturaSpell

一个用于创建可自定义随机池的前置库。最初来自oneblock模组。

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

最初是 One Block Plus 模组的一部分,RandomLib 现在是一个独立的前置库,可让你的模组创建用于加权随机生成的配置文件。

 

开发者文档。(编写中)

(之后可能会用 GitHub 仓库替代本文档)

在 FMLCommonSetupEvent 期间调用 RandomLibUtils.setup 来设置配置文件。

<T extends ExtraData> RandomLibUtils.setup(ResourceLocation registryKey, Supplier<T> extra, Consumer<Map<String, RandomPool<T>>> afterDeserialization)

例如,如果 registryKey = oneblock:phases,你的配置文件将生成在 configs/oneblock/phases/ 文件夹中。
extra 是一个供应器,用于提供 ExtraData 实现的实例。除了加权物品外,你还可以通过它保存有关随机池的更多信息。

配置文件反序列化后,会以文件名为键存入一个映射中。不过,你可能希望通过 afterDeserialization 消费器,将它们存储在更方便模组使用的数据结构中。

 

在 FMLServerStartingEvent 期间调用 RandomLibUtils.registerCommand,以设置用于管理 RandomLib 生成的配置文件的命令。

RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey)
RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey, ExtraDataCommand<? extends ExtraData> extraDataCommand)

registryKey 与 RandomLibUtils.setup 中使用的相同。
extraDataCommand 用于为你的 ExtraData 实现补充 brigadier 命令。

调用 RandomPool#getExtra() 获取反序列化后的 ExtraData。

调用 RandomPool#getRandom()#generateAndReplace(ServerWorld, BlockPos) ,可在指定世界和位置破坏方块,并从随机池中生成一个物品。

调用 RandomPool#getRandom()#generate(ServerWorld, BlockPos) ,可在指定世界和位置从随机池中生成一个物品。

调用 RandomPool#getRandom()#vgenerate(RandomContainer, ServerWorld, BlockPos, ItemStack) ,可在指定世界和位置为实现了 RandomContainer 的对象(通常是方块实体),根据其手持物品(如果有)从随机池中生成一个物品。

 

 

用户文档。(编写中)

帮助命令:/<此模组的 RandomLib 命令名称> help
示例: 

 

 

 

常见问题

RandomLib 支持哪些 Minecraft 版本?

RandomLib 支持 Minecraft Java 版 1.16.5,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

RandomLib 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

NaturaSpell 的其他作品

查看全部 →