Esempio n. 1
0
        static public string Process(string rootpath)            // overall index of items
        {
            EliteDangerousCore.MaterialCommodityData.SetUpInitialTable();
            string ret = "// DATA FROM Frontiers excel spreadsheet with corolis modules.json to give engineers names" + Environment.NewLine;

            ret += "// DO NOT UPDATE MANUALLY - use the netlogentry frontierdata scanner to do this" + Environment.NewLine;
            ret += "" + Environment.NewLine;

            string  recipies    = Path.Combine(rootpath, "recipes.csv");
            CVSFile filerecipes = new CVSFile();

            if (!filerecipes.Read(recipies))
            {
                return("ERROR no recipies");
            }

            string  materials = Path.Combine(rootpath, "mats.csv");
            CVSFile filemats  = new CVSFile();

            if (!filemats.Read(materials))
            {
                return("ERROR no mats");
            }

            List <CorolisEngineering.EngEntry> englist = CorolisEngineering.GetEng(rootpath);

            foreach (CVSFile.Row line in filerecipes.Rows)
            {
                string fdname      = line["A"];
                string ukname      = line["C"];
                string descr       = line["D"];
                int?   level       = line.GetInt("P");
                long?  matid1      = line.GetInt("Q");
                long?  matid1count = line.GetInt("R");
                long?  matid2      = line.GetInt("S");
                long?  matid2count = line.GetInt("T");
                long?  matid3      = line.GetInt("U");
                long?  matid3count = line.GetInt("V");

                if (level != null)
                {
                    fdname = fdname.Substring(0, fdname.LastIndexOf('_'));      //examples, AFM_Shielded, Armour_Heavy Duty
                    string fdfront = fdname.Substring(0, fdname.IndexOf('_'));
                    string fdback  = fdname.Substring(fdname.IndexOf('_') + 1).Replace(" ", "");

                    string ing = MatName(matid1, matid1count, filemats);
                    ing = ing.AppendPrePad(MatName(matid2, matid2count, filemats), ",");
                    ing = ing.AppendPrePad(MatName(matid3, matid3count, filemats), ",");

                    string cat = fdname.Word(new char[] { '_' }, 1).SplitCapsWordFull();
                    if (cat == "FS Dinterdictor")
                    {
                        cat = "FSD Interdictor";
                    }

                    List <CorolisEngineering.EngEntry> modulelist = (from x in englist where x.corolisfrontierid == fdfront select x).ToList();

                    string engnames = "Not Known";

                    if (modulelist.Count == 0)
                    {
                        Console.WriteLine("No matching corolis module found " + fdname + ":" + fdfront);
                    }
                    else
                    {
                        CorolisEngineering.EngEntry anylevelentry = (from x in modulelist where x.fdname.IndexOf(fdback, StringComparison.InvariantCultureIgnoreCase) >= 0 select x).FirstOrDefault();
                        CorolisEngineering.EngEntry entry         = (from x in modulelist where x.fdname.IndexOf(fdback, StringComparison.InvariantCultureIgnoreCase) >= 0 && x.grade == level.ToString() select x).FirstOrDefault();

                        if (entry == null)
                        {
                            if (anylevelentry != null)
                            {
                                Console.WriteLine("Possible mismatched grade for " + fdname + ":" + fdfront + ":" + fdback + " at " + level);
                            }
                            else
                            {
                                Console.WriteLine("No matching engineering found for " + fdname + ":" + fdfront + ":" + fdback);
                            }

                            modulelist = null;
                        }
                        else
                        {
                            //Console.WriteLine("engineering found for FDName: " + fdname + ": Entry " + entry.fdname);
                            engnames = entry.englist;
                        }
                    }

                    if (ukname.StartsWith("Misc "))
                    {
                        ukname = ukname.Substring(5);
                    }

                    if (modulelist != null)
                    {
                        string classline = "        new EngineeringRecipe(\"" + ukname + "\", \"" + ing + "\", \"" + cat + "\", \"" + level.Value.ToString() + "\", \"" + engnames + "\" ),";
                        ret += classline + Environment.NewLine;
                    }
                }
            }

            return(ret);
        }
