public string TextUI()
        {
            List <string> elements = new List <string>(128);

            foreach (var resource in _resources)
            {
                if (_kitResourceVesselModule.ResourceData.ModProduction.TryGetValue(resource, out var resourceList))
                {
                    elements.Add($"<br><b>{KITResourceSettings.ResourceToName(resource)} Producers</b><br>");
                    var mods = resourceList.Keys;
                    foreach (var mod in mods)
                    {
                        elements.Add($"    {mod.KITPartName()} -> {Math.Round(resourceList[mod].Amount, 8)} with a max of {Math.Round(resourceList[mod].MaxAmount, 8)}<br>");
                    }
                }

                if (_kitResourceVesselModule.ResourceData.ModConsumption.TryGetValue(resource, out resourceList))
                {
                    elements.Add($"<br><b>{KITResourceSettings.ResourceToName(resource)} Consumers</b><br>");
                    var mods = resourceList.Keys;
                    foreach (var mod in mods)
                    {
                        elements.Add($"    {mod.KITPartName()} -> {Math.Round(resourceList[mod].Amount, 8)} with a max of {Math.Round(resourceList[mod].MaxAmount, 8)}<br>");
                    }
                }
            }

            return(string.Join("", elements));
        }
        private bool IsLocalResource(ResourceName resource)
        {
            _cachedName     = KITResourceSettings.ResourceToName(resource);
            _cachedResource = Part.Resources[_cachedName];

            return(!_cachedResource?.flowState ?? false);
        }