private void AddChildComponentsToGlobalTable(Fabric.Component component, string path)
 {
     if (!(component == null))
     {
         string text = path + "_" + component.name;
         if (!_globalComponentTable.ContainsKey(text))
         {
             _globalComponentTable.Add(text, component);
         }
         AudioComponent audioComponent = component as AudioComponent;
         if (audioComponent != null && !_audioComponents.ContainsKey(text))
         {
             _audioComponents.Add(text, audioComponent);
         }
         Fabric.Component[] childComponents = component.GetChildComponents();
         for (int i = 0; i < childComponents.Length; i++)
         {
             AddChildComponentsToGlobalTable(childComponents[i], text);
         }
     }
 }
 private void RemoveChildComponentsFromGlobalTable(Fabric.Component component, string path)
 {
     if (!(component == null))
     {
         if (_globalComponentTable.ContainsKey(path))
         {
             _globalComponentTable.Remove(path);
         }
         AudioComponent x = component as AudioComponent;
         if (x != null && _audioComponents.ContainsKey(path))
         {
             _audioComponents.Remove(path);
         }
         Fabric.Component[] childComponents = component.GetChildComponents();
         for (int i = 0; i < childComponents.Length; i++)
         {
             string path2 = path + "_" + childComponents[i].name;
             RemoveChildComponentsFromGlobalTable(childComponents[i], path2);
         }
     }
 }
    private void UpdateFabricPauseState(Fabric.Component[] components, bool pause)
    {
        if (components == null)
        {
            return;
        }
        int i = 0;

        for (int num = components.Length; i < num; i++)
        {
            Fabric.Component component = components[i];
            if (component != null)
            {
                UpdateFabricPauseState(component.GetChildComponents(), pause);
                AudioComponent audioComponent = component as AudioComponent;
                if (audioComponent != null)
                {
                    audioComponent.Pause(pause);
                }
            }
        }
    }