Esempio n. 2
0
        static void Main(string[] stringargs)
        {
            CommandArgs args = new CommandArgs(stringargs);

            int repeatdelay = 0;

            while (true) // read optional args
            {
                string opt = (args.Left > 0) ? args[0] : null;

                if (opt != null)
                {
                    if (opt.Equals("-keyrepeat", StringComparison.InvariantCultureIgnoreCase))
                    {
                        repeatdelay = -1;
                        args.Remove();
                    }
                    else if (opt.Equals("-repeat", StringComparison.InvariantCultureIgnoreCase) && args.Left >= 1)
                    {
                        args.Remove();
                        if (!int.TryParse(args.Next, out repeatdelay))
                        {
                            Console.WriteLine("Bad repeat delay\n");
                            return;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    break;
                }
            }

            string arg1 = args.Next;

            if (arg1 == null)
            {
                Help();
                return;
            }

            if (arg1.Equals("StatusMove", StringComparison.InvariantCultureIgnoreCase))
            {
                Status.StatusMove(args);
                return;
            }

            if (arg1.Equals("Status", StringComparison.InvariantCultureIgnoreCase))
            {
                Status.StatusSet(args);
                return;
            }

            if (args.Left < 1)
            {
                Help();
                return;
            }

            if (arg1.Equals("EDDBSTARS", StringComparison.InvariantCultureIgnoreCase))
            {
                EDDB.EDDBLog(args.Next, "\"Star\"", "\"spectral_class\"", "Star class ");
            }
            else if (arg1.Equals("EDDBPLANETS", StringComparison.InvariantCultureIgnoreCase))
            {
                EDDB.EDDBLog(args.Next, "\"Planet\"", "\"type_name\"", "Planet class");
            }
            else if (arg1.Equals("EDDBSTARNAMES", StringComparison.InvariantCultureIgnoreCase))
            {
                EDDB.EDDBLog(args.Next, "\"Star\"", "\"name\"", "Star Name");
            }
            else if (arg1.Equals("voicerecon", StringComparison.InvariantCultureIgnoreCase))
            {
                BindingsFile.Bindings(args.Next);
            }
            else if (arg1.Equals("devicemappings", StringComparison.InvariantCultureIgnoreCase))
            {
                BindingsFile.DeviceMappings(args.Next);
            }
            else if (arg1.Equals("Phoneme", StringComparison.InvariantCultureIgnoreCase))
            {
                if (args.Left >= 1)
                {
                    Speech.Phoneme(args.Next, args.Next);
                }
            }
            else if (arg1.Equals("Corolisships", StringComparison.InvariantCultureIgnoreCase))
            {
                FileInfo[] allFiles = Directory.EnumerateFiles(args.Next, "*.json", SearchOption.AllDirectories).Select(f => new FileInfo(f)).OrderBy(p => p.LastWriteTime).ToArray();


                string ret = CorolisData.ProcessShips(allFiles);
                Console.WriteLine(ret);
            }
            else if (arg1.Equals("Corolisship", StringComparison.InvariantCultureIgnoreCase))
            {
                FileInfo[] allFiles = Directory.EnumerateFiles(".", args.Next, SearchOption.AllDirectories).Select(f => new FileInfo(f)).OrderBy(p => p.LastWriteTime).ToArray();


                string ret = CorolisData.ProcessShips(allFiles);
                Console.WriteLine(ret);
            }
            else if (arg1.Equals("Corolismodules", StringComparison.InvariantCultureIgnoreCase))
            {
                FileInfo[] allFiles = Directory.EnumerateFiles(args.Next, "*.json", SearchOption.AllDirectories).Select(f => new FileInfo(f)).OrderBy(p => p.LastWriteTime).ToArray();

                string ret = CorolisData.ProcessModules(allFiles);
                Console.WriteLine(ret);
            }
            else if (arg1.Equals("Corolismodule", StringComparison.InvariantCultureIgnoreCase))
            {
                FileInfo[] allFiles = Directory.EnumerateFiles(".", args.Next, SearchOption.AllDirectories).Select(f => new FileInfo(f)).OrderBy(p => p.LastWriteTime).ToArray();

                string ret = CorolisData.ProcessModules(allFiles);
                Console.WriteLine(ret);
            }
            else if (arg1.Equals("CorolisEng", StringComparison.InvariantCultureIgnoreCase))
            {
                string ret = CorolisEngineering.ProcessEngineering(args.Next);
                Console.WriteLine(ret);
            }
            else if (arg1.Equals("FrontierData", StringComparison.InvariantCultureIgnoreCase))
            {
                string ret = FrontierData.Process(args.Next);
                Console.WriteLine(ret);
            }
            else
            {
                Journal.JournalEntry(arg1, args.Next, args, repeatdelay);
            }
        }