/// <summary> /// Загружает скрипт из файла нативного формата (из указанной директории) /// </summary> /// <param name="scriptDirectory"></param> public Script (string scriptDirectory, IFbuDataLoader loader, ITemplateVarsLoader varLoader, ICompressor compressor) { if (!Directory.Exists(scriptDirectory)) { throw new DirectoryNotFoundException("You must specify directory with native script files"); } _chapters = new List <Chapter>(); int entryId = 1; foreach (var file in Directory.EnumerateFiles(scriptDirectory)) { var chapter = loader.LoadFromNative(file, entryId); entryId += chapter.EntryCount; _chapters.Add(chapter); } compressor.Compress(_chapters); _version = new ScriptVersion(1, 0, 0); }
/// <summary> /// Загрузить скрипт из мастер-файла (xml) /// </summary> /// <param name="filename"></param> public Script (string filename, ITemplateVarsLoader varLoader ) { if (!File.Exists(filename)) { throw new FileNotFoundException("Can't find file with script. + " + filename); } _varLoader = varLoader; _chapters = new List <Chapter>(); XElement xml = XElement.Load(filename); var scriptVersion = xml.Attribute(XmlDataValues.ScriptVersionAttr).Value; _version = new ScriptVersion(scriptVersion); foreach (var chapter in xml.Elements(XmlDataValues.ChapterTitle)) { var temp = new Chapter(chapter); _chapters.Add(temp); } for (int i = 0; i < _chapters.Count; i++) { _chapters[i].UpdateLinks(this); } }
public ToXmlConverter( ITemplateVarsLoader varLoader ) { _variables = varLoader.GetVariables(); }
public FbuDataLoader( ITemplateVarsLoader varLoader ) { _variables = varLoader.GetVariables(); }