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 [2023/05/04 10:49] – 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 任务 '' |
| - | 首先我们添加一个新的 Gradle 任务,运行我们用来生成数据的代码,从而让 Minecraft 能够读都这些数据。每次你修改生成进度的代码(或其他数据生成可以生成的内容,如战利品表)你都需要运行 Gradle 任务 runDatagenClient。我们后面会做这个,但先打开你的 build.gradle 文件并添加以下的任务: | + | ===== 启用数据生成 |
| - | <code groovy> | + | 启用数据生成 API 的方式是在使用 [[https:// |
| - | loom { | + | |
| - | runs { | + | |
| - | // 添加一个新的 gradle 任务,会运行数据生成 API:“gradlew runDatagenClient” | + | |
| - | datagenClient { | + | |
| - | inherit client | + | |
| - | name "Data Generation" | + | |
| - | vmArg " | + | |
| - | vmArg " | + | |
| - | vmArg " | + | |
| - | runDir "build/datagen" | + | {{https:// |
| - | } | + | |
| - | | + | |
| - | } | + | |
| - | // 将数据生成的文件添加到 jar 中。 | + | 这样我们就已经创建了 gradle 任务 |
| - | sourceSets { | + | |
| - | main { | + | |
| - | resources { | + | |
| - | srcDirs += [ | + | |
| - | | + | |
| - | ] | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | 你可能注意到了,这里使用了变量 '' | + | ===== 手动启用数据生成 ===== |
| - | <code properties> | + | 首先打开你的项目根文件夹中的 '' |
| - | // .. (文件的剩余部分) | + | |
| - | modid=你的模组的id | + | <code groovy build.gradle [highlight_lines_extra=" |
| - | // .. (文件的剩余部分) | + | // |
| + | // ... (文件剩余部分) | ||
| + | // | ||
| + | |||
| + | fabricApi { | ||
| + | configureDataGeneration() | ||
| + | } | ||
| </ | </ | ||
| - | 然后,在项目中定义一个新的类 '' | + | 如果你使用的是 1.21.4 以上的版本,请将上述代码的 '' |
| - | * 其中的 '' | + | <code groovy> |
| + | fabricApi { | ||
| + | configureDataGeneration() { | ||
| + | client = true | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 后来我们在项目中定义新类 '' | ||
| + | |||
| + | * 运行我们先前创建的 | ||
| - | <code java> | + | < |
| import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; | import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; | ||
| import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; | import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; | ||
| - | public class DataGeneration | + | public class ExampleModDataGenerator |
| @Override | @Override | ||
| - | public void onInitializeDataGenerator(FabricDataGenerator | + | public void onInitializeDataGenerator(FabricDataGenerator |
| + | FabricDataGenerator.Pack pack = generator.createPack(); | ||
| + | // Adding a provider example: | ||
| + | // | ||
| + | // pack.addProvider(AdvancementsProvider:: | ||
| } | } | ||
| + | |||
| } | } | ||
| </ | </ | ||
| + | |||
| 然后我们需要在 '' | 然后我们需要在 '' | ||
| Line 64: | Line 63: | ||
| { | { | ||
| - | // ...(文件和剩余部分) | + | // ...(文件的剩余部分) |
| " | " | ||
| " | " | ||
| - | "DataGeneration" | + | "com.example.ExampleModDataGenerator" |
| ], | ], | ||
| " | " | ||
| - | "AdvancementsTutorial" | + | "com.example.ExampleMod" |
| ], | ], | ||
| " | " | ||
| - | "AdvancementsTutorialClient" | + | "com.example.ExampleModClient" |
| ] | ] | ||
| }, | }, | ||
| + | |||
| // ...(文件的剩余部分) | // ...(文件的剩余部分) | ||
| Line 83: | Line 83: | ||
| </ | </ | ||
| - | 我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 '' | + | 我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 '' |
| + | <code batch Windows> | ||
| + | gradlew runDatagen | ||
| + | </ | ||
| - | <code bash> | + | <code bash Linux> |
| - | ./ | + | ./ |
| </ | </ | ||
| Line 96: | Line 99: | ||
| '' | '' | ||
| + | |||
| ====== 添加提供器 ====== | ====== 添加提供器 ====== | ||
zh_cn/tutorial/datagen_setup.1683197381.txt.gz · Last modified: 2023/05/04 10:49 by solidblock