private void CopyDefaultScenariosToDisk(IEnumerable <string> names) { const string baseResPath = "SurvivalismRedux.Resources.Scripts.Scenarios"; foreach (var str in names) { var path = Path.Combine(this._scenarioPath, str); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //read in the .toc file and get its list of files //var lPath = string.Format( "{2}{1}{0}.lua", str, Path.DirectorySeparatorChar, path ); var tPath = $"{path}{Path.DirectorySeparatorChar}{str}.toc"; //c#6 is sexy! //var lRes = string.Format( "SurvivalismRedux.Resources.Scripts.Scenarios.{1}.{0}.lua", str, resFldr ); var tRes = $"{baseResPath}.{str}.{str}.toc"; //OutputResourceToFile( lRes, lPath ); var tocR = new LuaTocReader(); var sResult = tocR.ReadTocFileFromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream(tRes), Path.GetFileName(tPath), $"{this._scenarioPath}{Path.DirectorySeparatorChar}{str}"); this.OutputResourceToFile(tRes, tPath); foreach (var fp in sResult.FilePaths) { var fn = Path.GetFileName(fp); this.OutputResourceToFile($"{baseResPath}.{str}.{fn}", fp); } } }
private void ReadInScenarios() { var scm = ScenarioManager.Instance; var ltr = new LuaTocReader(); foreach (var p in Directory.EnumerateDirectories(this._scenarioPath)) { var pf = Directory.EnumerateFiles(p); var s = ltr.ReadTocFileFromFilePath(pf.First(f => f.EndsWith("toc"))); scm.AddScenario(s); } /*debug code below*/ foreach (var s in scm.ScenarioPool) { foreach (var r in s.Requirements) { Console.WriteLine(r.Name); } } }