public override void Decode(string key, CfgData data) { switch (key) { case "vrt": data.ToList(out meshPoints); break; case "tri": data.ToList(out triangles); break; case "n": meshName = data.ToString(); break; case "grM": data.ToInt(ref maxGroupIndex); break; case "sub": data.ToInt(ref subMeshCount); break; case "wei": gotBoneWeights = data.ToBool(); break; case "gcls": data.DecodeInto(out groupColors); break; case "bv": data.ToList(out baseVertex); break; case "biP": data.Decode_Array(out bindPoses); break; case "UV2dR": data.ToInt(ref uv2DistributeRow); break; case "UV2cur": data.ToInt(ref uv2DistributeCurrent); break; case "sctdUV": selectedUv = meshPoints[data.ToInt(0)].vertices[0]; break; case "sctdTris": selectedTriangle = triangles[data.ToInt(0)]; break; default: if (MeshToolBase.AllTools.IsNullOrEmpty()) { break; } foreach (var t in MeshToolBase.allToolsWithPerMeshData) { var mt = t as MeshToolBase; if (mt == null || !mt.StdTag.Equals(key)) { continue; } mt.DecodeFull(data); break; } break; } }