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 Map<ResourceLocation, IModel> cache = new HashMap<ResourceLocation, IModel>();
private static boolean registered = false;
// Forge built-in loaders
static
@ -44,13 +45,17 @@ public class ModelLoaderRegistry
public static void registerLoader(ICustomModelLoader 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)