示例#1
0
        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));
            }
        }
示例#2
0
        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);
             *  }*/
        }