public static void Write() { string buildPath = DataDirectory.GetBuildPath(); Build build = new Build(buildPath); BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, build); BuildTarget tifBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.TIFName, build); TES4Collection collection = TES4CollectionFactory.Create(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName);//Needs the "full" collection for SCRO lookups. using (ESMAnalyzer esmAnalyzer = ESMAnalyzer.Load(collection)) { foreach (TES4Record record in collection.Where(r => r.RecordType == TES4RecordType.INFO)) { var scroRecords = esmAnalyzer.GetTypesFromSCROEnumerable(record, null); string[] aliases = scroRecords.Select(r => r.Key).ToArray(); Write(qfBuildTarget, tifBuildTarget, record, null, aliases); } foreach (TES4Record record in collection.GetGrupRecords(TES4RecordType.QUST)) { Dictionary <StageIndexAndLogIndex, List <string> > aliasesDictionary = new Dictionary <StageIndexAndLogIndex, List <string> >(); foreach (var subrecord in record.GetSubrecordsWithStageIndexAndLogIndex("SCRO")) { int formID = subrecord.Item1.Value.FirstFourBytesToInt(); string name = formID == TES5PlayerReference.FormID ? TES5PlayerReference.PlayerRefName : esmAnalyzer.GetEDIDByFormID(formID); aliasesDictionary.AddNewListIfNotContainsKeyAndAddValueToList(subrecord.Item2, name); } foreach (var aliases in aliasesDictionary) { Write(qfBuildTarget, tifBuildTarget, record, aliases.Key, aliases.Value); } } } }
public static void Write() { TES4Collection collection = TES4CollectionFactory.CreateForQUSTReferenceAliasExporting(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName); BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, new Build(DataDirectory.GetBuildPath())); string sourcePath = qfBuildTarget.GetSourcePath(); IEnumerable <TES4Record> qustRecords = collection.GetGrupRecords(TES4RecordType.QUST); foreach (TES4Record qust in qustRecords) { Write(sourcePath, qust); } }
private static void Write(TES4Collection collection, string buildTargetsPath, string scriptFolderName, TES4RecordType recordType, Action <TES4Record, string> writeRecord) { string directory = buildTargetsPath + scriptFolderName + Path.DirectorySeparatorChar + "Source" + Path.DirectorySeparatorChar; Directory.CreateDirectory(directory); var records = recordType == TES4RecordType.INFO ? collection.Where(r => r.RecordType == recordType) : collection.GetGrupRecords(recordType); foreach (TES4Record record in records) { writeRecord(record, directory); } }
public static void Write() { BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, new Build(DataDirectory.GetBuildPath())); string sourcePath = qfBuildTarget.GetSourcePath(); TES4Collection collection = TES4CollectionFactory.CreateForQUSTStageMapExportingFromESM(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName); IEnumerable <TES4Record> qusts = collection.GetGrupRecords(TES4RecordType.QUST); foreach (TES4Record qust in qusts) { string fileNameNoExt = BuildTargetsWriter.GetFileNameNoExt(TES5ReferenceFactory.qf_Prefix, qust, true, null); string fileName = fileNameNoExt + ".map"; string mapFilePath = sourcePath + Path.DirectorySeparatorChar + fileName; string contentsString = StageMapFromESMBuilder.BuildString(qust); FileWriter.WriteAllTextOrThrowIfExists(mapFilePath, contentsString); } }
public static void Write() { BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, new Build(DataDirectory.GetBuildPath())); string transpiledPath = qfBuildTarget.GetTranspiledPath(); string sourcePath = qfBuildTarget.GetSourcePath(); foreach (string pscPath in Directory.EnumerateFiles(transpiledPath, "*.psc")) { Write(sourcePath, pscPath); } TES4Collection collection = TES4CollectionFactory.CreateForQUSTStageMapExportingFromPSCFiles(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName); IEnumerable <TES4Record> qustRecords = collection.GetGrupRecords(TES4RecordType.QUST); foreach (TES4Record qust in qustRecords) { string path = sourcePath + BuildTargetsWriter.GetFileNameNoExt(TES5ReferenceFactory.qf_Prefix, qust, true, null) + ".map2"; FileWriter.WriteAllTextIfNotExists(path, ""); } }