diff --git a/src/main/java/org/betterx/bclib/api/v3/datagen/RegistrySupplier.java b/src/main/java/org/betterx/bclib/api/v3/datagen/RegistrySupplier.java index 26d5f23f..5441940d 100644 --- a/src/main/java/org/betterx/bclib/api/v3/datagen/RegistrySupplier.java +++ b/src/main/java/org/betterx/bclib/api/v3/datagen/RegistrySupplier.java @@ -18,7 +18,7 @@ import java.util.concurrent.Semaphore; import org.jetbrains.annotations.Nullable; public abstract class RegistrySupplier { - private static final int MAX_PERMITS = 1000; + private static final int MAX_PERMITS = 2000; private final Semaphore BOOTSTRAP_LOCK = new Semaphore(MAX_PERMITS); final List> allRegistries; @@ -55,7 +55,23 @@ public abstract class RegistrySupplier { void releaseLock() { BOOTSTRAP_LOCK.release(MAX_PERMITS); + } + + public void addWithLock( + RegistrySetBuilder registryBuilder, + ResourceKey> resourceKey, + RegistrySetBuilder.RegistryBootstrap registryBootstrap + ) { + try { + BOOTSTRAP_LOCK.acquire(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + registryBuilder.add(resourceKey, (ctx) -> { + registryBootstrap.run(ctx); + BOOTSTRAP_LOCK.release(); + }); } public class InfoList extends LinkedList> { diff --git a/src/main/java/org/betterx/datagen/bclib/BCLibDatagen.java b/src/main/java/org/betterx/datagen/bclib/BCLibDatagen.java index f32e0e50..d24e65ef 100644 --- a/src/main/java/org/betterx/datagen/bclib/BCLibDatagen.java +++ b/src/main/java/org/betterx/datagen/bclib/BCLibDatagen.java @@ -36,7 +36,6 @@ public class BCLibDatagen implements DataGeneratorEntrypoint { pack.addProvider(WorldPresetDataProvider::new); pack.addProvider(BCLibRegistriesDataProvider::new); pack.addProvider(BCLAdvancementDataProvider::new); - }