FSO.IDE.Common.ObjectRegistry.Init C# (CSharp) Method

Init() public static method

public static Init ( ) : void
return void
        public static void Init()
        {
            //if (MastersByFilename != null) return;

            MastersByFilename = new Dictionary<string, List<ObjectRegistryEntry>>();

            var objProvider = Content.Content.Get().WorldObjects;

            lock (objProvider.Entries)
            {
                foreach (GameObjectReference objectInfo in objProvider.Entries.Values)
                {
                    ObjectRegistryEntry entry = new ObjectRegistryEntry
                    {
                        GUID = (uint)objectInfo.ID,
                        Filename = objectInfo.FileName,
                        Name = objectInfo.Name,
                        Group = objectInfo.Group,
                        SubIndex = objectInfo.SubIndex
                    };

                    List<ObjectRegistryEntry> dest = null;
                    if (!MastersByFilename.TryGetValue(entry.Filename, out dest))
                    {
                        dest = new List<ObjectRegistryEntry>();
                        MastersByFilename.Add(entry.Filename, dest);
                    }

                    var oldMaster = dest.FirstOrDefault(x => x.Group == entry.Group);
                    if (entry.SubIndex == -1 || entry.Group == 0)
                    {
                        //master, add to main dictionary.
                        if (oldMaster != null && entry.Group != 0)
                        {
                            //master was preemptively created. copy over values to existing.
                            oldMaster.GUID = entry.GUID;
                            oldMaster.Name = entry.Name;
                        }
                        else
                        {
                            entry.Children = new List<ObjectRegistryEntry>();
                            dest.Add(entry);
                        }
                    }
                    else
                    {
                        //non master.
                        if (oldMaster == null)
                        {
                            //create a placeholder master entry.
                            oldMaster = new ObjectRegistryEntry
                            {
                                Filename = entry.Filename,
                                Group = entry.Group,
                                SubIndex = -1
                            };
                            dest.Add(oldMaster);
                            oldMaster.Children = new List<ObjectRegistryEntry>();
                        }
                        oldMaster.Children.Add(entry);
                    }
                }
            }
        }
ObjectRegistry