public static Module ModuleFromProfile(string name, dynamic json) { long id = (long)json["module"]["id"]; Module module = ModuleDefinitions.ModuleFromEliteID(id); if (module.Name == null) { // Unknown module; log an error so that we can update the definitions DataProviderService.LogError("No definition for ship module " + json["module"].ToString()); } module.Cost = (long)json["module"]["value"]; module.Enabled = (bool)json["module"]["on"]; module.Priority = (int)json["module"]["priority"]; // Be sensible with health - round it unless it's very low decimal Health = (decimal)json["module"]["health"] / 10000; if (Health < 5) { module.Health = Math.Round(Health, 1); } else { module.Health = Math.Round(Health); } if (json["module"]["modifiers"] != null && firstRun) { DataProviderService.LogError("Module with modification " + json["module"].ToString()); } return(module); }
public static Module ModuleFromJson(string name, JObject json) { long id = (long)json["module"]["id"]; Module module = ModuleDefinitions.ModuleFromEliteID(id); if (module.name == null) { // Unknown module; log an error so that we can update the definitions Logging.Error("No definition for ship module", json["module"].ToString(Formatting.None)); } module.price = (long)json["module"]["value"]; module.enabled = (bool)json["module"]["on"]; module.priority = (int)json["module"]["priority"]; // Be sensible with health - round it unless it's very low decimal Health = (decimal)json["module"]["health"] / 10000; if (Health < 5) { module.health = Math.Round(Health, 1); } else { module.health = Math.Round(Health); } // Flag if module has modifications if (json["module"]["modifiers"] != null) { module.modified = true; } return(module); }
private void sendOutfittingInformation() { if (EDDI.Instance.CurrentStation != null && EDDI.Instance.CurrentStation.outfitting != null) { List <string> eddnModules = new List <string>(); foreach (Module module in EDDI.Instance.CurrentStation.outfitting) { if ((!ModuleDefinitions.IsPP(module)) && (module.EDName.StartsWith("Int_") || module.EDName.StartsWith("Hpt_") || module.EDName.Contains("_Armour_")) && (!(module.EDName == "Int_PlanetApproachSuite"))) { eddnModules.Add(module.EDName); } } // Only send the message if we have modules if (eddnModules.Count > 0) { IDictionary <string, object> data = new Dictionary <string, object>(); data.Add("timestamp", DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")); data.Add("systemName", EDDI.Instance.CurrentStation.systemname); data.Add("stationName", EDDI.Instance.CurrentStation.name); data.Add("modules", eddnModules); EDDNBody body = new EDDNBody(); body.header = generateHeader(); body.schemaRef = "https://eddn.edcd.io/schemas/outfitting/2" + (EDDI.Instance.inBeta ? "/test" : ""); body.message = data; sendMessage(body); } } }
// Obtain the list of outfitting modules from the profile public static List <Module> OutfittingFromProfile(dynamic json) { List <Module> Modules = new List <Module>(); if (json["lastStarport"] != null && json["lastStarport"]["modules"] != null) { foreach (dynamic moduleJson in json["lastStarport"]["modules"]) { dynamic module = moduleJson.Value; // Not interested in paintjobs, decals, ... if (module["category"] == "weapon" || module["category"] == "module") { Module Module = ModuleDefinitions.ModuleFromEliteID((long)module["id"]); if (Module.Name == null) { // Unknown module; log an error so that we can update the definitions DataProviderService.LogError("No definition for outfitting module " + module.ToString()); } Module.Cost = module["cost"]; Modules.Add(Module); } } } return(Modules); }
// Obtain the list of outfitting modules from the profile public static List <Module> OutfittingFromProfile(dynamic json) { List <Module> Modules = new List <Module>(); if (json["lastStarport"] != null && json["lastStarport"]["modules"] != null) { foreach (dynamic moduleJson in json["lastStarport"]["modules"]) { dynamic module = moduleJson.Value; // Not interested in paintjobs, decals, ... if (module["category"] == "weapon" || module["category"] == "module") { Module Module = ModuleDefinitions.ModuleFromEliteID((long)module["id"]); if (Module.name == null) { // Unknown module; log an error so that we can update the definitions Logging.Error("No definition for outfitting module", module.ToString(Formatting.None)); // Set the name from the JSON Module.EDName = (string)module["name"]; } Module.price = module["cost"]; Modules.Add(Module); } } } return(Modules); }
// Obtain the list of outfitting modules from the profile public static List <Module> OutfittingFromProfile(dynamic json) { List <Module> Modules = new List <Module>(); if (json["lastStarport"] != null && json["lastStarport"]["modules"] != null) { List <Module> moduleErrors = new List <Module>(); foreach (dynamic moduleJson in json["lastStarport"]["modules"]) { dynamic module = moduleJson.Value; // Not interested in paintjobs, decals, ... if (module["category"] == "weapon" || module["category"] == "module" || module["category"] == "utility") { Module Module = ModuleDefinitions.ModuleFromEliteID((long)module["id"]); if (Module.name == null) { // Unknown module; batch and report so that we can update the definitions moduleErrors.Add(module); // Set the name from the JSON Module.EDName = (string)module["name"]; } Module.price = module["cost"]; Modules.Add(Module); } } if (moduleErrors.Count > 0) { Logging.Report("Module definition errors", JsonConvert.SerializeObject(moduleErrors)); } } return(Modules); }
private void ReadModuleDefinitions(XmlReader reader) { reader.ReadStartElement("moduleDefinitions"); do { reader.ReadStartElement("moduleDefinition"); ModuleDefinitionInfo moduleDefinition = new ModuleDefinitionInfo(); moduleDefinition.ReadXml(reader); ModuleDefinitions.Add(moduleDefinition.FriendlyName, moduleDefinition); } while (reader.ReadToNextSibling("moduleDefinition")); }
protected virtual ModuleDefinitions GetStaticEntities(Transaction trans, ModuleDefinitions modules, IEnumerable <GlobalObjectKey> entityKeys) { foreach (var entityGlobalKey in entityKeys) { var eSpaceKey = entityGlobalKey.OwnerKey.AsGuid.ToString(); var entityKey = entityGlobalKey.Key.AsGuid.ToString(); var staticRecords = GetStaticRecords(trans, entityGlobalKey); var module = modules.GetOrAdd(eSpaceKey, () => new ModuleDefinition()); var staticEntities = module.StaticEntities ?? new StaticEntities(); staticEntities.Add(entityKey, staticRecords); } return(modules); }
/// ----------------------------------------------------------------------------- /// <summary> /// Reads a Module Definitions from an XmlReader /// </summary> /// <param name="reader">The XmlReader to use</param> /// <history> /// [cnurse] 01/17/2008 Created /// </history> /// ----------------------------------------------------------------------------- private void ReadModuleDefinitions(XmlReader reader) { reader.ReadStartElement("moduleDefinitions"); do { reader.ReadStartElement("moduleDefinition"); //Create new ModuleDefinition object var moduleDefinition = new ModuleDefinitionInfo(); //Load it from the Xml moduleDefinition.ReadXml(reader); //Add to the collection ModuleDefinitions.Add(moduleDefinition.FriendlyName, moduleDefinition); } while (reader.ReadToNextSibling("moduleDefinition")); }
public ServiceExecutionResult Execute() { if (Types == null) { if (ModuleDefinitions == null) { throw new ServiceExecutionException( "ModuleDefinitions must be specified to parser type environment."); } else { Types = ModuleDefinitions .SelectMany(m => m.Types) .SelectMany(t => t.GetAllNestedTypes()); } } var tenv = ComputeTypeEnvironment(); return(new TenvParserResult(tenv)); }
public static Module ModuleFromProfile(string name, JObject json) { long id = (long)json["module"]["id"]; Module module = ModuleDefinitions.ModuleFromEliteID(id); if (module.name == null) { // Unknown module; log an error so that we can update the definitions Logging.Error("No definition for ship module", json["module"].ToString(Formatting.None)); } module.price = (long)json["module"]["value"]; module.enabled = (bool)json["module"]["on"]; module.priority = (int)json["module"]["priority"]; // Be sensible with health - round it unless it's very low decimal Health = (decimal)json["module"]["health"] / 10000; if (Health < 5) { module.health = Math.Round(Health, 1); } else { module.health = Math.Round(Health); } if (json["module"]["modifiers"] != null) { Dictionary <int, Modification> modifications = new Dictionary <int, Modification>(); foreach (dynamic modifier in json["module"]["modifiers"]["modifiers"]) { Modification.Modify((string)modifier["name"], (decimal)modifier["value"], ref modifications); } Modification.FixUpModifications(module, modifications); module.modifications = modifications.Values.ToList(); } return(module); }
public Data(string[] entityModuleNames) { this.EntityModuleNames = entityModuleNames; this.ModuleDefinitions = new ModuleDefinitions(); }