From 76c5e1ce4294d3fc0a0f990cabf43e791d1ebe2a Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 9 Dec 2022 16:09:36 +0100 Subject: [PATCH] Enabled DataGen --- build.gradle | 13 +++++ .../datagen/betterend/BetterEndDatagen.java | 22 +++++++ .../betterend/EndRegistrySupplier.java | 58 +++++++++++++++++++ .../worldgen/EndBiomesDataProvider.java | 4 ++ src/main/resources/fabric.mod.json | 3 + 5 files changed, 100 insertions(+) create mode 100644 src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java create mode 100644 src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java create mode 100644 src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java diff --git a/build.gradle b/build.gradle index fc38a457..3e167e3d 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,19 @@ loom { // When enabled injected interfaces from dependecies will be applied. enableDependencyInterfaceInjection = true } + runs { + // This adds a new gradle task that runs the datagen API: "gradlew runDatagenClient" + datagenClient { + inherit client + name "Data Generation" + vmArg "-Dfabric-api.datagen" + vmArg "-Dfabric-api.datagen.output-dir=${file("src/main/generated")}" + vmArg "-Dfabric-api.datagen.strict-validation" + vmArg "-Dfabric-api.datagen.modid=betterend" + + runDir "build/datagen" + } + } } dependencies { diff --git a/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java b/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java new file mode 100644 index 00000000..e17dd16d --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java @@ -0,0 +1,22 @@ +package org.betterx.datagen.betterend; + +import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry; + +import net.minecraft.core.RegistrySetBuilder; + +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +public class BetterEndDatagen implements DataGeneratorEntrypoint { + @Override + public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) { + BCLBiomeRegistry.prepareForDatagen(); + + final FabricDataGenerator.Pack pack = dataGenerator.createPack(); + } + + @Override + public void buildRegistry(RegistrySetBuilder registryBuilder) { + EndRegistrySupplier.INSTANCE.bootstrapRegistries(registryBuilder); + } +} diff --git a/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java b/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java new file mode 100644 index 00000000..ccd17778 --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java @@ -0,0 +1,58 @@ +package org.betterx.datagen.betterend; + +import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry; +import org.betterx.bclib.api.v2.levelgen.biomes.BiomeData; +import org.betterx.bclib.api.v3.datagen.RegistrySupplier; +import org.betterx.betterend.BetterEnd; +import org.betterx.worlds.together.surfaceRules.AssignedSurfaceRule; +import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry; + +import java.util.List; +import org.jetbrains.annotations.Nullable; + +public class EndRegistrySupplier extends RegistrySupplier { + public static final EndRegistrySupplier INSTANCE = new EndRegistrySupplier(); + + protected EndRegistrySupplier() { + super(List.of(BetterEnd.MOD_ID)); + } + + @Override + protected List> initializeRegistryList(@Nullable List modIDs) { + return List.of( + new RegistryInfo<>( + BCLBiomeRegistry.BCL_BIOMES_REGISTRY, + BiomeData.CODEC + ), + new RegistryInfo<>( + SurfaceRuleRegistry.SURFACE_RULES_REGISTRY, + AssignedSurfaceRule.CODEC + ) +// , +// new RegistryInfo<>( +// Registries.STRUCTURE, +// Structure.DIRECT_CODEC, StructureDataProvider::bootstrap +// ), +// new RegistryInfo<>( +// Registries.STRUCTURE_SET, +// StructureSet.DIRECT_CODEC, +// StructureDataProvider::bootstrapSets +// ), +// new RegistryInfo<>( +// Registries.CONFIGURED_FEATURE, +// ConfiguredFeature.DIRECT_CODEC, +// ConfiguredFeatureDataProvider::bootstrap +// ), +// new RegistryInfo<>( +// Registries.PLACED_FEATURE, +// PlacedFeature.DIRECT_CODEC, +// PlacedFeatureDataProvider::bootstrap +// ), +// new RegistryInfo<>( +// Registries.BIOME, +// Biome.DIRECT_CODEC, +// NetherBiomesDataProvider::bootstrap +// ) + ); + } +} \ No newline at end of file diff --git a/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java b/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java new file mode 100644 index 00000000..f25577ec --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java @@ -0,0 +1,4 @@ +package org.betterx.datagen.betterend.worldgen; + +public class EndBiomesDataProvider { +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 426985cb..a74d6dec 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -28,6 +28,9 @@ "client": [ "org.betterx.betterend.client.BetterEndClient" ], + "fabric-datagen": [ + "org.betterx.datagen.betterend.BetterEndDatagen" + ], "rei_client": [ "org.betterx.betterend.integration.rei.REIPlugin" ],