Skip to content

Commit

Permalink
Merge branch '1.21.x' into recipe-priority-but-mutable
Browse files Browse the repository at this point in the history
  • Loading branch information
bconlon1 authored Jan 17, 2025
2 parents a864521 + e082c32 commit 5cb3773
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import net.neoforged.fml.event.IModBusEvent;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.neoforge.resource.ResourcePackLoader;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;

public abstract class GatherDataEvent extends Event implements IModBusEvent {
Expand Down Expand Up @@ -107,6 +108,7 @@ public Client(ModContainer mc, DataGenerator dataGenerator, DataGeneratorConfig
}
}

@ApiStatus.Internal
public static class DataGeneratorConfig {
private final Set<String> mods;
private final Path path;
Expand Down Expand Up @@ -155,10 +157,9 @@ public boolean isFlat() {
return flat || getMods().size() == 1;
}

public DataGenerator makeGenerator(final Function<Path, Path> pathEnhancer, final boolean shouldExecute) {
final DataGenerator generator = new DataGenerator(pathEnhancer.apply(path), DetectedVersion.tryDetectVersion(), shouldExecute);
if (shouldExecute)
generators.add(generator);
public DataGenerator makeGenerator(final Function<Path, Path> pathEnhancer) {
final DataGenerator generator = new DataGenerator(pathEnhancer.apply(path), DetectedVersion.tryDetectVersion(), true);
generators.add(generator);
return generator;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
import net.minecraft.data.DataGenerator;
import net.minecraft.data.registries.VanillaRegistries;
import net.minecraft.server.Bootstrap;
import net.neoforged.fml.ModLoader;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.ModList;
import net.neoforged.neoforge.data.event.GatherDataEvent;
import net.neoforged.neoforge.internal.CommonModLoader;
import net.neoforged.neoforge.internal.RegistrationEvents;
Expand Down Expand Up @@ -49,8 +50,16 @@ public static void begin(final Set<String> mods, final Path path, final Collecti
CompletableFuture<HolderLookup.Provider> lookupProvider = CompletableFuture.supplyAsync(VanillaRegistries::createLookup, Util.backgroundExecutor());
dataGeneratorConfig = new GatherDataEvent.DataGeneratorConfig(mods, path, inputs, lookupProvider, devToolGenerators, reportsGenerator, structureValidator, flat, vanillaGenerator, assetIndex, assetsDir, existingPacks);
setup.run();
ModLoader.runEventGenerator(mc -> eventGenerator.create(mc, dataGeneratorConfig.makeGenerator(p -> dataGeneratorConfig.isFlat() ? p : p.resolve(mc.getModId()),
dataGeneratorConfig.getMods().contains(mc.getModId())), dataGeneratorConfig));

// Only fire the event for mods that have their generators enabled
for (ModContainer mod : ModList.get().getSortedMods()) {
if (dataGeneratorConfig.getMods().contains(mod.getModId())) {
var generator = dataGeneratorConfig.makeGenerator(p -> dataGeneratorConfig.isFlat() ? p : p.resolve(mod.getModId()));
var event = eventGenerator.create(mod, generator, dataGeneratorConfig);
mod.acceptEvent(event);
}
}

dataGeneratorConfig.runAll();
}
}

0 comments on commit 5cb3773

Please sign in to comment.