Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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;
            }
        }