Skip to content

Commit f5d6a79

Browse files
committed
Add support to the persisting disabled datagen providers for handling EMI across all the modules
1 parent 06b908e commit f5d6a79

File tree

8 files changed

+46
-7
lines changed

8 files changed

+46
-7
lines changed

src/datagen/additions/java/mekanism/additions/common/AdditionsDataGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
import java.util.concurrent.CompletableFuture;
44
import mekanism.additions.client.AdditionsBlockStateProvider;
5-
import mekanism.additions.client.integration.AdditionsEmiAliasProvider;
65
import mekanism.additions.client.AdditionsItemModelProvider;
76
import mekanism.additions.client.AdditionsLangProvider;
87
import mekanism.additions.client.AdditionsSoundProvider;
98
import mekanism.additions.client.AdditionsSpriteSourceProvider;
9+
import mekanism.additions.client.integration.AdditionsEmiAliasProvider;
1010
import mekanism.additions.common.loot.AdditionsLootProvider;
1111
import mekanism.additions.common.recipe.AdditionsRecipeProvider;
1212
import mekanism.common.BasePackMetadataGenerator;
1313
import mekanism.common.MekanismDataGenerator;
14+
import mekanism.common.PersistingDisabledProvidersProvider;
1415
import net.minecraft.core.HolderLookup;
1516
import net.minecraft.data.DataGenerator;
1617
import net.minecraft.data.PackOutput;
@@ -40,13 +41,15 @@ public static void gatherData(GatherDataEvent event) {
4041
gen.addProvider(event.includeClient(), new AdditionsSpriteSourceProvider(output, existingFileHelper, lookupProvider));
4142
gen.addProvider(event.includeClient(), new AdditionsItemModelProvider(output, existingFileHelper));
4243
gen.addProvider(event.includeClient(), new AdditionsBlockStateProvider(output, existingFileHelper));
43-
gen.addProvider(event.includeClient(), new AdditionsEmiAliasProvider(output, lookupProvider));
4444
//Server side data generators
4545
gen.addProvider(event.includeServer(), new AdditionsTagProvider(output, lookupProvider, existingFileHelper));
4646
gen.addProvider(event.includeServer(), new AdditionsLootProvider(output, lookupProvider));
4747
gen.addProvider(event.includeServer(), drProvider);
4848
gen.addProvider(event.includeServer(), new AdditionsDataMapsProvider(output, lookupProvider));
4949
gen.addProvider(event.includeServer(), new AdditionsRecipeProvider(output, lookupProvider, existingFileHelper));
5050
gen.addProvider(event.includeServer(), new AdditionsAdvancementProvider(output, lookupProvider, existingFileHelper));
51+
//Data generator to help with persisting data when porting across MC versions when optional deps aren't updated yet
52+
// DO NOT ADD OTHERS AFTER THIS ONE
53+
PersistingDisabledProvidersProvider.addDisabledEmiProvider(event, lookupProvider, MekanismAdditions.MODID, () -> AdditionsEmiAliasProvider::new);
5154
}
5255
}

