private string LoadSCFileContents(IModFileLoader loader) { using (var stream = loader.OpenStream()) { using (var mr = new MemoryStream()) { byte[] buffer = new byte[1024]; int size = 0; while (stream.CanRead && ((size = stream.Read(buffer, 0, 1024)) > 0)) { mr.Write(buffer, 0, size); } mr.Seek(0, SeekOrigin.Begin); var parser = new Parser(new Scanner(mr)); parser.Parse(); mr.Seek(0, SeekOrigin.Begin); using (var sr = new StreamReader(mr)) { ParseError = parser.ParseError; Contents = parser.Root; return(sr.ReadToEnd()); } } } }
internal static ModFile Load(IModFileLoader loader, string path, Mod sourceMod) { if (SCExtensions.Contains(System.IO.Path.GetExtension(path).ToLower())) { return(new SCModFile(loader, path, sourceMod)); } if (CodeExtensions.Contains(System.IO.Path.GetExtension(path).ToLower())) { return(new CodeModFile(loader, path, sourceMod)); } if (LocalisationExtensions.Contains(System.IO.Path.GetExtension(path).ToLower())) { return(new LocalisationFile(loader, path, sourceMod)); } return(new BinaryModFile(loader, path, sourceMod)); }
public BinaryModFile(IModFileLoader loader, string path, Mod sourceMod) : base(path, sourceMod) { _loader = loader; }
public LocalisationFile(IModFileLoader loader, string path, Mod sourceMod) : base(path, sourceMod) { _loader = loader; }