User Tools

Site Tools


zh_cn:tutorial:introduction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:introduction [2022/03/20 15:58] – external edit 127.0.0.1zh_cn:tutorial:introduction [2023/01/15 01:39] (current) solidblock
Line 1: Line 1:
-====== Fabric 编写入门 ======+====== Fabric 编写的介绍 ======
  
-这是对制作Fabric模组时可以使用的一些常用技术的快速介绍。 +这是对制作 Fabric 模组时可以使用的一些常用技术的快速介绍。 
-要为Minecraft制作mod,通常必须以非标准的方式与Minecraft的代码进行交互。 +要为 Minecraft 制作模组,通常必须以非标准的方式与 Minecraft 的代码进行交互。 
-尽管Minecraft变得越来越灵活,可以适应变化,但它并不是天生就可以进行修改的。+尽管 Minecraft 变得越来越灵活,可以适应变化,但它并不是天生就可以进行修改的。
  
-与其他改装API不同,Fabric Loader不会覆盖Minecraft的类文件以添加更多功能。 +与其他改装 API 不同,Fabric Loader 不会覆盖 Minecraft 的类文件以添加更多功能。 
-而是使用[[https://github.com/SpongePowered/Mixin/wiki|Mixin库]]注入代码。+而是使用[[https://github.com/SpongePowered/Mixin/wiki|Mixin 库]]注入代码。
 但是,大多数时候您不会直接使用此库。 但是,大多数时候您不会直接使用此库。
  
-Mixins可能很脆弱,有时会引起冲突。 +Mixins 可能很脆弱,有时会引起冲突。 
-因此,Fabric API已经为您实现了一些常用功能。 +因此,Fabric API 已经为您实现了一些常用功能。 
-如果核心Fabric API中不存在它,那么通常它将存在于第三方库中。 +如果核心 Fabric API 中不存在它,那么通常它将存在于第三方库中。 
-在几乎每种情况下,与自己实现mixin相比,最好使用Fabric API或第三方库。+在几乎每种情况下,与自己实现 mixin 相比,最好使用 Fabric API 或第三方库。
  
 但是有时候,您不需要任何这些。 但是有时候,您不需要任何这些。
-尽管Minecraft并非专为改装而设计,但它仍然包含许多功能,您无需进行任何其他更改即可访问它们。+尽管 Minecraft 并非专为改装而设计,但它仍然包含许多功能,您无需进行任何其他更改即可访问它们。
  
-本文将按优先顺序介绍影响Minecraft的所有方法。+本文将按优先顺序介绍影响 Minecraft 的所有方法。
  
 ===== Minecraft 自带 API ===== ===== Minecraft 自带 API =====
Line 24: Line 24:
 Minecraft 还将 JSON 数据文件用于各种数据驱动功能。您可以将 JSON 文件添加到您的模组中,Fabric API 会注入这些文件。例如,方块模型和战利品表是通过 JSON 文件实现的。 Minecraft 还将 JSON 数据文件用于各种数据驱动功能。您可以将 JSON 文件添加到您的模组中,Fabric API 会注入这些文件。例如,方块模型和战利品表是通过 JSON 文件实现的。
 ===== Fabric API ===== ===== Fabric API =====
-安装在客户端中的Fabric本身分为两个部分。+安装在客户端中的 Fabric 本身分为两个部分。
  
-  * Fabric Loader:用于加载您的mod并调用您的入口点。+  * Fabric Loader:用于加载您的本身并调用您的入口点。
   * Fabric API:这是一个可选的库,提供一些常用的接口。   * Fabric API:这是一个可选的库,提供一些常用的接口。
  
-故意将API保持相对较小,以使Fabric可以更快地移植到新的Minecraft版本。+故意将 API 保持相对较小,以使 Fabric 可以更快地移植到新的 Minecraft 版本。
  
-您可以通过查看[[https://github.com/FabricMC/fabric |其GitHub上的源代码]]来了解Fabric API中包含的内容。 +您可以通过查看[[https://github.com/FabricMC/fabric|其 GitHub 上的源代码]]来了解 Fabric API 中包含的内容。 
-Fabric API包含许多常见的事件挂钩,以及用于联网和渲染之类的通用实用程序。+Fabric API 包含许多常见的事件挂钩,以及用于联网和渲染之类的通用实用程序。
  
 +===== 第三方 API =====
  
-===== 第三方API =====+由于 Fabric API 为方便维护,体量较小且覆盖范围较小,因此存在第三方 API 来填补空白。 
 +Mixin 允许任何第三方库以与核心 Fabric API 相同的方式修改 Minecraft 的代码。 
 +您应尽可能使用这些而不是编写自己的 mixin,以最大程度地减少发生冲突的可能性。
  
-由于Fabric API为方便维护,体量较小且覆盖范围较小,因存在第三方API来填补空白。 +您可以在此 wiki 上找到[[zh_cn:tutorial:libraries|第三方库]]不完整列表。 
-Mixins允许任何第三方库以与核心Fabric API相同方式修改Minecraft的代码。 +===== Mixin =====
-您应尽可能使用这些而不是编写自己的mixin,以最大程度地减少发生冲突的可能性。+
  
-您可以在此Wiki上找到[[zh_cn:tutorial:libraries|第三方库]]不完整列表。 +最后,您可以使用 mixin。 
-===== Mixins =====+Mixin 功能强大,可让您更改 Minecraft 自己代码。 
 +某些 mixin 可能会冲突,但是若能负责任地使用,这些是为模组添加特性的关键。
  
-最后您可以使用mixins。 +Mixin 有多种按优先顺序排列:
-Mixins功能强大,可让您更改Minecraft自己的代码。(不能修改别的库!) +
-某些mixin可能会冲突,但是若能负责任地使用,这些是为mod添加特性的关键。+
  
-Mixins有多种,按优先顺序排列: +  * 添加接口 
- +  * 回调注入 
-  * 添加接口并实现方法 +  * 重定向注入 
-  * @Inject 回调注入 +  * 覆写
-  * @Redirect 重定向注入 +
-  * @Overwrite 覆写+
  
 此列表不一定完整,只是快速概述。 此列表不一定完整,只是快速概述。
-==== 添加接口并实现方法 ==== 
  
-这可能是使用mixin的最安全方法之一。 +==== 添加接口 ==== 
-新的接口实现可以添加到任何Minecraft类中。+ 
 +这可能是使用 mixin 的最安全方法之一。 
 +新的接口实现可以添加到任何 Minecraft 类中。
 然后,可以通过将类强制转换为接口来访问该接口。 然后,可以通过将类强制转换为接口来访问该接口。
 这不会改变类的任何内容,只会增加新的内容,因此极不可能发生冲突。 这不会改变类的任何内容,只会增加新的内容,因此极不可能发生冲突。
  
-需要注意的是,您插入的函数名称+描述符(参数类型+返回类型)必须是唯一的。 因此,如果您使用常见的参数类型,请确保为其指定一个非常独特的名称。+需要注意的是,您插入的函数签名(名称+类型)必须是唯一的。 因此,如果您使用常见的参数类型,请确保指定独特的名称。
  
 ==== 回调注入 ==== ==== 回调注入 ====
 回调注入器 @Inject 使您可以向现有方法以及该方法中的特定方法调用添加回调挂钩。 回调注入器 @Inject 使您可以向现有方法以及该方法中的特定方法调用添加回调挂钩。
 它们还使您可以拦截和更改方法的返回值,并尽早返回。 它们还使您可以拦截和更改方法的返回值,并尽早返回。
-回调注入可能会堆叠,因此不太可能引起mod之间的冲突。+回调注入可堆叠,因此不太可能引起模组之间的冲突。
  
 ==== 重定向注入 ==== ==== 重定向注入 ====
  
 通过 @Redirect,您可以使用自己的代码在目标方法内包装方法调用或变量访问。 通过 @Redirect,您可以使用自己的代码在目标方法内包装方法调用或变量访问。
-非常谨慎地使用这些功能,目标调用或访问只能在所有mod之间重定向一次。 +使用这些功能时需要谨慎,目标调用或访问只能在所有模组之间重定向一次。 
-如果两个mod重定向相同的值,将导致冲突。+如果两个模组重定向相同的值,将导致冲突。
 优先考虑回调注入。 优先考虑回调注入。
  
 ==== 覆写 ==== ==== 覆写 ====
-避免使用 @Overwrite。 +避免使用覆写,因为替换了一个方法,删除了所有现有代码,并与该方法上的任何其他类型的 mixin 发生冲突。 
-它们完全替换了一个方法,删除了所有现有代码,并与该方法上的任何其他类型的mixin发生冲突。 +覆写极有可能不仅与其他模组冲突,而且与 Minecraft 本身的更改冲突。
-它们极有可能不仅与其他mod冲突,而且与Minecraft本身的更改冲突。+
 您极有可能不需要覆盖来完成您想做的事情,请使用其他方法。 您极有可能不需要覆盖来完成您想做的事情,请使用其他方法。
zh_cn/tutorial/introduction.1647791914.txt.gz · Last modified: 2022/03/20 15:58 by 127.0.0.1