public bool AddBone(string parent, ESK_Bone boneToAdd) { if (parent == String.Empty) { ESKBones.Add(boneToAdd.Clone()); return(true); } for (int i = 0; i < ESKBones.Count; i++) { if (ESKBones[i].Name == parent) { ESKBones[i].ESK_Bones.Add(boneToAdd.Clone()); return(true); } if (ESKBones[i].ESK_Bones != null) { bool result = AddBoneRecursive(parent, boneToAdd, ESKBones[i].ESK_Bones); if (result == true) { return(true); } } } return(false); }
private bool AddBoneRecursive(string parent, ESK_Bone boneToAdd, ObservableCollection <ESK_Bone> eskBones) { for (int i = 0; i < eskBones.Count; i++) { if (eskBones[i].Name == parent) { eskBones[i].ESK_Bones.Add(boneToAdd.Clone()); return(true); } if (eskBones[i].ESK_Bones != null) { bool result = AddBoneRecursive(parent, boneToAdd, eskBones[i].ESK_Bones); if (result == true) { return(true); } } } return(false); }