Skip to content

Commit

Permalink
Make datagen compile (crashes at runtime, but it compiles)
Browse files Browse the repository at this point in the history
  • Loading branch information
pupnewfster committed Apr 25, 2024
1 parent 6eb4b06 commit a0edb8f
Show file tree
Hide file tree
Showing 40 changed files with 198 additions and 194 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package mekanism.additions.common;

import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import mekanism.additions.common.advancements.AdditionsAdvancements;
import mekanism.additions.common.registries.AdditionsBlocks;
Expand All @@ -17,6 +18,7 @@
import net.minecraft.advancements.critereon.KilledTrigger;
import net.minecraft.advancements.critereon.KilledTrigger.TriggerInstance;
import net.minecraft.core.Holder;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.Items;
Expand All @@ -25,8 +27,8 @@

public class AdditionsAdvancementProvider extends BaseAdvancementProvider {

public AdditionsAdvancementProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, existingFileHelper, MekanismAdditions.MODID);
public AdditionsAdvancementProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper) {
super(output, provider, existingFileHelper, MekanismAdditions.MODID);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ public static void gatherData(GatherDataEvent event) {
gen.addProvider(event.includeClient(), new AdditionsBlockStateProvider(output, existingFileHelper));
//Server side data generators
gen.addProvider(event.includeServer(), new AdditionsTagProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new AdditionsLootProvider(output));
gen.addProvider(event.includeServer(), new AdditionsLootProvider(output, lookupProvider));
gen.addProvider(event.includeServer(), drProvider);
gen.addProvider(event.includeServer(), new AdditionsDataMapsProvider(output, lookupProvider));
gen.addProvider(event.includeServer(), new AdditionsRecipeProvider(output, existingFileHelper));
gen.addProvider(event.includeServer(), new AdditionsAdvancementProvider(output, existingFileHelper));
gen.addProvider(event.includeServer(), new AdditionsRecipeProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new AdditionsAdvancementProvider(output, lookupProvider, existingFileHelper));
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
package mekanism.additions.common.loot;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import mekanism.common.loot.BaseLootProvider;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;

public class AdditionsLootProvider extends BaseLootProvider {

public AdditionsLootProvider(PackOutput output) {
public AdditionsLootProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider) {
super(output, List.of(
new SubProviderEntry(AdditionsBlockLootTables::new, LootContextParamSets.BLOCK),
new SubProviderEntry(AdditionsEntityLootTables::new, LootContextParamSets.ENTITY)
));
), provider);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package mekanism.additions.common.recipe;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import mekanism.additions.common.AdditionsTags;
import mekanism.additions.common.MekanismAdditions;
import mekanism.additions.common.block.BlockGlowPanel;
Expand All @@ -27,6 +28,8 @@
import mekanism.common.resource.PrimaryResource;
import mekanism.common.resource.ResourceType;
import mekanism.common.tags.MekanismTags;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.HolderLookup.Provider;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.RecipeCategory;
import net.minecraft.data.recipes.RecipeOutput;
Expand All @@ -53,8 +56,8 @@ public class AdditionsRecipeProvider extends BaseRecipeProvider {
TripleLine.of(PLASTIC_SHEET_CHAR, Pattern.DYE, PLASTIC_SHEET_CHAR),
TripleLine.of(Pattern.GLOWSTONE, PLASTIC_SHEET_CHAR, Pattern.GLOWSTONE));

public AdditionsRecipeProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, existingFileHelper);
public AdditionsRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper) {
super(output, provider, existingFileHelper);
}

