public static void GenerateRVMAT(RVMAT rvmat, bool overwrite) { if (File.Exists(Path.Combine(rvmat.path, rvmat.name + ".rvmat")) && !overwrite) { Console.WriteLine("Allready existing rvmat for {0} and not allowed to overwrite", rvmat.name); return; //if the file already exist and no overwrite is selected we don't generate a new file } try { using (var writer = new StreamWriter(Path.Combine(rvmat.path, rvmat.name + ".rvmat"), false, Encoding.UTF8)) { writer.WriteLine("//Generated by AMT RVMAT GENERATOR"); writer.WriteLine("//Time: {0}", DateTime.Now); writer.WriteLine(); writer.WriteLine(); writer.WriteLine("#define _ARMA_"); writer.WriteLine("ambient[] = {0};", Properties.Data.Default.Settings.ambient); writer.WriteLine("diffuse[] = {0};", Properties.Data.Default.Settings.diffuse); writer.WriteLine("forcedDiffuse[] = {0};", Properties.Data.Default.Settings.forcedDiffuse); writer.WriteLine("specular[] = {0};", Properties.Data.Default.Settings.specular); writer.WriteLine("specularPower = {0};", Properties.Data.Default.Settings.specularPower); writer.WriteLine("emmisive[] = {0};", Properties.Data.Default.Settings.emmisive); writer.WriteLine("PixelShaderID = \"NormalMapDiffuse\";"); writer.WriteLine("VertexShaderID = \"NormalMapDiffuseAlpha\";"); writer.WriteLine("class Stage1"); writer.WriteLine("{"); writer.WriteLine("\ttexture = \"{0}\";", rvmat.fileNopx); writer.WriteLine("\tuvSource = \"tex\";"); writer.WriteLine("\tclass uvTransform"); writer.WriteLine("\t{"); writer.WriteLine("\t\taside[] = {0};", Properties.Data.Default.Settings.aside); writer.WriteLine("\t\tup[] = {0};", Properties.Data.Default.Settings.up); writer.WriteLine("\t\tdir[] = {0};", Properties.Data.Default.Settings.dir); writer.WriteLine("\t\tpos[] = {0};", Properties.Data.Default.Settings.pos); writer.WriteLine("\t};"); writer.WriteLine("};"); writer.WriteLine("class Stage2"); writer.WriteLine("{"); writer.WriteLine("\ttexture = \"{0}\";", rvmat.fileCo); writer.WriteLine("\tuvSource = \"tex\";"); writer.WriteLine("\tclass uvTransform"); writer.WriteLine("\t{"); writer.WriteLine("\t\taside[] = {0};", Properties.Data.Default.Settings.aside); writer.WriteLine("\t\tup[] = {0};", Properties.Data.Default.Settings.up); writer.WriteLine("\t\tdir[] = {0};", Properties.Data.Default.Settings.dir); writer.WriteLine("\t\tpos[] = {0};", Properties.Data.Default.Settings.pos); writer.WriteLine("\t};"); writer.WriteLine("};"); } } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }
public void ScanFolder(string path) { if (!Directory.Exists(path)) { Console.WriteLine("Error path does not exist!"); return; } try { var temp = Directory.GetFiles(path); var co = temp.Where(x => x.Contains("_co")).ToArray(); var nopx = temp.Where(x => x.Contains("_nopx")).ToArray(); RvmatList.Clear(); foreach (var element in co) { RVMAT rvmat = new RVMAT(); var tempNopx = nopx.FirstOrDefault(x => x.Replace("_nopx", "_co") == element); if (tempNopx == null) { Console.WriteLine("Not working for " + element); continue; } rvmat.fileCo = element; rvmat.fileNopx = tempNopx; rvmat.path = element.Substring(0, element.LastIndexOf(@"\", StringComparison.Ordinal)); rvmat.name = element.Remove(element.LastIndexOf("."), element.Length - element.LastIndexOf(".")).Substring(element.LastIndexOf(@"\")).Replace("\\", "").Replace("_co", "").Replace("_nopx", ""); Console.WriteLine(rvmat.name); RvmatList.Add(rvmat); } Console.WriteLine("Done!"); } catch (Exception e) { Console.WriteLine(e); throw; } }