public IManifestEntry ProcessManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) { var manifestEntry = new ManifestEntry(manifest, entryType, path, jsonObject, referenceFinderService); var di = new DirectoryInfo(Path.Combine(manifest.Mod.SourceDirectoryPath, manifestEntry.Path)); if (!di.Exists) { return(manifestEntry); } di.GetFiles("*.*").ToList().ForEach( fi => { var identifier = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length); var objectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( entryType, new ObjectDefinitionDescription(identifier, identifier, jsonObject), (JObject)jsonObject, fi.FullName, referenceFinderService); manifestEntry.Objects.Add(objectDefinition); }); return(manifestEntry); }
public ReferenceFinderDashboardController() { _ReferenceFinderDocumentTypesService = new ReferenceFinderDocumentTypesService(ApplicationContext.Current.Services);; _ReferenceFinderMediaService = new ReferenceFinderMediaService(UmbracoContext.Current); _ReferenceFinderContentService = new ReferenceFinderContentService(UmbracoContext.Current); _ReferenceFinderService = new ReferenceFinderService(_ReferenceFinderContentService, _ReferenceFinderMediaService); }
public IManifestEntry ProcessManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) { var manifestEntry = new ManifestEntry(manifest, entryType, path, jsonObject, referenceFinderService); var assetBundleDirectory = Path.Combine(manifest.Mod.SourceDirectoryPath, path); var di = new DirectoryInfo(assetBundleDirectory); if (!di.Exists) { throw new InvalidProgramException($"Expected asset bundle directory at [{di.FullName}]."); } di.GetFiles("*.").ToList().ForEach( fi => { var objectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( entryType, new ObjectDefinitionDescription(fi.Name, fi.Name, jsonObject), (JObject)jsonObject, fi.FullName, referenceFinderService); manifestEntry.Objects.Add(objectDefinition); }); return(manifestEntry); }
public VehicleChassisObjectDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, IReferenceFinderService referenceFinderService) : base(objectType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService) { }
public HardpointDataObjectDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, IReferenceFinderService referenceFinderService) : base(objectType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService) { }
public SimGameConstantsObjectDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, IReferenceFinderService referenceFinderService) : base(objectType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService) { this.AddMetaData(); }
public LanceSlotDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, long lanceSlotNumber, IReferenceFinderService referenceFinderService) : base(objectType, objectDescription, jsonObject as JObject, filePath, referenceFinderService) { this.LanceSlotNumber = lanceSlotNumber; }
public LanceDefObjectDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, IReferenceFinderService referenceFinderService, IFactionService factionService) : base(objectType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService) { this.factionService = factionService; }
public ModService( IMessageService messageService, IManifestEntryProcessorFactory manifestEntryProcessorFactory, ILogger logger, IReferenceFinderService referenceFinderService) { this.messageService = messageService; this.manifestEntryProcessorFactory = manifestEntryProcessorFactory; this.logger = logger; this.referenceFinderService = referenceFinderService; this.ModCollection = new ModCollection("Unknown Mod Collection", string.Empty); }
public ManifestNode(IManifest modManifest, MtmTreeViewItem parent, IReferenceFinderService referenceFinderService) : base(parent, modManifest, referenceFinderService) { this.Manifest = modManifest; var groupedManifestEntries = this.Manifest.Entries.GroupBy(entry => entry.EntryType).OrderBy(entries => entries.Key); foreach (var groupedManifestEntry in groupedManifestEntries) { this.Children.Add(new ManifestEntryNode(this, groupedManifestEntry.Select(entry => entry).ToList(), groupedManifestEntry.Key, referenceFinderService)); } }
public ManifestEntryNode( IMtmTreeViewItem parent, List <IManifestEntry> manifestEntries, List <HashSet <IObjectDefinition> > objectLists, IReferenceFinderService referenceFinderService) : base(parent, manifestEntries, referenceFinderService) { this.ManifestEntries = manifestEntries; objectLists.ForEach( list => list.OrderBy(definition => definition.Name).ToList().ForEach( definition => this.Children.Add(new ObjectDefinitionNode(this, definition, referenceFinderService)))); }
public IObjectDefinition ProcessObjectDefinition( IManifestEntry manifestEntry, DirectoryInfo di, FileInfo fi, IReferenceFinderService referenceFinderService, ObjectType?objectTypeOverride = null) { var csvText = File.ReadAllText(fi.FullName); var itemCollection = new ItemCollectionObjectDefinition(ObjectType.ItemCollectionDef, csvText, fi.FullName); itemCollection.AddMetaData(); return(itemCollection); }
public ModNode(IMod mod, MtmTreeViewItem parent, IReferenceFinderService referenceFinderService) : base(parent, mod, referenceFinderService) { this.Mod = mod; if (this.Mod.Manifest != null) { this.Manifest = new ManifestNode(mod.Manifest, this, referenceFinderService); this.Children.Add(this.Manifest); } this.Mod.ResourceFiles.ToList() .ForEach(definition => this.Children.Add(new ResourceNode(this, definition, referenceFinderService))); }
public MtmTreeViewItem(IMtmTreeViewItem parent, object o, IReferenceFinderService referenceFinderService) { this.Parent = parent; this.Object = o; this.ReferenceFinderService = referenceFinderService; if (this.Object is IReferenceableObject referenceableObject) { DictRefsToTreeViewItems.Add(referenceableObject, this); } if (parent != null) { this.PropertyChanged += this.Parent.IncestPropertyChanged; } }
public ManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) : base((JObject)jsonObject, ObjectType.ManifestEntry) { this.referenceFinderService = referenceFinderService; this.Manifest = manifest; this.EntryType = entryType; this.Path = path; this.Objects = new HashSet <IObjectDefinition>(); this.Resources = new HashSet <IResourceDefinition>(); }
public ObjectDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, IReferenceFinderService referenceFinderService) : base(objectType, filePath, (JObject)jsonObject) { this.ReferenceFinderService = referenceFinderService; this.ObjectDescription = objectDescription; this.MetaData = new Dictionary <string, dynamic>(); this.Tags = new Dictionary <string, List <string> >(); this.DependencyRelationships = referenceFinderService.GetDependencyRelationships(this.ObjectType); this.DependentRelationships = referenceFinderService.GetDependentRelationships(this.ObjectType); }
public LanceSlotDefinition( ObjectType objectType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, long lanceSlotNumber, IReferenceFinderService referenceFinderService, LanceDefObjectDefinition lanceDefObjectDefinition, IFactionService factionService) : base(objectType, objectDescription, jsonObject as JObject, filePath, referenceFinderService) { this.LanceSlotNumber = lanceSlotNumber; this.LanceDefObjectDefinition = lanceDefObjectDefinition; this.factionService = factionService; this.factionService.GetFactions().ForEach(faction => this.factionUnitDictionary.Add(faction, 0)); }
public IObjectDefinition ProcessObjectDefinition( IManifestEntry manifestEntry, DirectoryInfo di, FileInfo fi, IReferenceFinderService referenceFinderService, ObjectType?objectTypeOverride = null) { dynamic json = JsonConvert.DeserializeObject(File.ReadAllText(fi.FullName)); return(ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( manifestEntry.EntryType, ProcessObjectDescription(json), json, fi.FullName, referenceFinderService)); }
public IManifestEntry ProcessManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) { var manifestEntry = new ManifestEntry(manifest, entryType, path, jsonObject, referenceFinderService); var di = new DirectoryInfo(Path.Combine(manifest.Mod.SourceDirectoryPath, manifestEntry.Path)); try { var files = di.EnumerateFiles(); if (entryType == ObjectType.CCDefaults && files.Count() > 1) { throw new InvalidProgramException( $"Encountered more than ONE CC settings files for a CC Manifest Entry at [{di.FullName}]"); } files.ToList().ForEach( file => { dynamic ccSettingsData = JsonConvert.DeserializeObject(File.ReadAllText(file.FullName)); foreach (var ccSetting in ccSettingsData.Settings) { var objectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( entryType, null, ccSetting, file.FullName, referenceFinderService); manifestEntry.Objects.Add(objectDefinition); } }); } catch (Exception ex) { this.logger.Error($"An exception occurred trying to process manifestEntry.", ex); } return(manifestEntry); }
public IManifestEntry ProcessManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) { var manifestEntry = new ManifestEntry(manifest, entryType, path, jsonObject, referenceFinderService); var objectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( entryType, new ObjectDefinitionDescription(null, null, null, null, (JObject)jsonObject), (JObject)jsonObject, path, referenceFinderService); manifestEntry.Objects.Add(objectDefinition); return(manifestEntry); }
public IObjectDefinition ProcessObjectDefinition( IManifestEntry manifestEntry, DirectoryInfo di, FileInfo fi, IReferenceFinderService referenceFinderService, ObjectType?objectTypeOverride = null) { if (fi.Extension != ".json") { Debug.WriteLine($"File {fi.FullName} is not a JSON file."); return(null); } dynamic json = JsonConvert.DeserializeObject(File.ReadAllText(fi.FullName)); return(ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( objectTypeOverride ?? manifestEntry.EntryType, ProcessObjectDescription(json.Description), json, fi.FullName, referenceFinderService)); }
public IManifestEntry ProcessManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) { var manifestEntry = new ManifestEntry(manifest, entryType, path, jsonObject, referenceFinderService); var objectDefinitionProcessor = ObjectDefinitionProcessorFactory.ObjectDefinitionProcessorFactorySingleton.Get(entryType); var targetDirectory = Path.Combine(manifest.Mod.SourceDirectoryPath, manifestEntry.Path); if (!Directory.Exists(targetDirectory)) { Debug.WriteLine($"Folder does not exist {targetDirectory}"); return(manifestEntry); } var di = new DirectoryInfo(targetDirectory); di.GetFiles("*.*", SearchOption.AllDirectories).ToList().ForEach( fi => { var objectDefinition = objectDefinitionProcessor.ProcessObjectDefinition( manifestEntry, di, fi, referenceFinderService); if (objectDefinition != null) { manifestEntry.Objects.Add(objectDefinition); } }); return(manifestEntry); }
public ModCopyModel( IModService modService, ILogger logger, IMtmMainModel mainModel, IReferenceFinderService referenceFinderService, IMessageService messageService) { this.modService = modService; this.logger = logger; this.ReferenceFinderService = referenceFinderService; this.MessageService = messageService; this.MainModel = mainModel; this.modService.PropertyChanged += this.ModServiceOnPropertyChanged; ResetSelectionsCommand = new ResetSelectionsCommand(this); SelectMechsFromDataFileCommand = new SelectMechsFromDataFileCommand(this); BuildCustomCollectionCommand = new BuildCustomCollectionCommand(this); ValidateLanceDefinitionsCommand = new ValidateLanceDefinitionsCommand(this); SelectVeesFromDataFileCommand = new SelectVeesFromDataFileCommand(this); ViewObjectSummaryWindow = new DelegatePluginCommand( () => { if (ObjectSummaryWindow == null) { ObjectSummaryWindow = new ObjectSummaryWindow(this); ObjectSummaryWindow.Topmost = true; ObjectSummaryWindow.Show(); } else { ObjectSummaryWindow.Activate(); } }, () => true, this, @"Show Object Summary Window"); }
public IManifestEntry ProcessManifestEntry( IManifest manifest, ObjectType entryType, string path, dynamic jsonObject, IReferenceFinderService referenceFinderService) { var manifestEntry = new ManifestEntry(manifest, entryType, path, jsonObject, referenceFinderService); var di = new DirectoryInfo(Path.Combine(manifest.Mod.SourceDirectoryPath, manifestEntry.Path)); var files = di.EnumerateFiles(); if (files.Count() > 1) { throw new InvalidProgramException( $"Encountered more than ONE CC settings files for a CC Manifest Entry at [{di.FullName}]"); } var file = files.First(); dynamic ccSettingsData = JsonConvert.DeserializeObject(File.ReadAllText(file.FullName)); foreach (var ccSetting in ccSettingsData.Settings) { var objectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( entryType, null, ccSetting, file.FullName, referenceFinderService); manifestEntry.Objects.Add(objectDefinition); } return(manifestEntry); }
public LanceDefNode(IMtmTreeViewItem parent, LanceDefObjectDefinition objectDefinition, IReferenceFinderService referenceFinderService) : base(parent, objectDefinition, referenceFinderService) { objectDefinition.LanceSlots.ForEach( definition => { var slot = new LanceSlotModel(definition, this, LanceDefNode.factionService); this.LanceSlots.Add(slot); slot.PropertyChanged += (sender, args) => { if (sender is LanceSlotModel && args.PropertyName == nameof(LanceSlotModel.ObjectStatus)) { this.OnPropertyChanged(nameof(this.ObjectStatus)); } }; }); }
public ModCollectionNode( IModCollection modCollection, MtmTreeViewItem parent, IReferenceFinderService referenceFinderService, bool preProcessRelationships = false) : base(parent, modCollection, referenceFinderService) { this.ModCollection = modCollection; this.ModCollection.Mods.OrderBy(mod => mod.Name).ToList().ForEach( mod => { var modNode = new ModNode(mod, this, referenceFinderService); this.Children.Add(modNode); modNode.PropertyChanged += (sender, args) => { this.OnPropertyChanged(nameof(this.TotalMods)); this.OnPropertyChanged(nameof(this.TotalModSize)); this.OnPropertyChanged(nameof(this.TotalModObjectCount)); this.OnPropertyChanged(nameof(this.TotalMechCount)); this.OnPropertyChanged(nameof(this.TotalVehicleCount)); this.OnPropertyChanged(nameof(this.TotalTurretCount)); this.OnPropertyChanged(nameof(this.TotalWeaponCount)); this.OnPropertyChanged(nameof(this.TotalUpgradeCount)); this.OnPropertyChanged(nameof(this.TotalCoolingCount)); }; }); // Hook up interdependent properties // When Pilots/Units are selected, notify lances // TODO: Formalize this into a modeled relationship so we can refactor properly // and reuse the concept. var lanceDependencyProperties = new List <ObjectType> { ObjectType.MechDef, ObjectType.TurretDef, ObjectType.VehicleDef, ObjectType.PilotDef }; var sourceObjects = this.AllChildren.Where( item => item.Object is IObjectDefinition obj && lanceDependencyProperties.Contains(obj.ObjectType)); var targetObjects = this.AllChildren.Where(item => item is LanceDefNode obj).Cast <LanceDefNode>() .SelectMany(node => node.LanceSlots); targetObjects.AsParallel().ForAll( // targetObjects.ToList().ForEach( target => { target.LoadEligibleUnitsAndPilots(); sourceObjects.AsParallel().ForAll( source => { var propertyName = nameof(LanceSlotModel.SelectedEligibleUnits); if (((IObjectDefinition)source.Object).ObjectType == ObjectType.PilotDef) { propertyName = nameof(LanceSlotModel.SelectedEligiblePilots); } source.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(IMtmTreeViewItem.IsChecked)) { target.OnPropertyChanged(propertyName); target.OnPropertyChanged(nameof(LanceSlotModel.ObjectStatus)); } }; }); }); this.IsExpanded = true; }
public ResourceNode(IMtmTreeViewItem parent, IResourceDefinition resourceDefinition, IReferenceFinderService referenceFinderService) : base(parent, resourceDefinition, referenceFinderService) { }
public IObjectDefinition ProcessObjectDefinition(IManifestEntry manifestEntry, DirectoryInfo di, FileInfo fi, IReferenceFinderService referenceFinderService, ObjectType?objectTypeOverride = null) { if (fi.Extension != ".json") { Debug.WriteLine($"File {fi.FullName} is not a JSON file."); return(null); } // add missing commas, this only fixes if there is a newline var rgx = new Regex(@"(\]|\}|""|[A-Za-z0-9])\s*\n\s*(\[|\{|"")", RegexOptions.Singleline); var commasAdded = rgx.Replace(File.ReadAllText(fi.FullName), "$1,\n$2"); dynamic json = JsonConvert.DeserializeObject(commasAdded); if (manifestEntry.EntryType == ObjectType.AdvancedJSONMerge) { var targetIds = new List <string>(); if (json.TargetID != null) { targetIds.Add(json.TargetID.ToString()); } else { foreach (var id in json.TargetIDs) { targetIds.Add(id.ToString()); } } foreach (var targetId in targetIds) { if (referenceFinderService.ReferenceableObjectProvider.GetReferenceableObjects().FirstOrDefault(o => o is ObjectDefinition objectDefinition && (objectDefinition.Id == targetId)) is ObjectDefinition parsedObject) { foreach (var instruction in json.Instructions) { var path = instruction.JSONPath.ToString(); var action = instruction.Action.ToString(); var value = string.Empty; if (action != "Remove") { value = instruction.Value.ToString(); } IEnumerable <JToken> tokens = ((JObject)parsedObject.JsonObject).SelectTokens(path); tokens.ToList().ForEach(token => token = value); } parsedObject.MetaData.Clear(); parsedObject.Tags.Clear(); parsedObject.AddMetaData(); } else { // Schedule a post completion update... var i = 666; } }
public static object ProcessFile( IManifestEntry manifestEntry, DirectoryInfo di, string filename, string fileData, string hostDirectory, IReferenceFinderService referenceFinderService, ILogger logger) { var fi = new FileInfo(filename); if (fi.Extension == ".json") { var commasAdded = StreamingAssetProcessor.Regex.Replace(fileData, "$1,\n$2"); // Handle json object definition... IObjectDefinition objectDefinition = null; dynamic jsonData = JsonConvert.DeserializeObject( commasAdded, new JsonSerializerSettings { Error = (sender, args) => { logger.Warn($"Error deserializing [{fi.FullName}]", args.ErrorContext.Error); args.ErrorContext.Handled = true; } }); if (jsonData == null) { return(null); } var description = ObjectDefinitionDescription.CreateDefault(jsonData.Description); var directoryMarkers = new List <string>() { "conversationbuckets", "contracts", "events" }; directoryMarkers.ForEach( s => { if (di.FullName.Split('\\').Any(part => part.ToLower() == s.ToLower())) { hostDirectory = s; } }); if (manifestEntry.Manifest.Mod.IsBattleTech && streamingAssetsDirectoryToObjectTypes.ContainsKey(hostDirectory.ToLower())) { var objectType = streamingAssetsDirectoryToObjectTypes[hostDirectory.ToLower()]; var objectDefinitionProcessor = ObjectDefinitionProcessorFactory.ObjectDefinitionProcessorFactorySingleton.Get(objectType); return(objectDefinitionProcessor.ProcessObjectDefinition( manifestEntry, di, fi, referenceFinderService, objectType)); } // infer the object type from the current sub-directory. switch (hostDirectory.ToLower()) { case "abilities": case "constants": case "milestones": case "events": case "cast": case "behaviorvariables": case "buildings": case "hardpoints": case "factions": case "lifepathnode": case "campaign": objectDefinition = new ObjectDefinition( ObjectType.StreamingAssetsData, description, jsonData, fi.FullName, referenceFinderService); break; case "pilot": objectDefinition = new PilotObjectDefinition( ObjectType.PilotDef, description, jsonData, fi.FullName, referenceFinderService); break; case "simgameconstants": objectDefinition = new SimGameConstantsObjectDefinition( ObjectType.SimGameConstants, ObjectDefinitionDescription.CreateDefault(jsonData.Description), jsonData, fi.FullName, referenceFinderService); break; /*throw new InvalidProgramException( * $"Unknown streaming assets folder type detected [{hostDirectory}]");*/ } return(objectDefinition); } if (di.FullName.ToLower().Contains("emblems")) { hostDirectory = "emblems"; } else if (di.FullName.ToLower().Contains("sprites")) { hostDirectory = "sprites"; } else if (di.FullName.ToLower().Contains("conversationBuckets")) { hostDirectory = "conversationBuckets"; } var identifier = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length); switch (hostDirectory.ToLower()) { case "assetbundles": var assetBundleDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( ObjectType.AssetBundle, new ObjectDefinitionDescription(fi.Name, fi.Name, null), null, fi.FullName, referenceFinderService); return(assetBundleDefinition); case "mechportraits": var objectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( ObjectType.Sprite, new ObjectDefinitionDescription(identifier, identifier, null), null, fi.FullName, referenceFinderService); return(objectDefinition); case "itemcollections": var itemCollection = new ItemCollectionObjectDefinition( ObjectType.ItemCollectionDef, fileData, fi.FullName); itemCollection.AddMetaData(); return(itemCollection); case "emblems": var texIdentifier = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length); var resourceObjectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( ObjectType.Texture2D, new ObjectDefinitionDescription(texIdentifier, texIdentifier, null), null, fi.FullName, referenceFinderService); return(resourceObjectDefinition); case "sprites": var spriteIdentifier = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length); var spriteObject = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( ObjectType.Sprite, new ObjectDefinitionDescription(spriteIdentifier, spriteIdentifier, null), null, fi.FullName, referenceFinderService); return(spriteObject); default: if (manifestEntry.Manifest.Mod.IsBattleTech) { return(null); } IResourceDefinition resourceDefinition; // Handle resource file style definition... switch (fi.Name) { default: resourceDefinition = new ResourceDefinition( ObjectType.UnhandledResource, fi.FullName, fi.Name, identifier); resourceDefinition.AddMetaData(); break; } return(resourceDefinition); } }
public IObjectDefinition Get( ObjectType entryType, IObjectDefinitionDescription objectDescription, dynamic jsonObject, string filePath, IReferenceFinderService referenceFinderService) { IObjectDefinition objectDefinition; switch (entryType) { case ObjectType.Texture2D: case ObjectType.Sprite: objectDefinition = new ResourceObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.AssetBundle: objectDefinition = new AssetBundleObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.Prefab: objectDefinition = new PrefabObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.AmmunitionBoxDef: objectDefinition = new AmmunitionBoxObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.AmmunitionDef: objectDefinition = new AmmunitionObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.CCDefaults: objectDefinition = new CcDefaultsObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.CCCategories: objectDefinition = new CcCategoryObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.ChassisDef: objectDefinition = new ChassisObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.MechDef: objectDefinition = new MechObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.PilotDef: objectDefinition = new PilotObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.SimGameEventDef: objectDefinition = new SimGameEventObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.StreamingAssetsData: objectDefinition = new SimGameConstantsObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.TurretChassisDef: objectDefinition = new TurretChassisObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.TurretDef: objectDefinition = new TurretObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.UpgradeDef: objectDefinition = new UpgradeObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.VehicleChassisDef: objectDefinition = new VehicleChassisObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.VehicleDef: objectDefinition = new VehicleObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.WeaponDef: objectDefinition = new WeaponObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.ContractOverride: objectDefinition = new ContractObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.FactionDef: objectDefinition = new FactionObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.CastDef: objectDefinition = new CastObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.ConversationContent: objectDefinition = new DialogObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); // objectDefinition = new ConversationObjectDefinition(entryType, objectDescription, (JObject)jsonObject, filePath); break; case ObjectType.DialogBucketDef: objectDefinition = new ConversationObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); // objectDefinition = new DialogObjectDefinition(entryType, objectDescription, (JObject)jsonObject, filePath); break; case ObjectType.FlashpointDef: objectDefinition = new FlashpointObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.HeraldryDef: objectDefinition = new HeraldryObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.SimGameMilestoneSet: objectDefinition = new MilestoneSetObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.HardpointDataDef: objectDefinition = new HardpointDataObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.ShopDef: objectDefinition = new ShopDefObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; case ObjectType.LanceDef: objectDefinition = new LanceDefObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService, factionService); break; case ObjectType.TraitDef: case ObjectType.AbilityDef: case ObjectType.MovementCapabilitiesDef: case ObjectType.ApplicationConstants: case ObjectType.CCTagRestrictions: case ObjectType.SimGameConversations: case ObjectType.HeatSinkDef: case ObjectType.JumpJetDef: case ObjectType.BaseDescriptionDef: case ObjectType.StarSystemDef: case ObjectType.MEBonusDescriptions: case ObjectType.MECriticalEffects: case ObjectType.ShipModuleUpgrade: case ObjectType.PathingCapabilitiesDef: case ObjectType.DesignMaskDef: case ObjectType.BackgroundDef: case ObjectType.SimGameMilestoneDef: case ObjectType.DebugSettings: case ObjectType.SimGameStatDescDef: case ObjectType.GameTip: case ObjectType.SoundBank: case ObjectType.SimGameConstants: objectDefinition = new ObjectDefinition( entryType, objectDescription, (JObject)jsonObject, filePath, referenceFinderService); break; default: throw new InvalidProgramException(); // objectDefinition = new ObjectDefinition(entryType, objectDescription, (JObject)jsonObject, filePath); // break; } objectDefinition.AddMetaData(); return(objectDefinition); }