internal void InitializeChargers()
        {
            QuickLogger.Debug("ChargeManager Initializing CyclopsChargers from external mods");

            // First, register chargers from other mods.
            for (int i = 0; i < CyclopsChargerCreators.Count; i++)
            {
                ChargerCreator chargerTemplate = CyclopsChargerCreators[i];
                QuickLogger.Debug($"ChargeManager creating charger '{chargerTemplate.ChargerName}'");
                CyclopsCharger charger = chargerTemplate.Creator.Invoke(Cyclops);

                if (charger == null)
                {
                    QuickLogger.Warning($"CyclopsCharger '{chargerTemplate.ChargerName}' was null");
                }
                else if (!KnownChargers.ContainsKey(chargerTemplate.ChargerName))
                {
                    KnownChargers.Add(chargerTemplate.ChargerName, charger);
                    QuickLogger.Debug($"Created CyclopsCharger '{chargerTemplate.ChargerName}'");
                }
                else
                {
                    QuickLogger.Warning($"Duplicate CyclopsCharger '{chargerTemplate.ChargerName}' was blocked");
                }
            }

            this.Chargers = new CyclopsCharger[KnownChargers.Count];

            int c = 0;

            foreach (CyclopsCharger charger in KnownChargers.Values)
            {
                this.Chargers[c++] = charger;
            }

            totalChargers = c;
            QuickLogger.Debug($"ChargeManager has '{totalChargers}' CyclopsChargers from external mods");

            initialized       = true;
            TooLateToRegister = true;

            requiresVanillaCharging = totalChargers == 0 || CyclopsManager.GetManager(Cyclops).Upgrade.VanillaUpgrades.IsUsingVanillaUpgrade(TechType.CyclopsThermalReactorModule);

            if (requiresVanillaCharging)
            {
                QuickLogger.Info("Vanilla thermal reactor charging enabled");
            }
            else
            {
                QuickLogger.Info("Vanilla thermal reactor charging overridden by mod");
            }
        }
        internal void InitializeChargers()
        {
            TooLateToRegister = true;
            QuickLogger.Debug("ChargeManager Initializing CyclopsChargers from external mods");

            // First, register chargers from other mods.
            for (int i = 0; i < CyclopsChargerCreators.Count; i++)
            {
                ChargerCreator chargerTemplate = CyclopsChargerCreators[i];
                QuickLogger.Debug($"ChargeManager creating charger '{chargerTemplate.ChargerName}'");
                CyclopsCharger charger = chargerTemplate.Creator.Invoke(Cyclops);

                if (charger == null)
                {
                    QuickLogger.Warning($"CyclopsCharger '{chargerTemplate.ChargerName}' was null");
                }
                else if (!KnownChargers.ContainsKey(chargerTemplate.ChargerName))
                {
                    KnownChargers.Add(chargerTemplate.ChargerName, charger);
                    CyclopsHUDManager.StatusIcons.Add(charger);
                    QuickLogger.Debug($"Created CyclopsCharger '{chargerTemplate.ChargerName}'");
                }
                else
                {
                    QuickLogger.Warning($"Duplicate CyclopsCharger '{chargerTemplate.ChargerName}' was blocked");
                }
            }

            // Check if an external mod has a different upgrade handler for the original CyclopsThermalReactorModule.
            bool requiresVanillaCharging = CyclopsManager.GetManager(ref Cyclops).Upgrade.VanillaUpgrades.IsUsingVanillaUpgrade(TechType.CyclopsThermalReactorModule);

            if (requiresVanillaCharging)
            {
                QuickLogger.Debug("Vanilla thermal reactor charging handled internally");
                var vanillaThermalCharger = new VanillaThermalChargeManager(Cyclops);
                KnownChargers.Add(nameof(VanillaThermalChargeManager), vanillaThermalCharger);
                CyclopsHUDManager.StatusIcons.Add(vanillaThermalCharger);
                MCUServices.Register.PdaIconOverlay(TechType.CyclopsThermalReactorModule,
                                                    (uGUI_ItemIcon icon, InventoryItem upgradeModule) => new VanillaThermalPdaOverlay(icon, upgradeModule));
            }

            this.Chargers = new CyclopsCharger[KnownChargers.Count];

            int c = 0;

            foreach (CyclopsCharger charger in KnownChargers.Values)
            {
                this.Chargers[c++] = charger;
            }

            initialized = true;
        }