public void Setup(Dictionary <string, Dictionary <string, VersionManifestEntry> > customResources)
        {
            //SetupDefaults();

            foreach (var hp in SettingsResourcesTools.Enumerate <HardpointInfo>("CCHardpoints", customResources))
            {
                if (hp.Complete())
                {
                    if (Control.Settings.DEBUG_ShowLoadedHardpoints)
                    {
                        Control.Log($"Hardpoint {hp.ID} loaded, [{hp.CompatibleID.Aggregate("", (last, next) => last + " " + WeaponCategoryEnumeration.GetWeaponCategoryByID(next).FriendlyName)}]");
                    }
                    HardpointsByName[hp.ID] = hp;
                    HardpointsByID[hp.WeaponCategory.ID] = hp;
                }
            }
            HardpointsList = HardpointsByName.Values.OrderBy(i => i.CompatibleID.Count).ToList();

            HardpointInfo omni;

            if (HardpointsByID.TryGetValue(Control.Settings.OmniCategoryID, out omni))
            {
                var list = HardpointsList
                           .Where(i => i.Visible && i.AllowOnWeapon)
                           .Select(i => new { name = i.ID, id = i.WeaponCategory.ID })
                           .ToArray();

                omni.CompatibleID = list.Select(i => i.id).ToHashSet();
            }

            if (Control.Settings.DEBUG_ShowLoadedHardpoints)
            {
                Control.Log($"Hardpoints: Total {HardpointsList?.Count ?? 0} Loaded");
                if (omni != null)
                {
                    Control.Log($"- omni list [{omni.CompatibleID.Aggregate("", (last, next) => last + " " + WeaponCategoryEnumeration.GetWeaponCategoryByID(next).FriendlyName)}]");
                }
                else
                {
                    Control.Log("- no omni hardpoint definition load");
                }
            }
        }