Example #1
0
        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);
            }
        }