zh_cn:tutorial:datagen_setup
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| zh_cn:tutorial:datagen_setup [2022/12/16 02:33] – solidblock | zh_cn:tutorial:datagen_setup [2025/03/25 00:42] (current) – [IDE 实现(可选)] removed the section solidblock | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== 数据生成入门 ====== | ====== 数据生成入门 ====== | ||
| - | 数据生成是 Fabric API 中的新模块,允许动态生成配方、语言文件、战利品表、进度以及几乎所有带有自定义 | + | 数据生成是 Fabric API 中的新模块,允许动态生成配方、语言文件、战利品表、进度以及几乎所有带有自定义提供器的一切。每次你修改生成数据的代码,你都会需要运行 gradle 任务 '' |
| - | 实现数据生成,请在你的 '' | + | ===== 启用数据生成 |
| - | <code groovy> | + | 启用数据生成 API 的方式是在使用 [[https:// |
| - | loom { | + | |
| - | runs { | + | |
| - | // 添加一个新的 gradle 任务,会运行数据生成 API:“gradlew runDatagenClient” | + | |
| - | datagenClient { | + | |
| - | inherit client | + | |
| - | name "Data Generation" | + | |
| - | vmArg " | + | |
| - | vmArg " | + | |
| - | vmArg " | + | |
| - | runDir "build/datagen" | + | {{https:// |
| - | } | + | |
| - | | + | 这样我们就已经创建了 gradle 任务 '' |
| + | |||
| + | ===== 手动启用数据生成 ===== | ||
| + | |||
| + | 首先打开你的项目根文件夹中的 '' | ||
| + | |||
| + | <code groovy build.gradle [highlight_lines_extra="5, | ||
| + | |||
| + | // | ||
| + | // ... (文件剩余部分) | ||
| + | // | ||
| + | |||
| + | fabricApi { | ||
| + | | ||
| } | } | ||
| + | </ | ||
| - | // 将数据生成的文件添加到 jar 中。 | + | 如果你使用的是 1.21.4 以上的版本,请将上述代码的 '' |
| - | sourceSets | + | <code groovy> |
| - | | + | fabricApi |
| - | | + | |
| - | srcDirs += [ | + | |
| - | ' | + | |
| - | ] | + | |
| - | } | + | |
| } | } | ||
| } | } | ||
| </ | </ | ||
| - | 然后,创建一个类并继承 | + | 后来我们在项目中定义新类 '' |
| + | |||
| + | * 运行我们先前创建的 gradle 任务('' | ||
| + | |||
| + | <code java ExampleModDataGenerator.java> | ||
| + | import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; | ||
| + | import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; | ||
| + | |||
| + | public class ExampleModDataGenerator implements DataGeneratorEntrypoint { | ||
| - | <code java> | ||
| - | public class MyModDatagen implements DataGeneratorEntrypoint { | ||
| @Override | @Override | ||
| - | public void onInitializeDataGenerator(FabricDataGenerator | + | public void onInitializeDataGenerator(FabricDataGenerator |
| - | // ... | + | FabricDataGenerator.Pack pack = generator.createPack(); |
| + | |||
| + | // Adding a provider example: | ||
| + | // | ||
| + | // pack.addProvider(AdvancementsProvider:: | ||
| } | } | ||
| + | |||
| } | } | ||
| </ | </ | ||
| - | 这会注册你的数据生成入口点,允许在运行 '' | ||
| - | <code javascript> | + | 然后我们需要在 '' |
| - | " | + | |
| + | <code javascript | ||
| + | { | ||
| + | |||
| + | // ...(文件的剩余部分) | ||
| + | |||
| + | | ||
| " | " | ||
| - | | + | |
| + | ], | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| ] | ] | ||
| + | }, | ||
| + | |||
| + | |||
| + | // ...(文件的剩余部分) | ||
| + | |||
| } | } | ||
| </ | </ | ||
| + | |||
| + | 我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 '' | ||
| + | <code batch Windows> | ||
| + | gradlew runDatagen | ||
| + | </ | ||
| + | |||
| + | <code bash Linux> | ||
| + | ./gradlew runDatagen | ||
| + | </ | ||
| + | |||
| + | 看看结果并确认没有错误。 | ||
| + | |||
| + | * 你可以忽略:'' | ||
| + | |||
| + | 如果你遇到错误,那么缺少或者错误的东西应该会非常清楚,但如果你无法查明,你可能需要前往 Discord 或 QQ 群中寻求帮助。 | ||
| + | |||
| + | '' | ||
| + | |||
| ====== 添加提供器 ====== | ====== 添加提供器 ====== | ||
| Line 67: | Line 114: | ||
| 在这个例子中,我们会创建一个标签提供器,因为最容易理解。 | 在这个例子中,我们会创建一个标签提供器,因为最容易理解。 | ||
| - | 首先,在你的 '' | + | 首先,在你的 '' |
| // | // | ||
| Line 104: | Line 151: | ||
| <code java> | <code java> | ||
| - | public class MyModDatagen | + | public class DataGeneration |
| @Override | @Override | ||
| public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { | public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { | ||
zh_cn/tutorial/datagen_setup.1671158027.txt.gz · Last modified: 2022/12/16 02:33 by solidblock