diff --git a/common/src/main/java/dev/architectury/registry/registries/DeferredRegister.java b/common/src/main/java/dev/architectury/registry/registries/DeferredRegister.java index 1ca6d126..d8f1c576 100644 --- a/common/src/main/java/dev/architectury/registry/registries/DeferredRegister.java +++ b/common/src/main/java/dev/architectury/registry/registries/DeferredRegister.java @@ -23,17 +23,17 @@ import com.google.common.base.Suppliers; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +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(this.entries); private boolean registered = false; @Nullable private String modId; @@ -78,6 +78,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; @@ -113,7 +119,7 @@ public class DeferredRegister { @Override public int hashCode() { - return com.google.common.base.Objects.hashCode(getRegistryId(), getId()); + return Objects.hash(getRegistryId(), getId()); } @Override