AcTools.Utils.Kn5Fixer.FixBlurredWheels C# (CSharp) Method

FixBlurredWheels() public static method

public static FixBlurredWheels ( string acRoot, string carName ) : bool
acRoot string
carName string
return bool
        public static bool FixBlurredWheels(string acRoot, string carName) {
            var kn5File = FileUtils.GetMainCarFilename(acRoot, carName);

            var kn5 = Kn5.FromFile(kn5File);
            var wheels = 0;

            string[] normalRims;
            string[] blurredRims;
            try {
                var normalRimsList = new List<string>();
                var blurredRimsList = new List<string>();
                foreach (var section in new IniFile(FileUtils.GetCarDirectory(acRoot, carName), "blurred_objects.ini").Values) {
                    if (Math.Abs(section.GetDouble("MIN_SPEED", 0d)) < 0.001) {
                        normalRimsList.Add(section.GetPossiblyEmpty("NAME"));
                    } else {
                        blurredRimsList.Add(section.GetPossiblyEmpty("NAME"));
                    }
                }
                    
                normalRims = normalRimsList.ToArray();
                blurredRims = blurredRimsList.ToArray();
            } catch (Exception) {
                normalRims = new []{ "RIM_LF", "RIM_RF", "RIM_LR", "RIM_RR" };
                blurredRims = new []{ "RIM_BLUR_LF", "RIM_BLUR_RF", "RIM_BLUR_LR", "RIM_BLUR_RR" };
            }
            
            foreach (var node in kn5.Nodes.Where(node => node.NodeClass == Kn5NodeClass.Base)) {
                if (!node.Active && normalRims.Contains(node.Name)) {
                    node.Active = true;
                    wheels++;
                } else if (node.Active && blurredRims.Contains(node.Name)){
                    node.Active = false;
                    wheels++;
                }
            }

            if (wheels == 0){
                return false;
            }

            FileUtils.Recycle(kn5File);
            kn5.Save(kn5File, true);
            return true;
        }