diff --git a/CLEditor.sln b/CLEditor.sln index e4d89c2db5760f602fea246cf756dfb1cdfbf44a..4e428c75682420dfd8ef426c6949b98e17f0d5c0 100644 --- a/CLEditor.sln +++ b/CLEditor.sln @@ -6,9 +6,6 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Game", "Game", "{8C812676-F827-4094-853C-ABB9FA80BE38}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Editor", "Editor", "{53AD3C99-B7C7-4D7C-86B9-CA94FD5C9E71}" - ProjectSection(SolutionItems) = preProject - ResBuilder.cs = ResBuilder.cs - EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Engine", "Engine", "{690E424D-5677-4998-B1EE-1314634B09F5}" EndProject diff --git a/CLEditor/model/ResBuilder.cs b/CLEditor/model/ResBuilder.cs index 7fd22b077b407d287f9ee38eb82ea23c0130f6b8..bb3a9eb984a4713cd5a3026d3847c7bb9a47f15e 100644 --- a/CLEditor/model/ResBuilder.cs +++ b/CLEditor/model/ResBuilder.cs @@ -14,85 +14,104 @@ public class ResBuilder { "png", true },{ "jpg", true },{ "bmp", true },{ "dds", true },{ "wav", true }, { "mp3", true }, { "ogg", true } }; public static Dictionary sound = new Dictionary { { "wav", true }, { "mp3", true }, { "ogg", true } }; - public static void Build(string platform, string ori, string dest) + public static void Build(string platform, string ori, string dest, bool compile = false) { - DirectoryInfo root = new DirectoryInfo(ori + "\\\\Content"); - FileInfo[] files = root.GetFiles(); - FileInfo file; - int max = files.Length; - string Name, d; - d = dest + "\\\\Content"; - using (StreamWriter sw = new StreamWriter(d + "\\\\Content.mgcb")) + if (compile) { - sw.WriteLine("\n#----------------------------- Global Properties ----------------------------#\n"); - sw.WriteLine("/outputDir:.\\\n/intermediateDir:.\\\n/platform:" + platform); - sw.WriteLine("/config:\n/profile:Reach\n/compress:True\n"); - sw.WriteLine("#-------------------------------- References --------------------------------#\n"); - sw.WriteLine("#---------------------------------- Content ---------------------------------#"); - for (int i = 0; i < max; i++) + DirectoryInfo root = new DirectoryInfo(ori + "\\\\Content"); + FileInfo[] files = root.GetFiles(); + FileInfo file; + int max = files.Length; + string Name, d; + d = dest + "\\\\Content"; + Dictionary Names = new Dictionary(); + for (int i = 0; i < files.Length; i++) { file = files[i]; - Name = System.IO.Path.GetExtension(file.Name); - if (AllSupportTypes.ContainsKey(Name)) + Name = Path.GetFileNameWithoutExtension(file.Name); + if (Names.ContainsKey(Name)) { - sw.WriteLine("\n#begin " + file.Name); - if (image.ContainsKey(Name)) - { - sw.WriteLine("/importer:TextureImporter\n/processor:TextureProcessor"); - sw.WriteLine("/processorParam:ColorKeyColor=255,0,255,255"); - sw.WriteLine("/processorParam:ColorKeyEnabled=True"); - sw.WriteLine("/processorParam:GenerateMipmaps=False"); - sw.WriteLine("/processorParam:PremultiplyAlpha=True"); - sw.WriteLine("/processorParam:ResizeToPowerOfTwo=False"); - sw.WriteLine("/processorParam:MakeSquare=False"); - sw.WriteLine("/processorParam:TextureFormat=Color"); - } - else if (sound.ContainsKey(Name)) + throw new Exception("有资源重名"); + return; + } + else + { + Names.Add(Name, true); + } + } + + using (StreamWriter sw = new StreamWriter(d + "\\\\Content.mgcb")) + { + sw.WriteLine("\n#----------------------------- Global Properties ----------------------------#\n"); + sw.WriteLine("/outputDir:.\\\n/intermediateDir:.\\\n/platform:" + platform); + sw.WriteLine("/config:\n/profile:Reach\n/compress:True\n"); + sw.WriteLine("#-------------------------------- References --------------------------------#\n"); + sw.WriteLine("#---------------------------------- Content ---------------------------------#"); + for (int i = 0; i < max; i++) + { + file = files[i]; + Name = System.IO.Path.GetExtension(file.Name); + if (AllSupportTypes.ContainsKey(Name)) { - switch (Name) + sw.WriteLine("\n#begin " + file.Name); + if (image.ContainsKey(Name)) + { + sw.WriteLine("/importer:TextureImporter\n/processor:TextureProcessor"); + sw.WriteLine("/processorParam:ColorKeyColor=255,0,255,255"); + sw.WriteLine("/processorParam:ColorKeyEnabled=True"); + sw.WriteLine("/processorParam:GenerateMipmaps=False"); + sw.WriteLine("/processorParam:PremultiplyAlpha=True"); + sw.WriteLine("/processorParam:ResizeToPowerOfTwo=False"); + sw.WriteLine("/processorParam:MakeSquare=False"); + sw.WriteLine("/processorParam:TextureFormat=Color"); + } + else if (sound.ContainsKey(Name)) { - case "mp3": - sw.WriteLine("/importer:Mp3Importer"); - sw.WriteLine("/processor:SongProcessor"); - break; - case "wav": - sw.WriteLine("/importer:WavImporter"); - sw.WriteLine("/processor:SoundEffectProcessor"); - break; - case "ogg": - sw.WriteLine("/importer:OggImporter"); - sw.WriteLine("/processor:SongProcessor"); - break; + switch (Name) + { + case "mp3": + sw.WriteLine("/importer:Mp3Importer"); + sw.WriteLine("/processor:SongProcessor"); + break; + case "wav": + sw.WriteLine("/importer:WavImporter"); + sw.WriteLine("/processor:SoundEffectProcessor"); + break; + case "ogg": + sw.WriteLine("/importer:OggImporter"); + sw.WriteLine("/processor:SongProcessor"); + break; + } + sw.WriteLine("/processorParam:Quality=Best"); } - sw.WriteLine("/processorParam:Quality=Best"); + sw.WriteLine("/build:" + file.Name + ";" + file.Name); } - sw.WriteLine("/build:" + file.Name + ";" + file.Name); } } - } - var p = new Process(); - p.StartInfo = new ProcessStartInfo("C:\\Program Files (x86)\\MSBuild\\MonoGame\\v3.0\\Tools\\MGCB.exe", "/w:" + dest + " /@:" + d + "\\\\Content.mgcb"); - p.StartInfo.CreateNoWindow = true; - p.StartInfo.UseShellExecute = false; - p.StartInfo.RedirectStandardOutput = true; - p.Start(); - root = null; - root = new DirectoryInfo(d); - files = root.GetFiles(); - max = files.Length; - for (int i = 0; i < max; i++) - { - file = files[i]; - Name = System.IO.Path.GetExtension(file.Name); - if (Name == ".mgcontent" || AllSupportTypes.ContainsKey(Name.Substring(1))) + var p = new Process(); + p.StartInfo = new ProcessStartInfo("C:\\Program Files (x86)\\MSBuild\\MonoGame\\v3.0\\Tools\\MGCB.exe", "/w:" + dest + " /@:" + d + "\\\\Content.mgcb"); + p.StartInfo.CreateNoWindow = true; + p.StartInfo.UseShellExecute = false; + p.StartInfo.RedirectStandardOutput = true; + p.Start(); + root = null; + root = new DirectoryInfo(d); + files = root.GetFiles(); + max = files.Length; + for (int i = 0; i < max; i++) + { + file = files[i]; + Name = System.IO.Path.GetExtension(file.Name); + if (Name == ".mgcontent" || AllSupportTypes.ContainsKey(Name.Substring(1))) + { + File.Delete(file.FullName); + } + } + while (!p.HasExited) { - File.Delete(file.FullName); + Thread.Sleep(1); } + File.Delete(d + "\\\\Content.mgcb"); } - while (!p.HasExited) - { - Thread.Sleep(1); - } - File.Delete(d + "\\\\Content.mgcb"); } } diff --git a/ResBuilder.cs b/ResBuilder.cs deleted file mode 100644 index 399c903283b585681a71909f1e4ccd9ebcc5d097..0000000000000000000000000000000000000000 --- a/ResBuilder.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -public class ResBuilder -{ - public static void Build(){ - string Path = SceneManager.GameProject.projectPath; - Console.WriteLine(Path); - } -}