public void MergeMaterial(xxMaterial mat, int srcFormat) { var newMat = mat.Clone(); xx.ConvertFormat(newMat, srcFormat, Parser.Format); bool found = false; for (int i = 0; i < Parser.MaterialList.Count; i++) { var oldMat = Parser.MaterialList[i]; if (oldMat.Name == newMat.Name) { if (Parser.Format > srcFormat) { xx.CopyUnknowns(oldMat, newMat); } Parser.MaterialList.RemoveAt(i); Parser.MaterialList.Insert(i, newMat); found = true; break; } } if (!found) { Parser.MaterialList.Add(newMat); } }