zh_cn:tutorial:datagen_setup

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:datagen_setup [2023/11/18 08:58] solidblockzh_cn:tutorial:datagen_setup [2025/03/25 00:42] (current) – [IDE 实现(可选)] removed the section solidblock
Line 15: Line 15:
 首先打开你的项目根文件夹中的 ''**build.gradle**'' 文件,并在文件的某处添加以下内容: 首先打开你的项目根文件夹中的 ''**build.gradle**'' 文件,并在文件的某处添加以下内容:
  
-<code groovy gradle.build [highlight_lines_extra="5,6,7,8,9,10,11,12,13"]>+<code groovy build.gradle [highlight_lines_extra="5,6,7"]>
  
 // //
Line 21: Line 21:
 // //
  
-sourceSets +fabricApi 
-    main { +    configureDataGeneration()
-        resources { +
-            srcDirs += [ +
-                    'src/main/generated' +
-            ] +
-        } +
-    }+
 } }
 </code> </code>
  
-然后找到这个文件的 ''**loom**'' 部分,添加以下内容: +如果你使用的是 1.21.4 以上的版本,请将上述代码的 ''fabricApi'' 部分改为以下内容: 
- +<code groovy> 
-<code groovy gradle.build [highlight_lines_extra="9,10,11,12,13,14,15,16,17,18,19,20"]+fabricApi 
- +    configureDataGeneration() { 
-// +        client = true
-// ... (文件剩余部分) +
-// +
- +
-loom { +
- +
-    // ... (已经存在的内容) +
- +
-    runs { +
-        // 这会添加一个运行数据生成 API 的新 gradle 任务:"gradlew runDatagen" +
-        datagen { +
-            inherit server +
-            name "Data Generation" +
-            vmArg "-Dfabric-api.datagen" +
-            vmArg "-Dfabric-api.datagen.output-dir=${file("src/main/generated")}" +
-            vmArg "-Dfabric-api.datagen.modid=${modid}" +
-  +
-            runDir "build/datagen" +
-        }+
     }     }
 } }
- 
-// ... (文件剩余部分) 
- 
 </code> </code>
  
-  * 注意:一些情况下,你可能需要将 ''**inherit server**'' 这一行更改为 ''**inherit client**''+后来我们项目中定义新类 ''ExampleModDataGenerator'',实现 ''DataGeneratorEntrypoint''.
  
-你可能注意到了,这里使用了变量 ''${modid}''这应该在 ''gradle.properties'' 文件中定义检查其中是否存在,如果没有,你可以添加,就像这样:+  * 运行我们先前创建的 gradle 任务(''runDatagen'')时会调用 ''**onInitializeDataGenerator**'' 方法
  
-<code properties> +<code java ExampleModDataGenerator.java>
-// .. (文件的剩余部分) +
- +
-modid=你的模组的id +
- +
-// .. (文件的剩余部分) +
-</code> +
- +
-然后,在项目中定义一个新的类 ''DataGeneration'' 并实现 ''DataGeneratorEntrypoint'': +
-  * 其中的 ''onInitializeDataGenerator'' 方法会在我们前面创建的 Gradle 任务运行时调用。 +
- +
-<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 implements DataGeneratorEntrypoint {+public class ExampleModDataGenerator implements DataGeneratorEntrypoint {
  
     @Override     @Override
-    public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {+    public void onInitializeDataGenerator(FabricDataGenerator generator) { 
 +        FabricDataGenerator.Pack pack = generator.createPack();
  
 +        // Adding a provider example:
 +        // 
 +        // pack.addProvider(AdvancementsProvider::new);
     }     }
 +
 } }
 </code> </code>
 +
  
 然后我们需要在 ''fabric.mod.json'' 文件中,告诉 Fabric 这个入口点: 然后我们需要在 ''fabric.mod.json'' 文件中,告诉 Fabric 这个入口点:
Line 115: Line 83:
 </code> </code>
  
-我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 ''runDatagenClient'' 任务。你可以让 IDE 为你做这个,或者只需要在你的项目的根目录中打开终端并输入:+我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 ''runDatagen'' 任务。你可以让 IDE 为你做这个,或者只需要在你的项目的根目录中打开终端并输入:
 <code batch Windows> <code batch Windows>
 gradlew runDatagen gradlew runDatagen
Line 132: Line 100:
 ''src/main'' 中应该会有个叫做 ''generated'' 的新文件夹。目前它会是空的,但我们生成数据(例如进度)之后,这些文件就会被保存。 ''src/main'' 中应该会有个叫做 ''generated'' 的新文件夹。目前它会是空的,但我们生成数据(例如进度)之后,这些文件就会被保存。
  
-==== IDE 实现(可选) ==== 
-  
-由于我们不会总是开启终端,因此我们可以在 ''**Intellij IDEA**'' 中设置一个配置,通过下拉菜单运行命令。 
- 
-首先打开''**运行/调试配置**''菜单,要打开它,你可以打开“运行”按钮旁的下拉菜单,点击''**编辑配置..**''选项,也可以连续按两次 ''**Shift**'' 并在弹出的窗口中输入 ''**Edit Configuration**'' 
- 
-然后点击 ''**'+'**'' 按钮,搜索 ''**gradle**'' 并选择。 
- 
-在 ''**运行**'' 输入框中,输入 ''**runDatagen**''。点击 ''**确定**'',然后你就可以直接运行配置而不需要打开终端了。 
  
 ====== 添加提供器 ====== ====== 添加提供器 ======
zh_cn/tutorial/datagen_setup.1700297922.txt.gz · Last modified: 2023/11/18 08:58 by solidblock