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

FixLrHrNodes() public static method

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

            var kn5 = Kn5.FromFile(kn5File);
            var fixedNodes = 0;
            
            foreach (var node in kn5.Nodes) {
                if (node.NodeClass != Kn5NodeClass.Base) continue;

                if (!node.Active && (
                        node.Name == "STEER_HR" || 
                        node.Name == "COCKPIT_HR" ||
                        node.Name == "STEER_LR" && FixLrHrNodes_HasParentWithName(kn5.RootNode, node, "COCKPIT_LR")
                    )) {
                    fixedNodes++;
                    node.Active = true;
                } else if (node.Active && (
                        node.Name == "STEER_LR" ||
                        node.Name == "COCKPIT_LR" ||
                        node.Name.StartsWith("DAMAGE_GLASS")
                    )) {
                    fixedNodes++;
                    node.Active = false;
                }
            }

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

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