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