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 bool CanBuildAndWarnIfNot(this IEnumerable <IBuildTarget> buildTargets)
 {
     if (buildTargets.CanBuild())
     {
         return(true);
     }
     Console.WriteLine(DataDirectory.GetBuildPath() + " had old files.  Clear them manually, or use " + BuildFileDeleteCommand.FriendlyNameConst + ".");
     return(false);
 }
Exemplo n.º 3
0
 public bool CanBuildAndWarnIfNot()
 {
     if (CanBuild())
     {
         return(true);
     }
     Console.WriteLine(DataDirectory.GetBuildPath() + " had old files.  Clear them manually, or use " + BuildFileDeleteCommand.FriendlyNameConst + ".");
     return(false);
 }
 protected bool PreExecutionChecks(bool requireESM, bool requireBuildTargets, bool requireGraph, bool requireCompiler)
 {
     if (requireESM)
     {
         string esmPath = DataDirectory.GetESMDefaultFilePath();
         if (!File.Exists(esmPath))
         {
             Console.WriteLine("Please add " + esmPath);
             return(false);
         }
     }
     if (requireBuildTargets)
     {
         string buildTargetsPath = DataDirectory.GetBuildTargetsPath();
         if (!Directory.Exists(buildTargetsPath))
         {
             Console.WriteLine("Please add " + buildTargetsPath + " with all of its contents.");
             return(false);
         }
     }
     if (requireGraph)
     {
         string graphPath = DataDirectory.GetGraphDirectoryPath();
         if (!Directory.Exists(graphPath))
         {
             Console.WriteLine("Please add " + graphPath + " by running " + BuildInteroperableCompilationGraphs.FriendlyNameConst + ".");
             return(false);
         }
     }
     if (requireCompiler)
     {
         string compilerPath = DataDirectory.GetCompilerDirectoryPath();
         if (!Directory.Exists(compilerPath))
         {
             Console.WriteLine("Please add compiler binaries to " + compilerPath + ".");
             return(false);
         }
     }
     Directory.CreateDirectory(DataDirectory.GetBuildPath());
     return(true);
 }
        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, "");
            }
        }
        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);
            }
        }
Exemplo n.º 7
0
        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);
            }
        }