コード例 #1
0
    private void load_category(XmlNode categories, XmlNode components)
    {
        components_objectses objectses = new components_objectses();

        sources_inernal = new components_sources();
        genuses_inernal = new components_genuses(categories, components, objectses, sources_inernal);

        face = new components_colors(categories["face"]);
        hair = new components_colors(categories["hair"]);

        foreach (components_genus genus in genuses_inernal.Values)
        {
            ListViewGroup group = new ListViewGroup(genus.name);

            group.Tag = genus;

            foreach (components_species species in genus.Values)
            {
                ListViewItem item = new ListViewItem(species.name, group);

                item.Tag = species;

                category.Items.Add(item);
            }

            category.Groups.Add(group);
        }

        category.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);

        if (0 < category.Items.Count)
        {
            category.Items[0].Selected = true;
        }
    }
コード例 #2
0
    internal components_objects exists(string location, XmlNode componentses, components_sources sources)
    {
        components_objects objects;

        location = location.ToLower();

        if (!TryGetValue(location, out objects))
        {
            objects = new components_objects(location, componentses, sources);

            Add(location, objects);
        }

        return(objects);
    }
コード例 #3
0
    //TODO: ParsePackage
    internal components_objects(string location, XmlNode componentses, components_sources sources)
    {
        string[] entries = location.Split(new char[] { '\\', }, StringSplitOptions.RemoveEmptyEntries);

        for (int index = 0; index < componentses.ChildNodes.Count; ++index)
        {
            XmlNode components = componentses.ChildNodes[index];

            if (entries[0] == components.Name)
            {
                var package = sources.exists(Path.GetFullPath(components.Attributes["location"].Value))[entries[0]];

                for (int entry = 1; entry < entries.Length; ++entry)
                {
                    components = components[entries[entry]];
                    Console.WriteLine("Parse:" + entries[entry]);
                    if (null != package)
                    {
                        package = package[match_species(entries[entry])];
                    }
                }
                if (components != null)
                {
                    foreach (XmlNode component in components)
                    {
                        if ("object" == component.Name)
                        {
                            string id = component.Attributes["id"].Value;

                            if (!ContainsKey(id))
                            {
                                Add(id, new components_object(component, package));
                            }
                        }
                    }
                }
            }
        }
    }
コード例 #4
0
 internal components_species(XmlNode species, XmlNode componentses, components_objectses objectses, components_sources sources)
 {
     properties = new object[]
     {
         species.Attributes["name"].Value,
         species.Attributes["type"].Value,
         species.Attributes["etc"].Value,
         species.Attributes["location"].Value,
         objectses.exists(species.Attributes["location"].Value, componentses, sources),
     };
 }
コード例 #5
0
    internal components_genus(XmlNode genus, XmlNode componentses, components_objectses objectses, components_sources sources)
    {
        properties = new object[]
        {
            genus.Attributes["name"].Value,
            genus.Attributes["type"].Value,
        };

        foreach (XmlNode species in genus)
        {
            if ("species" == species.Name)
            {
                Add(species.Attributes["type"].Value, new components_species(species, componentses, objectses, sources));
            }
        }
    }
コード例 #6
0
 internal components_genuses(XmlNode categories, XmlNode components, components_objectses objectses, components_sources sources)
 {
     foreach (XmlNode genus in categories)
     {
         if ("genus" == genus.Name)
         {
             Add(genus.Attributes["type"].Value, new components_genus(genus, components, objectses, sources));
         }
     }
 }