public void RegisterEnumObjectTemplates(XofFileEnumObject enumObject)
        {
            if (enumObject == null)
            {
                throw new ArgumentNullException(nameof(enumObject));
            }

            _file.RegisterEnumTemplates(enumObject._enumObject);
        }
Пример #2
0
        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);
                    }
            }
        }
Пример #3
0
        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);
        }