src/datagen/generated/mekanismadditions/.cache/59392c9e80d17fc8ebe1c2fa969d076d1da244de

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datagen/generated/mekanismgenerators/.cache/59392c9e80d17fc8ebe1c2fa969d076d1da244de

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datagen/generated/mekanismtools/.cache/59392c9e80d17fc8ebe1c2fa969d076d1da244de

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datagen/generators/java/mekanism/generators/common/GeneratorsDataGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
import java.util.concurrent.CompletableFuture;
44
import mekanism.common.BasePackMetadataGenerator;
55
import mekanism.common.MekanismDataGenerator;
6+
import mekanism.common.PersistingDisabledProvidersProvider;
67
import mekanism.generators.client.GeneratorsBlockStateProvider;
7-
import mekanism.generators.client.integration.GeneratorsEmiAliasProvider;
88
import mekanism.generators.client.GeneratorsItemModelProvider;
99
import mekanism.generators.client.GeneratorsLangProvider;
1010
import mekanism.generators.client.GeneratorsSoundProvider;
1111
import mekanism.generators.client.GeneratorsSpriteSourceProvider;
12+
import mekanism.generators.client.integration.GeneratorsEmiAliasProvider;
1213
import mekanism.generators.common.loot.GeneratorsLootProvider;
1314
import net.minecraft.core.HolderLookup;
1415
import net.minecraft.data.DataGenerator;
@@ -38,11 +39,13 @@ public static void gatherData(GatherDataEvent event) {
3839
gen.addProvider(event.includeClient(), new GeneratorsSpriteSourceProvider(output, existingFileHelper, lookupProvider));
3940
gen.addProvider(event.includeClient(), new GeneratorsItemModelProvider(output, existingFileHelper));
4041
gen.addProvider(event.includeClient(), new GeneratorsBlockStateProvider(output, existingFileHelper));
41-
gen.addProvider(event.includeClient(), new GeneratorsEmiAliasProvider(output, lookupProvider));
4242
//Server side data generators
4343
gen.addProvider(event.includeServer(), new GeneratorsTagProvider(output, lookupProvider, existingFileHelper));
4444
gen.addProvider(event.includeServer(), new GeneratorsLootProvider(output, lookupProvider));
4545
gen.addProvider(event.includeServer(), new GeneratorsRecipeProvider(output, lookupProvider, existingFileHelper));
4646
gen.addProvider(event.includeServer(), new GeneratorsAdvancementProvider(output, lookupProvider, existingFileHelper));
47+
//Data generator to help with persisting data when porting across MC versions when optional deps aren't updated yet
48+
// DO NOT ADD OTHERS AFTER THIS ONE
49+
PersistingDisabledProvidersProvider.addDisabledEmiProvider(event, lookupProvider, MekanismGenerators.MODID, () -> GeneratorsEmiAliasProvider::new);
4750
}
4851
}

