From 47e6b34d2bb269b1cb6fb4a0ae45a4b27a06279f Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 6 Mar 2019 21:01:12 -0800 Subject: [PATCH] DimensionManager.registerDimension now returns the DimensionType instance for convienance. You can still access others in DimensionType.getByName() Fixed ForgeRegistry rappers not forwarding isEmpty. --- .../java/net/minecraftforge/common/DimensionManager.java | 6 ++++-- .../java/net/minecraftforge/registries/ForgeRegistry.java | 6 ++++++ .../java/net/minecraftforge/registries/IForgeRegistry.java | 1 + .../registries/NamespacedDefaultedWrapper.java | 6 ++++++ .../net/minecraftforge/registries/NamespacedWrapper.java | 6 ++++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/DimensionManager.java b/src/main/java/net/minecraftforge/common/DimensionManager.java index 8a73366c0c..19ce39c871 100644 --- a/src/main/java/net/minecraftforge/common/DimensionManager.java +++ b/src/main/java/net/minecraftforge/common/DimensionManager.java @@ -87,7 +87,7 @@ public class DimensionManager * @param type Dimension Type. * @param data Configuration data for this dimension, passed into */ - public static void registerDimension(ResourceLocation name, ModDimension type, PacketBuffer data) + public static DimensionType registerDimension(ResourceLocation name, ModDimension type, PacketBuffer data) { Validate.notNull(name, "Can not register a dimesnion with null name"); Validate.isTrue(!REGISTRY.func_212607_c(name), "Dimension: " + name + " Already registered"); @@ -105,6 +105,7 @@ public class DimensionManager DimensionType instance = new DimensionType(id, "", name.getNamespace() + "/" + name.getPath(), type.getFactory(), type, data); REGISTRY.register(id, name, instance); LOGGER.info(DIMMGR, "Registered dimension {} of type {} and id {}", name.toString(), type.getRegistryName().toString(), id); + return instance; } /** @@ -170,7 +171,7 @@ public class DimensionManager dimensions.remove(id); } - public static void registerDimensionInternal(int id, ResourceLocation name, ModDimension type, PacketBuffer data) + public static DimensionType registerDimensionInternal(int id, ResourceLocation name, ModDimension type, PacketBuffer data) { Validate.notNull(name, "Can not register a dimesnion with null name"); Validate.notNull(type, "Can not register a null dimension type"); @@ -180,6 +181,7 @@ public class DimensionManager DimensionType instance = new DimensionType(id, "", name.getNamespace() + "/" + name.getPath(), type.getFactory(), type, data); REGISTRY.register(id, name, instance); LOGGER.info(DIMMGR, "Registered dimension {} of type {} and id {}", name.toString(), type.getRegistryName().toString(), id); + return instance; } @SuppressWarnings("deprecation") diff --git a/src/main/java/net/minecraftforge/registries/ForgeRegistry.java b/src/main/java/net/minecraftforge/registries/ForgeRegistry.java index 5842be22fe..d764fe593a 100644 --- a/src/main/java/net/minecraftforge/registries/ForgeRegistry.java +++ b/src/main/java/net/minecraftforge/registries/ForgeRegistry.java @@ -190,6 +190,12 @@ public class ForgeRegistry> implements IForgeRe return this.names.containsValue(value); } + @Override + public boolean isEmpty() + { + return this.names.isEmpty(); + } + @Override public V getValue(ResourceLocation key) { diff --git a/src/main/java/net/minecraftforge/registries/IForgeRegistry.java b/src/main/java/net/minecraftforge/registries/IForgeRegistry.java index fd6e0a1af0..e466c16233 100644 --- a/src/main/java/net/minecraftforge/registries/IForgeRegistry.java +++ b/src/main/java/net/minecraftforge/registries/IForgeRegistry.java @@ -44,6 +44,7 @@ public interface IForgeRegistry> extends Iterab boolean containsKey(ResourceLocation key); boolean containsValue(V value); + boolean isEmpty(); @Nullable V getValue(ResourceLocation key); @Nullable ResourceLocation getKey(V value); diff --git a/src/main/java/net/minecraftforge/registries/NamespacedDefaultedWrapper.java b/src/main/java/net/minecraftforge/registries/NamespacedDefaultedWrapper.java index 4a664cd161..2f922a8f45 100644 --- a/src/main/java/net/minecraftforge/registries/NamespacedDefaultedWrapper.java +++ b/src/main/java/net/minecraftforge/registries/NamespacedDefaultedWrapper.java @@ -133,6 +133,12 @@ class NamespacedDefaultedWrapper> extends Regis return this.delegate.getDefaultKey(); } + @Override + public boolean isEmpty() + { + return this.delegate.isEmpty(); + } + //internal @Override public void lock(){ this.locked = true; } diff --git a/src/main/java/net/minecraftforge/registries/NamespacedWrapper.java b/src/main/java/net/minecraftforge/registries/NamespacedWrapper.java index f27cfd09a8..191979b9d1 100644 --- a/src/main/java/net/minecraftforge/registries/NamespacedWrapper.java +++ b/src/main/java/net/minecraftforge/registries/NamespacedWrapper.java @@ -121,6 +121,12 @@ class NamespacedWrapper> extends RegistryNamesp return values.stream().skip(random.nextInt(values.size())).findFirst().orElse(null); } + @Override + public boolean isEmpty() + { + return this.delegate.isEmpty(); + } + //internal @Override public void lock(){ this.locked = true; }