static async Task Main(string[] args) { IWebProxy proxy = null; // for debug //IWebProxy proxy = new WebProxy("127.0.0.1", 8008); // Parse from bytes var baseUrl = "http://webdown2.nexon.co.jp/arad/real"; var parser = new PackageManager.PackageManager(proxy); var bytes = await parser.DownloadPackageListData(baseUrl); using (var stream = new MemoryStream(bytes)) { var packageInfo = parser.Parse(stream); File.WriteAllText("out.json", JsonConvert.SerializeObject(packageInfo, Formatting.Indented)); // download all .npk files var tasks = packageInfo .Where(x => x.DirectoryName == "ImagePacks2") .SelectMany(x => x.Files) .Select(x => parser.DownloadSPKFile($"{baseUrl}/ImagePacks2/{x.FileName}.spk", $"out/{x.FileName}")) .ToArray(); Task.WaitAll(tasks); } return; // Parse from file using (var stream = File.OpenRead("package.lst")) { var packageInfo = parser.Parse(stream); File.WriteAllText("out.json", JsonConvert.SerializeObject(packageInfo, Formatting.Indented)); } }
private void btn_create_project_Click(object sender, EventArgs e) { if (txt_project_name.Text == "") { MessageBox.Show("Project name cannot be empty!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else if (txt_project_path.Text == "") { MessageBox.Show("Project creation directory cannot be empty!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // if (Directory.Exists(txt_project_path.Text)) // { string project_dir = txt_project_path.Text + txt_project_name.Text; // Create Nessacery Files Directory.CreateDirectory(project_dir); Directory.CreateDirectory(project_dir + "\\Game-Levels"); Directory.CreateDirectory(project_dir + "\\Game-Resouces"); Directory.CreateDirectory(project_dir + "\\Game-Objects"); Directory.CreateDirectory(project_dir + "\\Game-Scripts"); Directory.CreateDirectory(project_dir + "\\Game-Plugins"); Directory.CreateDirectory(project_dir + "\\Game-Data"); // Extra Directory.CreateDirectory(project_dir + "\\Game-Navigation"); Directory.CreateDirectory(project_dir + "\\Game-Animation"); StreamWriter stm_wr = File.CreateText(project_dir + "\\" + txt_project_name.Text + ".prj"); stm_wr.WriteLine("Project_Name: @" + txt_project_name.Text); stm_wr.WriteLine("Project_Author: @"); stm_wr.WriteLine("Project_Version: @"); stm_wr.WriteLine("Project_About: @"); stm_wr.WriteLine("Project_FirstLevel: Game-Levels\\Demo.hvl"); stm_wr.WriteLine("Project_Platform: 1"); stm_wr.Close(); // Write data to the first level. stm_wr = File.CreateText(project_dir + "\\Game-Levels\\Demo.hvl"); stm_wr.WriteLine("Level_Name: @Demo"); stm_wr.WriteLine("Speed: 0"); stm_wr.WriteLine("Back_Colour: 0 0 0 0"); stm_wr.Close( ); // Import all packages for (int cnt = 0; cnt < clb_importable_packages.CheckedItems.Count; cnt++) { PackageManager.PackageManager pak_manager = new PackageManager.PackageManager(Application.StartupPath, project_dir); PackageManager.Package pak = pak_manager.ReadPackage(Application.StartupPath + "\\Packages\\" + (string)clb_importable_packages.CheckedItems[cnt] + ".pak"); if (pak != null) { pak_manager.ExtractPackage(pak); } } menu_view.Visible = false; Form editor_window = new Editor(menu_view, project_dir, txt_project_name.Text); editor_window.Show(); // Open the editor window. this.Close(); // Save current instance of menu-screen. /* } * else * { * MessageBox.Show("Project create directory not found!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); * }*/ }