From 917b70d50a89695270d4f6289231c413b6f24bd5 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 6 Feb 2022 13:10:40 +0100 Subject: [PATCH] Make DeferredRegister iterable Signed-off-by: Max --- .../registry/registries/DeferredRegister.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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