private static FancyDial getInstance(TextureAtlasSprite icon) {
   if (instances.containsKey(icon)) {
     return instances.get(icon);
   }
   ResourceLocation resource = setupInfo.remove(icon);
   instances.put(icon, null);
   if (resource == null) {
     return null;
   }
   PropertiesFile properties = PropertiesFile.get(logger, resource);
   if (properties == null) {
     return null;
   }
   try {
     FancyDial instance = new FancyDial(icon, properties);
     if (instance.ok) {
       instances.put(icon, instance);
       return instance;
     }
     instance.finish();
   } catch (Throwable e) {
     e.printStackTrace();
   }
   return null;
 }
 static void registerAnimations() {
   TextureObject texture = TexturePackAPI.getTextureObject(TexturePackAPI.ITEMS_PNG);
   if (texture instanceof TextureAtlas) {
     List<TextureAtlasSprite> animations = ((TextureAtlas) texture).animations;
     for (FancyDial instance : instances.values()) {
       instance.registerAnimation(animations);
     }
   }
 }
 static void clearAll() {
   logger.finer("FancyDial.clearAll");
   if (initialized) {
     active = false;
     setupInfo.clear();
   }
   for (FancyDial instance : instances.values()) {
     if (instance != null) {
       instance.finish();
     }
   }
   instances.clear();
   initialized = true;
 }
 public static boolean update(TextureAtlasSprite icon, boolean itemFrameRenderer) {
   if (!initialized) {
     logger.finer("deferring %s update until initialization finishes", IconAPI.getIconName(icon));
     return false;
   }
   if (!active) {
     return false;
   }
   int oldFB = GL11.glGetInteger(EXTFramebufferObject.GL_FRAMEBUFFER_BINDING_EXT);
   if (oldFB != 0 && warnCount < 10) {
     logger.finer(
         "rendering %s while non-default framebuffer %d is active",
         IconAPI.getIconName(icon), oldFB);
     warnCount++;
   }
   int oldTexture = GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D);
   try {
     FancyDial instance = getInstance(icon);
     return instance != null && instance.render(itemFrameRenderer);
   } finally {
     EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, oldFB);
     GLAPI.glBindTexture(oldTexture);
   }
 }