diff --git a/common/src/main/java/me/shedaniel/architectury/registry/DeferredRegister.java b/common/src/main/java/me/shedaniel/architectury/registry/DeferredRegister.java index c81f154f..a89200a8 100644 --- a/common/src/main/java/me/shedaniel/architectury/registry/DeferredRegister.java +++ b/common/src/main/java/me/shedaniel/architectury/registry/DeferredRegister.java @@ -22,17 +22,17 @@ package me.shedaniel.architectury.registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.LazyLoadedValue; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.function.Supplier; -public class DeferredRegister { +public class DeferredRegister implements Iterable> { private final Supplier registriesSupplier; private final ResourceKey> key; private final List> entries = new ArrayList<>(); + private final List> entryView = Collections.unmodifiableList(entries); private boolean registered = false; @Nullable private String modId; @@ -92,6 +92,12 @@ public class DeferredRegister { } } + @NotNull + @Override + public Iterator> iterator() { + return entryView.iterator(); + } + private class Entry implements RegistrySupplier { private final ResourceLocation id; private final Supplier supplier;