private void UpdateHelmet(NiAVObject root) { if (root == null) { return; } var rootNode = root.As <NiNode>(); if (rootNode == null) { return; } var ls = this.GetHelmetNodes(rootNode); bool changed = ls.Count != this.LastHelmet.Count; if (!changed) { for (int i = 0; i < ls.Count; i++) { if (!ls[i].Equals(this.LastHelmet[i])) { changed = true; break; } } } if (changed) { this.ClearHelmet(); this.InitializeHelmet(root, ls); } }
private void InitializeHelmet(NiAVObject root, List <NiAVObject> calculated) { this.LastFlags |= HideFlags.Helmet; var rootNode = root.As <NiNode>(); if (rootNode == null) { return; } var ls = calculated ?? this.GetHelmetNodes(rootNode); foreach (var x in ls) { this.CameraMain.Cull.AddDisable(x); this.LastHelmet.Add(x); } }