src/datagen/main/java/mekanism/common/MekanismDataGenerator.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.nio.file.Path;
1111
import java.util.Set;
1212
import java.util.concurrent.CompletableFuture;
13-
import mekanism.client.integration.emi.MekanismEmiAliasProvider;
1413
import mekanism.client.lang.MekanismLangProvider;
1514
import mekanism.client.model.MekanismItemModelProvider;
1615
import mekanism.client.sound.MekanismSoundProvider;
@@ -58,7 +57,6 @@ public static void gatherData(GatherDataEvent event) {
5857
gen.addProvider(event.includeClient(), new MekanismSpriteSourceProvider(output, existingFileHelper, lookupProvider));
5958
gen.addProvider(event.includeClient(), new MekanismItemModelProvider(output, existingFileHelper));
6059
gen.addProvider(event.includeClient(), new MekanismBlockStateProvider(output, existingFileHelper));
61-
gen.addProvider(event.includeClient(), new MekanismEmiAliasProvider(output, lookupProvider));
6260
//Server side data generators
6361
gen.addProvider(event.includeServer(), new MekanismTagProvider(output, lookupProvider, existingFileHelper));
6462
gen.addProvider(event.includeServer(), new MekanismLootProvider(output, lookupProvider));

src/datagen/main/java/mekanism/common/PersistingDisabledProvidersProvider.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@
77
import java.nio.file.Files;
88
import java.nio.file.Path;
99
import java.util.ArrayList;
10+
import java.util.Collections;
1011
import java.util.HashMap;
1112
import java.util.HashSet;
1213
import java.util.List;
1314
import java.util.Map;
1415
import java.util.Set;
1516
import java.util.concurrent.CompletableFuture;
17+
import java.util.function.BiFunction;
18+
import java.util.function.Supplier;
1619
import java.util.stream.Collectors;
20+
import mekanism.client.integration.emi.MekanismEmiAliasProvider;
1721
import mekanism.common.integration.MekanismHooks;
1822
import mekanism.common.integration.crafttweaker.MekanismCrTExampleProvider;
1923
import mekanism.common.integration.projecte.MekanismCustomConversions;
2024
import mekanism.common.lib.FieldReflectionHelper;
2125
import net.minecraft.core.HolderLookup;
26+
import net.minecraft.core.HolderLookup.Provider;
2227
import net.minecraft.data.CachedOutput;
2328
import net.minecraft.data.DataGenerator;
2429
import net.minecraft.data.DataProvider;
@@ -49,6 +54,12 @@ public static void addDisableableProviders(GatherDataEvent event, CompletableFut
4954
ModList modList = ModList.get();
5055
Set<String> pathsToSkip = new HashSet<>();
5156
List<String> fakeProviders = new ArrayList<>();
57+
if (modList.isLoaded(MekanismHooks.EMI_MOD_ID)) {
58+
gen.addProvider(event.includeClient(), new MekanismEmiAliasProvider(output, lookupProvider));
59+
} else {
60+
pathsToSkip.add("emi/aliases");
61+
fakeProviders.add("EMI Alias Provider: mekanism");
62+
}
5263
if (modList.isLoaded(MekanismHooks.PROJECTE_MOD_ID)) {
5364
gen.addProvider(event.includeServer(), new MekanismCustomConversions(output, lookupProvider));
5465
} else {
@@ -67,6 +78,24 @@ public static void addDisableableProviders(GatherDataEvent event, CompletableFut
6778
gen.addProvider(true, new PersistingDisabledProvidersProvider(output, disabledCompats, pathsToSkip, fakeProviders));
6879
}
6980

81+
public static void addDisabledEmiProvider(GatherDataEvent event, CompletableFuture<HolderLookup.Provider> lookupProvider, String modid,
82+
Supplier<BiFunction<PackOutput, CompletableFuture<Provider>, DataProvider>> providerFunction) {
83+
DataGenerator gen = event.getGenerator();
84+
PackOutput output = gen.getPackOutput();
85+
ModList modList = ModList.get();
86+
Set<String> pathsToSkip = new HashSet<>();
87+
List<String> fakeProviders = new ArrayList<>();
88+
if (modList.isLoaded(MekanismHooks.EMI_MOD_ID)) {
89+
gen.addProvider(event.includeClient(), providerFunction.get().apply(output, lookupProvider));
90+
} else {
91+
pathsToSkip.add("emi/aliases");
92+
fakeProviders.add("EMI Alias Provider: " + modid);
93+
}
94+
//Data generator to help with persisting data when porting across MC versions when optional deps aren't updated yet
95+
// DO NOT ADD OTHERS AFTER THIS ONE
96+
gen.addProvider(true, new PersistingDisabledProvidersProvider(output, Collections.emptySet(), pathsToSkip, fakeProviders));
97+
}
98+
7099
private final Set<String> compatRecipesToSkip;
71100
private final Set<String> pathsToSkip;
72101
private final List<String> fakeProviders;

src/datagen/tools/java/mekanism/tools/common/ToolsDataGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.concurrent.CompletableFuture;
44
import mekanism.common.BasePackMetadataGenerator;
55
import mekanism.common.MekanismDataGenerator;
6+
import mekanism.common.PersistingDisabledProvidersProvider;
67
import mekanism.tools.client.ToolsItemModelProvider;
78
import mekanism.tools.client.ToolsLangProvider;
89
import mekanism.tools.client.ToolsSpriteSourceProvider;
@@ -34,10 +35,12 @@ public static void gatherData(GatherDataEvent event) {
3435
gen.addProvider(event.includeClient(), new ToolsLangProvider(output));
3536
gen.addProvider(event.includeClient(), new ToolsSpriteSourceProvider(output, existingFileHelper, lookupProvider));
3637
gen.addProvider(event.includeClient(), new ToolsItemModelProvider(output, existingFileHelper));
37-
gen.addProvider(event.includeClient(), new ToolsEmiAliasProvider(output, lookupProvider));
3838
//Server side data generators
3939
gen.addProvider(event.includeServer(), new ToolsTagProvider(output, lookupProvider, existingFileHelper));
4040
gen.addProvider(event.includeServer(), new ToolsRecipeProvider(output, lookupProvider, existingFileHelper));
4141
gen.addProvider(event.includeServer(), new ToolsAdvancementProvider(output, lookupProvider, existingFileHelper));
42+
//Data generator to help with persisting data when porting across MC versions when optional deps aren't updated yet
43+
// DO NOT ADD OTHERS AFTER THIS ONE
44+
PersistingDisabledProvidersProvider.addDisabledEmiProvider(event, lookupProvider, MekanismTools.MODID, () -> ToolsEmiAliasProvider::new);
4245
}
4346
}

0 commit comments

Comments
 (0)