private static ContentFileEntry CreateSoundEffect(string name) { var entry = new ContentFileEntry { Name = name }; entry.Lines.Add($"#begin {name}"); entry.Lines.Add($"/importer:WavImporter"); entry.Lines.Add($"/processor:SoundEffectProcessor"); entry.Lines.Add($"/processorParam:Quality=Best"); entry.Lines.Add($"/build:{name}"); return(entry); }
private static ContentFileEntry CreateEffect(string name) { var entry = new ContentFileEntry { Name = name }; entry.Lines.Add($"#begin {name}"); entry.Lines.Add($"/importer:EffectImporter"); entry.Lines.Add($"/processor:EffectProcessor"); entry.Lines.Add($"/processorParam:DebugMode=Auto"); entry.Lines.Add($"/build:{name}"); return(entry); }
private static ContentFileEntry CreateSpriteFont(string name) { var entry = new ContentFileEntry { Name = name }; entry.Lines.Add($"#begin {name}"); entry.Lines.Add($"/importer:FontDescriptionImporter"); entry.Lines.Add($"/processor:FontDescriptionProcessor"); entry.Lines.Add($"/processorParam:PremultiplyAlpha=True"); entry.Lines.Add($"/processorParam:TextureFormat=Compressed"); entry.Lines.Add($"/build:{name}"); return(entry); }
private static ContentFileEntry CreateTexture2D(string name) { var entry = new ContentFileEntry { Name = name }; entry.Lines.Add($"#begin {name}"); entry.Lines.Add($"/importer:TextureImporter"); entry.Lines.Add($"/processor:TextureProcessor"); entry.Lines.Add($"/processorParam:ColorKeyColor=255,0,255,255"); entry.Lines.Add($"/processorParam:ColorKeyEnabled=True"); entry.Lines.Add($"/processorParam:GenerateMipmaps=False"); entry.Lines.Add($"/processorParam:PremultiplyAlpha=True"); entry.Lines.Add($"/processorParam:ResizeToPowerOfTwo=False"); entry.Lines.Add($"/processorParam:MakeSquare=False"); entry.Lines.Add($"/processorParam:TextureFormat=Color"); entry.Lines.Add($"/build:{name}"); return(entry); }
internal void Load(string[] fileLines) { var lineIdx = 0; while (!fileLines[lineIdx].Contains("Content")) { HeaderLines.Add(fileLines[lineIdx]); lineIdx++; } HeaderLines.Add(fileLines[lineIdx]); lineIdx++; while (lineIdx < fileLines.Length) { while (lineIdx < fileLines.Length && string.IsNullOrWhiteSpace(fileLines[lineIdx])) { lineIdx++; } if (lineIdx >= fileLines.Length) { break; } var entry = new ContentFileEntry { Name = fileLines[lineIdx].Replace("#begin ", "").Trim(), Found = false, }; while (lineIdx < fileLines.Length && !string.IsNullOrWhiteSpace(fileLines[lineIdx])) { entry.Lines.Add(fileLines[lineIdx]); lineIdx++; } Entries.Add(entry); } }
static void Main(string[] args) { var root = @"./"; var contentFileName = Directory.GetFiles(root, "*.mgcb") .FirstOrDefault(); if (contentFileName == null) { Console.WriteLine("No content file in directory"); return; } var fileLines = File.ReadAllLines(contentFileName); var contentFile = new ContentFile(); contentFile.Load(fileLines); var contentDirectories = Directory.GetDirectories(root) .Where(d => contentDirectoryNames.Contains(Path.GetFileName(d))) .ToArray(); var codeBuilder = BeginContentCode(); foreach (var directory in contentDirectories) { var groupName = Path.GetFileName(directory); var createEntry = ContentFileEntry.GetEntryConstructor(groupName); StartContentClass(codeBuilder, groupName); var files = Directory.GetFiles(directory); var props = new List <string>(); var i = 0; foreach (var file in files) { var propertyName = Path.GetFileNameWithoutExtension(file); var assetName = $"{groupName}/{propertyName}"; props.Add(assetName); var sanitizedPropertyName = GetPropertyName(propertyName); WriteIdx(codeBuilder, sanitizedPropertyName, assetName, i); i++; var entryFileName = $"{groupName}/{Path.GetFileName(file)}"; var entry = contentFile.Entries.FirstOrDefault(e => e.Name == entryFileName); if (entry == null) { contentFile.Entries.Add(createEntry(entryFileName)); } else { entry.Found = true; } } WriteLoadAll(codeBuilder, groupName, props); EndContentClass(codeBuilder); } var code = EndContentCode(codeBuilder); var output = Path.Combine(root, "GameContent.cs"); File.WriteAllText(output, code); var data = contentFile.ToString(); File.WriteAllLines($"{contentFileName}.old", fileLines); File.WriteAllText($"{contentFileName}", data); }