private void HandleResourcesChanged(float upOrDown) { if (upOrDown > 0) { // Try and enable any auto disabled systems. while (systems.HasDisabledAuto) { if (!systems.EnableRandom()) { break; } } // Then try and enable any auto disabled modules. while (hardpoints.HasAutoDisabledModules) { if (!hardpoints.EnableRandomModule()) { break; } } } else { // First, try disabling random modules until we are back in positive // resources. while ((power.FreeEnergy < 0 || computer.IdleResources < 0) && hardpoints.HasActiveModules) { if (!hardpoints.DisableRandomModule()) { break; } } // If still don't have enough resources, then try disabling systems while ((power.FreeEnergy < 0 || computer.IdleResources < 0)) { if (!systems.DisableRandom()) { break; } } } }