Example #1
0
        public Items(AionData data)
        {
            InitializeComponent();

            Thread t = new Thread(() => {
                XDocument doc = AionData.BXMLToXML(data.ReadXMLFile(@"Data\Items\Items.pak", "client_items.xml"));

                Dictionary <string, int> columns = new Dictionary <string, int>();
                BeginInvoke(new Action(() => {
                    DataGridViewImageColumn iconColumn = new DataGridViewImageColumn();
                    iconColumn.Name       = "icon";
                    iconColumn.HeaderText = "icon";
                    dataGridView1.Columns.Add(iconColumn);

                    foreach (var node in doc.Elements().First().Elements().First().Elements())
                    {
                        dataGridView1.Columns.Add(node.Name.LocalName, node.Name.LocalName);
                        columns[node.Name.LocalName] = columns.Count;
                    }
                }));

                foreach (var node in doc.Elements().First().Elements())
                {
                    BeginInvoke(new Action <XElement>(x => {
                        string[] values = new string[columns.Count];
                        foreach (XElement val in x.Elements())
                        {
                            if (!columns.ContainsKey(val.Name.LocalName))
                            {
                                dataGridView1.Columns.Add(val.Name.LocalName, val.Name.LocalName);
                                columns[val.Name.LocalName] = columns.Count;
                                Array.Resize(ref values, columns.Count);
                            }
                            values[columns[val.Name.LocalName]] = (val.Value);
                        }

                        var iconname = values[columns["icon_name"]];

                        Bitmap b = data.ReadDDSFile(@"Data\Items\Items.pak", iconname + ".dds");

                        object[] rowValues = new object[] { b }.Concat(values).ToArray();
                        int rowIndex       = dataGridView1.Rows.Add(rowValues);
                        dataGridView1.Rows[rowIndex].Height = 64;
                    }), node);
                    Thread.Sleep(10);


                    if (dataGridView1.Rows.Count > 10000)
                    {
                        return;
                    }
                }
            });

            t.IsBackground = true;
            t.Priority     = ThreadPriority.Lowest;
            t.Start();
        }
Example #2
0
        public Items(AionData data)
        {
            InitializeComponent();

            Thread t = new Thread(() => {

                XDocument doc = AionData.BXMLToXML(data.ReadXMLFile(@"Data\Items\Items.pak", "client_items.xml"));

                Dictionary<string, int> columns = new Dictionary<string, int>();
                BeginInvoke(new Action(() => {
                    DataGridViewImageColumn iconColumn = new DataGridViewImageColumn();
                    iconColumn.Name = "icon";
                    iconColumn.HeaderText = "icon";
                    dataGridView1.Columns.Add(iconColumn);

                    foreach (var node in doc.Elements().First().Elements().First().Elements()) {
                        dataGridView1.Columns.Add(node.Name.LocalName, node.Name.LocalName);
                        columns[node.Name.LocalName] = columns.Count;
                    }
                }));

                foreach (var node in doc.Elements().First().Elements()) {
                    BeginInvoke(new Action<XElement>(x => {
                        string[] values = new string[columns.Count];
                        foreach (XElement val in x.Elements()) {
                            if (!columns.ContainsKey(val.Name.LocalName)) {
                                dataGridView1.Columns.Add(val.Name.LocalName, val.Name.LocalName);
                                columns[val.Name.LocalName] = columns.Count;
                                Array.Resize(ref values, columns.Count);
                            }
                            values[columns[val.Name.LocalName]] = (val.Value);
                        }

                        var iconname = values[columns["icon_name"]];

                        Bitmap b = data.ReadDDSFile(@"Data\Items\Items.pak", iconname + ".dds");

                        object[] rowValues = new object[] { b }.Concat(values).ToArray();
                        int rowIndex = dataGridView1.Rows.Add(rowValues);
                        dataGridView1.Rows[rowIndex].Height = 64;

                    }), node);
                    Thread.Sleep(10);

                    if (dataGridView1.Rows.Count > 10000) {
                        return;
                    }
                }

            });

            t.IsBackground = true;
            t.Priority = ThreadPriority.Lowest;
            t.Start();
        }
Example #3
0
        static void Main()
        {
            AionData data = new AionData(@"C:\Downloads\aion");

            //DataAnalysisTools.MakeFileWithStructForBXML(data, "itemsAnalysis.cs",
            //    new PakFile(@"Data\Items\Items.pak", "client_items.xml"),
            //    new PakFile(@"Data\Housing\Housing.pak", "client_housing_object.xml"));

            //DataAnalysisTools.MakeFileWithStructForBXML(data, @"L10N\1_enu\data\data.pak", "strings/client_strings_item2.xml", "clientstring.cs");

            using (SQLiteConnection conn = new SQLiteConnection("aion.sqlite")) {
                conn.CreateTable <Item>("items");
                var itemsxml         = data.ReadXMLFile(@"Data\Items\Items.pak", "client_items.xml");
                var housingobjectxml = data.ReadXMLFile(@"Data\Housing\Housing.pak", "client_housing_object.xml");

                Dictionary <string, string> nameToCoords = CreateTextureMapOfIcons(data, itemsxml, housingobjectxml);

                conn.CreateTable <ClientString>("stringtable");
                var clientStringItem  = data.ReadXMLFile(@"L10N\1_enu\data\data.pak", "strings/client_strings_item.xml");
                var clientStringItem2 = data.ReadXMLFile(@"L10N\1_enu\data\data.pak", "strings/client_strings_item2.xml");


                using (SQLiteTransaction transaction = new SQLiteTransaction(conn)) {
                    InsertBXMLData <Item>(conn, "items", itemsxml,
                                          (fi, str) => {
                        if (fi.Name == "name")
                        {
                            return("str_" + str.ToLowerInvariant());
                        }
                        if (fi.Name == "icon_name")
                        {
                            return(nameToCoords[str + ".dds"]);
                        }
                        return(str.ToLowerInvariant());
                    });

                    InsertBXMLData <Item>(conn, "items", housingobjectxml,
                                          (fi, str) => {
                        if (fi.Name == "name")
                        {
                            return("str_" + str.ToLowerInvariant());
                        }
                        if (fi.Name == "icon_name")
                        {
                            return(nameToCoords[str + ".dds"]);
                        }
                        return(str.ToLowerInvariant());
                    });

                    InsertBXMLData <ClientString>(conn, "stringtable", clientStringItem, (fi, str) => fi.Name == "body" ? str : str.ToLowerInvariant());
                    InsertBXMLData <ClientString>(conn, "stringtable", clientStringItem2, (fi, str) => fi.Name == "body" ? str : str.ToLowerInvariant());
                }

                conn.Index("stringtable", "name");
                conn.Index("items", "name");

                conn.Index("stringtable", "body");
            }

            return;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Items(data));
        }