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