public static void StatusSet(CommandArgs args) { long flags = 0; string v; while ((v = args.Next) != null) { if (Enum.TryParse <StatusFlagsShip>(v, true, out StatusFlagsShip s)) { flags |= 1L << (int)s; } else if (Enum.TryParse <StatusFlagsSRV>(v, true, out StatusFlagsSRV sv)) { flags |= 1L << (int)sv; } else if (Enum.TryParse <StatusFlagsAll>(v, true, out StatusFlagsAll a)) { flags |= 1L << (int)a; } else if (Enum.TryParse <StatusFlagsShipType>(v, true, out StatusFlagsShipType st)) { flags |= 1L << (int)st; } else if (v.Equals("Supercruise", StringComparison.InvariantCultureIgnoreCase)) { flags = (1L << (int)StatusFlagsShipType.InMainShip) | (1L << (int)StatusFlagsShip.Supercruise) | (1L << (int)StatusFlagsAll.ShieldsUp); } else if (v.Equals("Landed", StringComparison.InvariantCultureIgnoreCase)) { flags = (1L << (int)StatusFlagsShipType.InMainShip) | (1L << (int)StatusFlagsShip.Landed) | (1L << (int)StatusFlagsShip.LandingGear) | (1L << (int)StatusFlagsAll.ShieldsUp) | (1L << (int)StatusFlagsAll.Lights); } else if (v.Equals("Fight", StringComparison.InvariantCultureIgnoreCase)) { flags = (1L << (int)StatusFlagsShipType.InMainShip) | (1L << (int)StatusFlagsAll.ShieldsUp) | (1L << (int)StatusFlagsShip.HardpointsDeployed); } } string j = "{ " + Journal.TimeStamp() + Journal.F("event", "Status") + Journal.F("Flags", flags) + Journal.F("Pips", new int[] { 4, 8, 0 }) + Journal.F("FireGroup", 1) + Journal.FF("GuiFocus", 0) + " }"; File.WriteAllText("Status.json", j); Console.Write(j); }
public static void StatusMove(CommandArgs args) { long flags = 0; double latitude = 0; double longitude = 0; double latstep = 0; double longstep = 0; double heading = 0; double headstep = 1; int steptime = 100; if (!double.TryParse(args.Next, out latitude) || !double.TryParse(args.Next, out longitude) || !double.TryParse(args.Next, out latstep) || !double.TryParse(args.Next, out longstep) || !double.TryParse(args.Next, out heading) || !double.TryParse(args.Next, out headstep) || !int.TryParse(args.Next, out steptime)) { Console.WriteLine("** More/Wrong parameters: statusjson lat long latstep lonstep heading headstep steptimems"); return; } while (true) { //{ "timestamp":"2018-03-01T21:51:36Z", "event":"Status", "Flags":18874376, //"Pips":[4,8,0], "FireGroup":1, "GuiFocus":0, "Latitude":-18.978821, "Longitude":-123.642052, "Heading":308, "Altitude":20016 } string j = "{ " + Journal.TimeStamp() + Journal.F("event", "Status") + Journal.F("Flags", flags) + Journal.F("Pips", new int[] { 4, 8, 0 }) + Journal.F("FireGroup", 1) + Journal.F("GuiFocus", 0) + Journal.F("Latitude", latitude) + Journal.F("Longitude", longitude) + Journal.F("Heading", heading) + Journal.F("Altitude", 20) + "}"; File.WriteAllText("Status.json", j); System.Threading.Thread.Sleep(steptime); if (Console.KeyAvailable && Console.ReadKey().Key == ConsoleKey.Escape) { break; } latitude += latstep; longitude = longitude + longstep; heading = (heading + headstep) % 360; } }
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 { Journal.JournalEntry(arg1, args.Next, args, repeatdelay); } }