zh_cn:tutorial:introduction
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
zh_cn:tutorial:introduction [2021/09/01 03:31] – [Minecraft自带接口] solidblock | zh_cn:tutorial:introduction [2022/10/22 11:30] – [覆写] solidblock | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Fabric 编写入门 ====== | ====== Fabric 编写入门 ====== | ||
- | 这是对制作Fabric模组时可以使用的一些常用技术的快速介绍。 | + | 这是对制作 Fabric 模组时可以使用的一些常用技术的快速介绍。 |
- | 要为Minecraft制作mod,通常必须以非标准的方式与Minecraft的代码进行交互。 | + | 要为 Minecraft 制作模组,通常必须以非标准的方式与 Minecraft 的代码进行交互。 |
- | 尽管Minecraft变得越来越灵活,可以适应变化,但它并不是天生就可以进行修改的。 | + | 尽管 Minecraft 变得越来越灵活,可以适应变化,但它并不是天生就可以进行修改的。 |
与其他改装API不同,Fabric Loader不会覆盖Minecraft的类文件以添加更多功能。 | 与其他改装API不同,Fabric Loader不会覆盖Minecraft的类文件以添加更多功能。 | ||
Line 33: | Line 33: | ||
您可以通过查看[[https:// | 您可以通过查看[[https:// | ||
Fabric API包含许多常见的事件挂钩,以及用于联网和渲染之类的通用实用程序。 | Fabric API包含许多常见的事件挂钩,以及用于联网和渲染之类的通用实用程序。 | ||
- | |||
===== 第三方API ===== | ===== 第三方API ===== | ||
Line 41: | Line 40: | ||
您应尽可能使用这些而不是编写自己的mixin,以最大程度地减少发生冲突的可能性。 | 您应尽可能使用这些而不是编写自己的mixin,以最大程度地减少发生冲突的可能性。 | ||
- | 您可以在此Wiki上找到[[zh_cn: | + | 您可以在此Wiki上找到[[zh_cn: |
- | ===== Mixins | + | ===== Mixin ===== |
- | 最后,您可以使用mixins。 | + | 最后,您可以使用 |
- | Mixins功能强大,可让您更改Minecraft自己的代码。(不能修改别的库!) | + | Mixin 功能强大,可让您更改 Minecraft 自己的代码。 |
- | 某些mixin可能会冲突,但是若能负责任地使用,这些是为mod添加特性的关键。 | + | 某些 mixin 可能会冲突,但是若能负责任地使用,这些是为模组添加特性的关键。 |
- | Mixins有多种,按优先顺序排列: | + | Mixin 有多种,按优先顺序排列: |
- | * 添加接口并实现方法 | + | * 添加接口 |
- | * @Inject | + | * 回调注入 |
- | * @Redirect | + | * 重定向注入 |
- | * @Overwrite | + | * 覆写 |
此列表不一定完整,只是快速概述。 | 此列表不一定完整,只是快速概述。 | ||
- | ==== 添加接口并实现方法 | + | |
+ | ==== 添加接口 ==== | ||
这可能是使用mixin的最安全方法之一。 | 这可能是使用mixin的最安全方法之一。 | ||
Line 63: | Line 63: | ||
这不会改变类的任何内容,只会增加新的内容,因此极不可能发生冲突。 | 这不会改变类的任何内容,只会增加新的内容,因此极不可能发生冲突。 | ||
- | 需要注意的是,您插入的函数名称+描述符(参数类型+返回类型)必须是唯一的。 因此,如果您使用常见的参数类型,请确保为其指定一个非常独特的名称。 | + | 需要注意的是,您插入的函数签名(名称+类型)必须是唯一的。 因此,如果您使用常见的参数类型,请确保指定独特的名称。 |
==== 回调注入 ==== | ==== 回调注入 ==== | ||
回调注入器 @Inject 使您可以向现有方法以及该方法中的特定方法调用添加回调挂钩。 | 回调注入器 @Inject 使您可以向现有方法以及该方法中的特定方法调用添加回调挂钩。 | ||
它们还使您可以拦截和更改方法的返回值,并尽早返回。 | 它们还使您可以拦截和更改方法的返回值,并尽早返回。 | ||
- | 回调注入可能会堆叠,因此不太可能引起mod之间的冲突。 | + | 回调注入可以堆叠,因此不太可能引起模组之间的冲突。 |
==== 重定向注入 ==== | ==== 重定向注入 ==== | ||
通过 @Redirect,您可以使用自己的代码在目标方法内包装方法调用或变量访问。 | 通过 @Redirect,您可以使用自己的代码在目标方法内包装方法调用或变量访问。 | ||
- | 非常谨慎地使用这些功能,目标调用或访问只能在所有mod之间重定向一次。 | + | 使用这些功能时需要谨慎,目标调用或访问只能在所有模组之间重定向一次。 |
- | 如果两个mod重定向相同的值,将导致冲突。 | + | 如果两个模组重定向相同的值,将导致冲突。 |
优先考虑回调注入。 | 优先考虑回调注入。 | ||
==== 覆写 ==== | ==== 覆写 ==== | ||
- | 避免使用 | + | 避免使用覆写,因为替换了一个方法,删除了所有现有代码,并与该方法上的任何其他类型的mixin发生冲突。 |
- | 它们完全替换了一个方法,删除了所有现有代码,并与该方法上的任何其他类型的mixin发生冲突。 | + | 覆写极有可能不仅与其他模组冲突,而且与Minecraft本身的更改冲突。 |
- | 它们极有可能不仅与其他mod冲突,而且与Minecraft本身的更改冲突。 | + | |
您极有可能不需要覆盖来完成您想做的事情,请使用其他方法。 | 您极有可能不需要覆盖来完成您想做的事情,请使用其他方法。 |
zh_cn/tutorial/introduction.txt · Last modified: 2023/01/15 01:39 by solidblock