/// <summary> /// 从mca文件创建新的RegionFile对象 /// </summary> /// <param name="filename">文件名</param> /// <param name="demension">世界维度 0-null, 1-overworld, 2-the nether, 3-the end</param> /// <param name="isItAStandardMcaFileFromRegionFolder">文件名是否符合r.x.z.mca的规范</param> /// <param name="x">若文件名不符合规范而输入的x</param> /// <param name="z">若文件名不符合规范而输入的z</param> /// <returns></returns> public static RegionFile FromMcaFile(string filename, byte demension = 0, bool isItAStandardMcaFileFromRegionFolder = true, int x = 0, int z = 0) { if (File.Exists(filename)) { FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read); RegionFile regionfile = new RegionFile(); regionfile.ReadLocations(file, false); regionfile.GetChunkByLocation(file); regionfile.dimension = demension; if (isItAStandardMcaFileFromRegionFolder) { string[] filenamesplit = filename.Split('\\').ToList().Last().Split('.'); if (filenamesplit.Length == 4 && filenamesplit[0] == "r" && filenamesplit[3] == "mca") { regionfile.regionX = Convert.ToInt32(filenamesplit[1]); regionfile.regionZ = Convert.ToInt32(filenamesplit[2]); } else { throw new Exception("Wrong region filename format."); } } else { regionfile.regionX = x; regionfile.regionZ = z; } return(regionfile); } return(null); }
private void button6_Click(object sender, EventArgs e) { RF = RegionFile.FromMcaFile(textBox1.Text); //foreach (RegionFile_Chunk chunk in RF.chunks) //{ // treeView1.Nodes.Add(addToTree(chunk.tag)); //} }
private void button13_Click(object sender, EventArgs e) { DirectoryInfo directoryInfo = new DirectoryInfo(textBox1.Text + "\\region"); foreach (FileInfo file in directoryInfo.GetFiles()) { region.Add(RegionFile.FromMcaFile(file.FullName, 1)); } }