Fix multiple registrations of reloading hooks in custom model loaders.

This commit is contained in:
RainWarrior 2016-02-09 16:09:55 +03:00
parent 2c6af18a81
commit 7e7b855ddf
1 changed files with 10 additions and 5 deletions

View File

@ -26,6 +26,7 @@ public class ModelLoaderRegistry
{ {
private static final Set<ICustomModelLoader> loaders = new HashSet<ICustomModelLoader>(); private static final Set<ICustomModelLoader> loaders = new HashSet<ICustomModelLoader>();
private static final Map<ResourceLocation, IModel> cache = new HashMap<ResourceLocation, IModel>(); private static final Map<ResourceLocation, IModel> cache = new HashMap<ResourceLocation, IModel>();
private static boolean registered = false;
// Forge built-in loaders // Forge built-in loaders
static static
@ -44,13 +45,17 @@ public class ModelLoaderRegistry
public static void registerLoader(ICustomModelLoader loader) public static void registerLoader(ICustomModelLoader loader)
{ {
loaders.add(loader); loaders.add(loader);
((IReloadableResourceManager)Minecraft.getMinecraft().getResourceManager()).registerReloadListener(new IResourceManagerReloadListener() if(!registered)
{ {
public void onResourceManagerReload(IResourceManager manager) ((IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager()).registerReloadListener(new IResourceManagerReloadListener()
{ {
for(ICustomModelLoader loader : loaders) loader.onResourceManagerReload(manager); public void onResourceManagerReload(IResourceManager manager)
} {
}); for (ICustomModelLoader loader : loaders) loader.onResourceManagerReload(manager);
}
});
registered = true;
}
} }
public static boolean loaded(ResourceLocation location) public static boolean loaded(ResourceLocation location)