User Tools

Site Tools


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
zh_cn:tutorial:datagen_setup [2023/11/18 08:58] solidblockzh_cn:tutorial:datagen_setup [2024/04/15 03:10] (current) – [手动启用数据生成] 更新,同步en 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**'' 部分添加以下内容:+来我们在项目中定义新类 ''ExampleModDataGenerator''实现 ''DataGeneratorEntrypoint''.
  
-<code groovy gradle.build [highlight_lines_extra="9,10,11,12,13,14,15,16,17,18,19,20"]>+  * 运行我们先前创建的 gradle 任务(''runDatagen'')时,会调用 ''**onInitializeDataGenerator**'' 方法。
  
-// +<code java ExampleModDataGenerator.java>
-// ... (文件剩余部分) +
-// +
- +
-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+
- +
-  * 注意:在一些情况下,你可能需要将 ''**inherit server**'' 这一行更改为 ''**inherit client**''。 +
- +
-你可能注意到了,这里使用了变量 ''${modid}'',这应该在 ''gradle.properties'' 文件中定义。检查其中是否存在,如果没有,你可以添加,就像这样: +
- +
-<code properties> +
-// .. (文件的剩余部分) +
- +
-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 74:
 </code> </code>
  
-我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 ''runDatagenClient'' 任务。你可以让 IDE 为你做这个,或者只需要在你的项目的根目录中打开终端并输入:+我们先看看我们现在已经有的内容是否正常第一次,或者是否有任何的错误,确认无误后继续。运行 ''runDatagen'' 任务。你可以让 IDE 为你做这个,或者只需要在你的项目的根目录中打开终端并输入:
 <code batch Windows> <code batch Windows>
 gradlew runDatagen gradlew runDatagen
zh_cn/tutorial/datagen_setup.txt · Last modified: 2024/04/15 03:10 by solidblock