diff --git a/Source/DynamicBatteryStorage/Handlers/GenericFieldDataHandler.cs b/Source/DynamicBatteryStorage/Handlers/GenericFieldDataHandler.cs index a2c2266..9c20ce6 100644 --- a/Source/DynamicBatteryStorage/Handlers/GenericFieldDataHandler.cs +++ b/Source/DynamicBatteryStorage/Handlers/GenericFieldDataHandler.cs @@ -53,7 +53,7 @@ protected override double GetValueEditor() double results = 0d; if (editorField != null) { - double.TryParse(editorField.GetValue(pm).ToString(), out results); + double.TryParse(editorField.GetValue(pm)?.ToString(), out results); } return results * editorValueScalar; } @@ -62,7 +62,7 @@ protected override double GetValueFlight() double results = 0d; if (flightField != null) { - double.TryParse(flightField.GetValue(pm).ToString(), out results); + double.TryParse(flightField.GetValue(pm)?.ToString(), out results); } return results * flightValueScalar; } diff --git a/Source/DynamicBatteryStorage/Handlers/KopernicusPowerHandlers.cs b/Source/DynamicBatteryStorage/Handlers/KopernicusPowerHandlers.cs index a442b78..68c3796 100644 --- a/Source/DynamicBatteryStorage/Handlers/KopernicusPowerHandlers.cs +++ b/Source/DynamicBatteryStorage/Handlers/KopernicusPowerHandlers.cs @@ -28,11 +28,7 @@ protected override double GetValueEditor() protected override double GetValueFlight() { - double results = 0d; - if (double.TryParse(pm.Fields.GetValue("currentOutput").ToString(), out results)) - { - return results; - } + Utils.TryGetField(pm, "currentOutput", out double results); return results; } } diff --git a/Source/DynamicBatteryStorage/Handlers/RealBatteryPowerHandlers.cs b/Source/DynamicBatteryStorage/Handlers/RealBatteryPowerHandlers.cs index 8d5db41..886ffef 100644 --- a/Source/DynamicBatteryStorage/Handlers/RealBatteryPowerHandlers.cs +++ b/Source/DynamicBatteryStorage/Handlers/RealBatteryPowerHandlers.cs @@ -25,7 +25,7 @@ protected override double GetValueEditor() } protected override double GetValueFlight() { - double.TryParse(pm.Fields.GetValue("lastECpower").ToString(), out double results); + Utils.TryGetField(pm, "lastECpower", out double results); if (results > 0) { producer = false; diff --git a/Source/DynamicBatteryStorage/Handlers/ScanSatPowerHandler.cs b/Source/DynamicBatteryStorage/Handlers/ScanSatPowerHandler.cs index e59554f..328bf1b 100644 --- a/Source/DynamicBatteryStorage/Handlers/ScanSatPowerHandler.cs +++ b/Source/DynamicBatteryStorage/Handlers/ScanSatPowerHandler.cs @@ -25,7 +25,7 @@ protected override double GetValueEditor() } protected override double GetValueFlight() { - bool.TryParse(pm.Fields.GetValue("scanning").ToString(), out bool isScanning); + Utils.TryGetField(pm, "scanning", out bool isScanning); if (isScanning) { return -resource.rate; diff --git a/Source/DynamicBatteryStorage/Handlers/WDSPPowerHandlers.cs b/Source/DynamicBatteryStorage/Handlers/WDSPPowerHandlers.cs index fd6372b..7d2e2f9 100644 --- a/Source/DynamicBatteryStorage/Handlers/WDSPPowerHandlers.cs +++ b/Source/DynamicBatteryStorage/Handlers/WDSPPowerHandlers.cs @@ -29,10 +29,7 @@ protected override double GetValueEditor() } protected override double GetValueFlight() { - if (double.TryParse(pm.Fields.GetValue("currentOutput").ToString(), out double results)) - { - return results; - } + Utils.TryGetField(pm, "currentOutput", out double results); return results; } diff --git a/Source/DynamicBatteryStorage/Utils.cs b/Source/DynamicBatteryStorage/Utils.cs index 4db6b94..ee79584 100644 --- a/Source/DynamicBatteryStorage/Utils.cs +++ b/Source/DynamicBatteryStorage/Utils.cs @@ -49,44 +49,25 @@ public static void Error(string toLog) public static bool TryGetField(PartModule pm, string fieldName, out bool result) { - result = false; - var field = pm.Fields.GetValue(fieldName); - if (field != null) - { - if (bool.TryParse(field.ToString(), out result)) - { - return true; - } - } - return false; + result = false; + string field = pm?.Fields?.GetValue(fieldName)?.ToString(); + return bool.TryParse(field, out result); } public static bool TryGetField(PartModule pm, string fieldName, out double result) { - result = 0d; - var field = pm.Fields.GetValue(fieldName); - if (field != null) - { - if (double.TryParse(field.ToString(), out result)) - { - return true; - } - } - return false; + result = 0d; + string field = pm?.Fields?.GetValue(fieldName)?.ToString(); + return double.TryParse(field, out result); } + public static bool TryGetField(PartModule pm, string fieldName, out float result) { - result = 0f; - var field = pm.Fields.GetValue(fieldName); - if (field != null) - { - if (float.TryParse(field.ToString(), out result)) - { - return true; - } - } - return false; + result = 0f; + string field = pm?.Fields?.GetValue(fieldName)?.ToString(); + return float.TryParse(field, out result); } + public static bool TryParseEnum(string str, bool caseSensitive, out T value) where T : struct { // Can't make this a type constraint... @@ -120,7 +101,7 @@ public static T FindChildOfType(string name, Transform parent) { result = parent.FindDeepChild(name).GetComponent(); } - catch (NullReferenceException e) + catch (NullReferenceException) { Debug.LogError($"Couldn't find {name} in children of {parent.name}"); }