public void RegisterEnumObjectTemplates(XofFileEnumObject enumObject) { if (enumObject == null) { throw new ArgumentNullException(nameof(enumObject)); } _file.RegisterEnumTemplates(enumObject._enumObject); }
private static void ConvertObject(XofFileEnumObject enumObject, XofFileSaveObject saveObject) { int count = enumObject.GetChildrenCount(); for (int i = 0; i < count; i++) { using (var enumData = enumObject.GetChild(i)) using (var saveData = saveObject.AddData(enumData)) { ConvertData(enumData, saveData); } } }
private static XFile ReadFile(XofFileEnumObject enumObject) { var file = new XFile(); using (enumObject) { bool headerRead = false; bool animTicksPerSecondRead = false; int childrenCount = enumObject.GetChildrenCount(); for (int childIndex = 0; childIndex < childrenCount; childIndex++) { #pragma warning disable CA2000 // Supprimer les objets avant la mise hors de portée using (var child = enumObject.GetChild(childIndex)) #pragma warning restore CA2000 // Supprimer les objets avant la mise hors de portée { Guid type = child.GetTemplateType(); if (type == XofFileDefaultTemplates.HeaderId) { if (headerRead) { throw new InvalidDataException(); } ReadHeader(file, child); headerRead = true; } else if (type == XofFileDefaultTemplates.MeshId) { file.Meshes.Add(ReadMesh(child)); } else if (type == XofFileDefaultTemplates.MaterialId) { file.Materials.Add(ReadMaterial(child)); } else if (type == XofFileDefaultTemplates.FrameId) { file.Frames.Add(ReadFrame(child)); } else if (type == XofFileDefaultTemplates.AnimationSetId) { file.AnimationSets.Add(ReadAnimationSet(child)); } else if (type == XofFileDefaultTemplates.AnimTicksPerSecondId) { if (animTicksPerSecondRead) { throw new InvalidDataException(); } file.AnimTicksPerSecond = ReadAnimTicksPerSecond(child); animTicksPerSecondRead = true; } else { throw new InvalidDataException(); } } } } return(file); }