示例#1
0
        private void LoadSDSContent(FileInfo info)
        {
            if (!info.Name.Contains("SDSContent") && info.Extension != "xml")
            {
                return;
            }

            XmlDocument document = new XmlDocument();

            document.Load(info.FullName);

            XPathNavigator nav   = document.CreateNavigator();
            var            nodes = nav.Select("/SDSResource/ResourceEntry");

            while (nodes.MoveNext() == true)
            {
                nodes.Current.MoveToFirstChild();
                string       resourceType = nodes.Current.Value;
                BaseResource resource     = null;

                if (!resources.ContainsKey(resourceType))
                {
                    resources.Add(resourceType, new List <TreeNode>());
                }

                switch (resourceType)
                {
                case "FrameResource":
                case "Effects":
                case "PREFAB":
                case "ItemDesc":
                case "FrameNameTable":
                case "Actors":
                case "NAV_AIWORLD_DATA":
                case "NAV_OBJ_DATA":
                case "NAV_HPD_DATA":
                case "Cutscene":
                case "FxActor":
                case "FxAnimSet":
                case "Translokator":
                case "Speech":
                case "SoundTable":
                case "AnimalTrafficPaths":
                case "AudioSectors":
                case "Animated Texture":
                case "Collisions":
                case "IndexBufferPool":
                case "VertexBufferPool":
                case "EntityDataStorage":
                case "Animation2":
                case "Mipmap":
                case "Sound":
                case "MemFile":
                    resource = new BaseResource();
                    resource.ReadResourceEntry(nodes);
                    break;

                case "Texture":
                    resource = new TextureResource();
                    resource.ReadResourceEntry(nodes);
                    break;

                case "XML":
                    resource = new XMLResource();
                    resource.ReadResourceEntry(nodes);
                    break;

                case "Script":
                    resource = new ScriptResource();
                    resource.ReadResourceEntry(nodes);
                    break;

                case "Table":
                    resource = new TableResource();
                    resource.ReadResourceEntry(nodes);
                    break;

                default:
                    MessageBox.Show("Did not pack type: " + resourceType, "Toolkit", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                }

                TreeNode node = BuildTreeNode(resource.GetFileName(), resource);
                resources[resourceType].Add(node);
            }
        }