@Override
Expand All @@ -73,7 +76,7 @@ protected void addRecipes(RecipeOutput consumer) {
TripleLine.of(OBSIDIAN_CHAR, OBSIDIAN_CHAR, OBSIDIAN_CHAR),
TripleLine.of(TNT_CHAR, TNT_CHAR, TNT_CHAR),
TripleLine.of(OBSIDIAN_CHAR, OBSIDIAN_CHAR, OBSIDIAN_CHAR))
).key(OBSIDIAN_CHAR, Tags.Items.OBSIDIAN)
).key(OBSIDIAN_CHAR, Tags.Items.OBSIDIANS)
.key(TNT_CHAR, Blocks.TNT)
.category(RecipeCategory.REDSTONE)
.build(consumer);
Expand Down Expand Up @@ -105,8 +108,8 @@ private void registerBalloon(RecipeOutput consumer, ItemRegistryObject<ItemBallo
DyeColor dye = color.getDyeColor();
if (dye != null) {
ExtendedShapelessRecipeBuilder.shapelessRecipe(result, 2)
.addIngredient(Tags.Items.LEATHER)
.addIngredient(Tags.Items.STRING)
.addIngredient(Tags.Items.LEATHERS)
.addIngredient(Tags.Items.STRINGS)
.addIngredient(dye.getTag())
.category(RecipeCategory.DECORATIONS)
.build(consumer, MekanismAdditions.rl(basePath + colorString));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ private void registerPlasticRoad(RecipeOutput consumer, BlockRegistryObject<? ex
EnumColor color = result.getBlock().getColor();
ExtendedShapedRecipeBuilder.shapedRecipe(result, 3)
.pattern(PLASTIC_ROAD)
.key(AdditionsRecipeProvider.SAND_CHAR, Tags.Items.SAND)
.key(AdditionsRecipeProvider.SAND_CHAR, Tags.Items.SANDS)
.key(Pattern.CONSTANT, slickPlastic)
.category(RecipeCategory.BUILDING_BLOCKS)
.build(consumer, MekanismAdditions.rl(basePath + color.getRegistryPrefix()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static void gatherData(GatherDataEvent event) {
gen.addProvider(event.includeClient(), new DefenseLangProvider(output));
//Server side data generators
gen.addProvider(event.includeServer(), new DefenseTagProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new DefenseLootProvider(output));
gen.addProvider(event.includeServer(), new DefenseRecipeProvider(output, existingFileHelper));
gen.addProvider(event.includeServer(), new DefenseLootProvider(output, lookupProvider));
gen.addProvider(event.includeServer(), new DefenseRecipeProvider(output, lookupProvider, existingFileHelper));
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
package mekanism.defense.common;

import java.util.concurrent.CompletableFuture;
import mekanism.api.annotations.NothingNullByDefault;
import mekanism.common.recipe.BaseRecipeProvider;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.RecipeOutput;
import net.neoforged.neoforge.common.data.ExistingFileHelper;

@NothingNullByDefault
public class DefenseRecipeProvider extends BaseRecipeProvider {

public DefenseRecipeProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, existingFileHelper);
public DefenseRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper) {
super(output, provider, existingFileHelper);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package mekanism.defense.common.loot;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import mekanism.common.loot.BaseLootProvider;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;

public class DefenseLootProvider extends BaseLootProvider {

public DefenseLootProvider(PackOutput output) {
public DefenseLootProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider) {
super(output, List.of(
new SubProviderEntry(DefenseBlockLootTables::new, LootContextParamSets.BLOCK)
));
), provider);
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package mekanism.generators.common;

import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import mekanism.common.advancements.BaseAdvancementProvider;
import mekanism.generators.common.advancements.GeneratorsAdvancements;
import mekanism.generators.common.registries.GeneratorsBlocks;
import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.advancements.AdvancementType;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
import org.jetbrains.annotations.NotNull;

public class GeneratorsAdvancementProvider extends BaseAdvancementProvider {

public GeneratorsAdvancementProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, existingFileHelper, MekanismGenerators.MODID);
public GeneratorsAdvancementProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper) {
super(output, provider, existingFileHelper, MekanismGenerators.MODID);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public static void gatherData(GatherDataEvent event) {
gen.addProvider(event.includeClient(), new GeneratorsBlockStateProvider(output, existingFileHelper));
//Server side data generators
gen.addProvider(event.includeServer(), new GeneratorsTagProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new GeneratorsLootProvider(output));
gen.addProvider(event.includeServer(), new GeneratorsRecipeProvider(output, existingFileHelper));
gen.addProvider(event.includeServer(), new GeneratorsAdvancementProvider(output, existingFileHelper));
gen.addProvider(event.includeServer(), new GeneratorsLootProvider(output, lookupProvider));
gen.addProvider(event.includeServer(), new GeneratorsRecipeProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new GeneratorsAdvancementProvider(output, lookupProvider, existingFileHelper));
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package mekanism.generators.common;

import java.util.concurrent.CompletableFuture;
import mekanism.api.annotations.NothingNullByDefault;
import mekanism.api.chemical.gas.Gas;
import mekanism.api.datagen.recipe.builder.ChemicalChemicalToChemicalRecipeBuilder;
Expand Down Expand Up @@ -28,6 +29,7 @@
import mekanism.generators.common.registries.GeneratorsFluids;
import mekanism.generators.common.registries.GeneratorsGases;
import mekanism.generators.common.registries.GeneratorsItems;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.tags.ItemTags;
Expand All @@ -49,8 +51,8 @@ public class GeneratorsRecipeProvider extends BaseRecipeProvider {
private static final char COPPER_CHAR = 'C';
private static final char FURNACE_CHAR = 'F';

public GeneratorsRecipeProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, existingFileHelper);
public GeneratorsRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper) {
super(output, provider, existingFileHelper);
}

@Override
Expand Down Expand Up @@ -295,7 +297,7 @@ private void addFusionReactorRecipes(RecipeOutput consumer) {
TripleLine.of(Pattern.STEEL, Pattern.INGOT, Pattern.STEEL),
TripleLine.of(Pattern.INGOT, GLASS_CHAR, Pattern.INGOT),
TripleLine.of(Pattern.STEEL, Pattern.INGOT, Pattern.STEEL))
).key(GLASS_CHAR, Tags.Items.GLASS_SILICA)
).key(GLASS_CHAR, Tags.Items.GLASS_BLOCKS_CHEAP)
.key(Pattern.INGOT, MekanismTags.Items.PROCESSED_RESOURCES.get(ResourceType.INGOT, PrimaryResource.LEAD))
.key(Pattern.STEEL, MekanismItems.ENRICHED_IRON)
.build(consumer, MekanismGenerators.rl("reactor/glass"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package mekanism.generators.common.loot;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import mekanism.common.loot.BaseLootProvider;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;

public class GeneratorsLootProvider extends BaseLootProvider {

public GeneratorsLootProvider(PackOutput output) {
public GeneratorsLootProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider) {
super(output, List.of(
new SubProviderEntry(GeneratorsBlockLootTables::new, LootContextParamSets.BLOCK)
));
), provider);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@ public static void gatherData(GatherDataEvent event) {
gen.addProvider(event.includeClient(), new MekanismBlockStateProvider(output, existingFileHelper));
//Server side data generators
gen.addProvider(event.includeServer(), new MekanismTagProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new MekanismLootProvider(output));
gen.addProvider(event.includeServer(), new MekanismLootProvider(output, lookupProvider));
gen.addProvider(event.includeServer(), drProvider);
gen.addProvider(event.includeServer(), new MekanismDataMapsProvider(output, lookupProvider));
MekanismRecipeProvider recipeProvider = new MekanismRecipeProvider(output, existingFileHelper);
MekanismRecipeProvider recipeProvider = new MekanismRecipeProvider(output, lookupProvider, existingFileHelper);
gen.addProvider(event.includeServer(), recipeProvider);
gen.addProvider(event.includeServer(), new MekanismAdvancementProvider(output, existingFileHelper));
gen.addProvider(event.includeServer(), new MekanismAdvancementProvider(output, lookupProvider, existingFileHelper));
gen.addProvider(event.includeServer(), new ComputerHelpProvider(output, Mekanism.MODID));
//Data generator to help with persisting data when porting across MC versions when optional deps aren't updated yet
// DO NOT ADD OTHERS AFTER THIS ONE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import net.minecraft.advancements.critereon.InventoryChangeTrigger.TriggerInstance;
import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.core.Holder;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.CachedOutput;
import net.minecraft.data.DataProvider;
import net.minecraft.data.PackOutput;
Expand All @@ -29,12 +30,14 @@

public abstract class BaseAdvancementProvider implements DataProvider {

private final CompletableFuture<HolderLookup.Provider> registries;
private final PackOutput.PathProvider pathProvider;
private final ExistingFileHelper existingFileHelper;
private final String modid;

public BaseAdvancementProvider(PackOutput output, ExistingFileHelper existingFileHelper, String modid) {
public BaseAdvancementProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper, String modid) {
this.modid = modid;
this.registries = provider;
this.existingFileHelper = existingFileHelper;
this.pathProvider = output.createPathProvider(PackOutput.Target.DATA_PACK, "advancements");
}
Expand All @@ -48,17 +51,19 @@ public String getName() {
@NotNull
@Override
public CompletableFuture<?> run(@NotNull CachedOutput cache) {
List<CompletableFuture<?>> futures = new ArrayList<>();
registerAdvancements(advancement -> {
ResourceLocation id = advancement.id();
if (existingFileHelper.exists(id, PackType.SERVER_DATA, ".json", "advancements")) {
throw new IllegalStateException("Duplicate advancement " + id);
}
Path path = this.pathProvider.json(id);
existingFileHelper.trackGenerated(id, PackType.SERVER_DATA, ".json", "advancements");
futures.add(DataProvider.saveStable(cache, Advancement.CODEC, advancement.value(), path));
return this.registries.thenCompose(lookupProvider -> {
List<CompletableFuture<?>> futures = new ArrayList<>();
registerAdvancements(advancement -> {
ResourceLocation id = advancement.id();
if (existingFileHelper.exists(id, PackType.SERVER_DATA, ".json", "advancements")) {
throw new IllegalStateException("Duplicate advancement " + id);
}
Path path = this.pathProvider.json(id);
existingFileHelper.trackGenerated(id, PackType.SERVER_DATA, ".json", "advancements");
futures.add(DataProvider.saveStable(cache, lookupProvider, Advancement.CODEC, advancement.value(), path));
});
return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new));
});
return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new));
}

protected abstract void registerAdvancements(@NotNull Consumer<AdvancementHolder> consumer);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package mekanism.common.advancements;

import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import java.util.stream.Stream;
import mekanism.api.datagen.recipe.RecipeCriterion;
Expand Down Expand Up @@ -37,6 +38,7 @@
import net.minecraft.advancements.critereon.PlayerTrigger;
import net.minecraft.advancements.critereon.SummonedEntityTrigger;
import net.minecraft.advancements.critereon.UsingItemTrigger;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
Expand All @@ -45,8 +47,8 @@

public class MekanismAdvancementProvider extends BaseAdvancementProvider {

public MekanismAdvancementProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, existingFileHelper, Mekanism.MODID);
public MekanismAdvancementProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> provider, ExistingFileHelper existingFileHelper) {
super(output, provider, existingFileHelper, Mekanism.MODID);
}

//TODO - 1.19: xp rewards for any of these?
Expand Down
Loading

0 comments on commit a0edb8f

Please sign in to comment.