介绍
Rift 是 Minecraft 1.13 的一个轻量级的模组开发的(modding)API、库(library)和 模组加载器(mod loader),它的主要目的是为Minecraft 创建一个更轻量和模块化的开发模组的 API。Rift 并不会完全取代 Forge 或者与 Forge 竞争,相反的是它会和可选的社区库共同构成一个 Mod 网络,你可以在教程区找到完整的库列表。已经死了
为什么要选择这个API
简单而可扩展的基于接口的事件系统(模组可以仅以几行代码添加自己的事件)
注册物品、方块、实体方块、流体、附魔、粒子类型、药水效果、生物群系、实体、实体方块渲染器、自定义物品渲染器、复杂(无json)的合成、维度、世界类型以及更多的接口
能轻松添加原版封包(vanilla packets)和模组通信包(mod messages)的简单的网络通信 API
客户端每 tick 或服务端每 tick 都被调用的 Tick 事件
对 Mixin 和其他 ClassTransformers 的支持和允许
自动化的依赖下载和解压
部分依赖于其他模组的一些功能将只会在该模组被安装时启用(联动功能)
轻量化与模块化的API
Rift 的目标就是在最小化修改游戏的情况下实现扩展游戏任意方面的 API,而且这将不会添加额外的依赖。比起那个超级复杂的事件系统(Forge),Rift 为扩展原版游戏内容实现了一个简单、快速、高效、清洁的基于接口的系统。
对于修改原版逻辑,Rift 鼓励模组开发者通过使用 Mixin 库来在任意的原版方法中添加回调(callbacks)或重定向(redirects),而不是使用死板而又不稳定的一堆钩子。
Rift并不会直接添加复杂的功能(比如能量 API,自定义模型渲染、自定义方块状态格式等)到 API 中,而是转而使用与之分离的库模组(library mods)来实现它们(你可以在下面找到完整的列表)。这带来的主要好处就是这可以让 Rift 更快速地更新到新版本的 Minecraft实际上1.14Rift就弃坑,使用者将不需要去使用他们的模组中不需要使用的特性。没有加载任何模组的 Rift 将会和原版游戏一样地快速、稳定、节省内存。
让加入的模组更像原版内容
Rift API 不会为修改已存在的游戏机制(game mechanics)提供任何钩子。相反,它提供了扩展原版游戏内容的钩子(你可以在下面找到完整的列表)。Rift 也鼓励模组通过尽可能地使用原版API并与原版游戏共用创造物品栏和选项菜单来更使其更集成于原版游戏,这将减少玩家看见的原版内容和模组内容之间的不同。
然而,这并没有以任何方式限制了使用 Rift API 的模组。事实上,这恰恰是它的优点。使用 Rift 的模组将可以以比 Forge 的 API 更稳定的方式来改变游戏的工作方式(game works),不论是出于什么原因,模组都将可以通过 Mixin(一个简单的基于注释的修改原版代码的系统)来在任意原版方法中注入它们的回调(callbacks),也可以替换原版方法或将它们替换为自己的代码。Mixin 也确保了在大量模组注入到同一个方法下时的兼容性。
让模组能跨版本工作
通过 Rift,你的模组将能在多个 Minecraft 版本中工作。通过使用可选的模组兼容模块,Rift 将重新映射模组以更新混淆名并注入尚未实现的原版方法返回到类中,让不稳定的 Minecraft API 变得稳定起来。虽然要做到跨 N个 Minecraft 版本的兼容不一定是不可能的,但大多数模组都应该能在跨了几个版本的 Minecraft 中正常工作。1.13-1.13.2
快速与高效
不论是否以 Forge 模组安装或是以独立方式安装,Rift 都不会拖慢游戏的加载时间。Rift 是基于接口而不是事件总线(event bus),所以它不会加载额外的库,事件回调将会非常地快,添加你自己的模组事件将只需要短短几行的代码。
推荐使用的库
不像 Forge,Rift 的目标是让模组开发更加模块化。Rift 自己只会提供扩展原版游戏的功能,更高级的 API 和功能都将由社区提供。下面是一些常见功能的解决方案: