private static DesignSectionInfo GetDesignSectionInfoFromRow( Row row, SQLiteConnection db, AssetDatabase assets) { int integer = row[0].SQLiteValueToInteger(); string filename = row[1].SQLiteValueToString(); DesignSectionInfo designSection = new DesignSectionInfo() { ID = integer, FilePath = filename, ShipSectionAsset = assets.GetShipSectionAsset(filename), WeaponBanks = DesignsCache.GetWeaponBankInfosForDesignSection(db, integer).ToList <WeaponBankInfo>(), Techs = DesignsCache.GetTechsForDesignSection(db, integer).ToList <int>() }; List <DesignModuleInfo> list = DesignsCache.GetModuleInfosForDesignSection(db, designSection).ToList <DesignModuleInfo>(); designSection.Modules = new List <DesignModuleInfo>(); foreach (LogicalModuleMount module in designSection.ShipSectionAsset.Modules) { LogicalModuleMount mount = module; DesignModuleInfo designModuleInfo = list.FirstOrDefault <DesignModuleInfo>((Func <DesignModuleInfo, bool>)(x => x.MountNodeName == mount.NodeName)); if (designModuleInfo != null) { designSection.Modules.Add(designModuleInfo); list.Remove(designModuleInfo); } } return(designSection); }
private static IEnumerable <DesignModuleInfo> GetModuleInfosForDesignSection( SQLiteConnection db, DesignSectionInfo designSection) { foreach (Row row in db.ExecuteTableQuery(string.Format(Queries.GetDesignModuleInfos, (object)designSection.ID.ToSQLiteValue()), true)) { yield return(DesignsCache.GetDesignModuleInfoFromRow(db, row, designSection)); } }
internal static DesignModuleInfo GetDesignModuleInfoFromRow( SQLiteConnection db, Row row, DesignSectionInfo designSection) { int integer = row[0].SQLiteValueToInteger(); row[1].SQLiteValueToInteger(); DesignModuleInfo designModuleInfo1 = new DesignModuleInfo(); designModuleInfo1.ID = integer; designModuleInfo1.DesignSectionInfo = designSection; designModuleInfo1.ModuleID = row[2].SQLiteValueToInteger(); designModuleInfo1.WeaponID = row[3].SQLiteValueToNullableInteger(); designModuleInfo1.MountNodeName = row[4].SQLiteValueToString(); DesignModuleInfo designModuleInfo2 = designModuleInfo1; int?nullableInteger = row[5].SQLiteValueToNullableInteger(); ModuleEnums.StationModuleType?nullable = nullableInteger.HasValue ? new ModuleEnums.StationModuleType?((ModuleEnums.StationModuleType)nullableInteger.GetValueOrDefault()) : new ModuleEnums.StationModuleType?(); designModuleInfo2.StationModuleType = nullable; designModuleInfo1.DesignID = row.Count <string>() > 6 ? row[6].SQLiteValueToNullableInteger() : new int?(); designModuleInfo1.PsionicAbilities = DesignsCache.GetModulePsionicInfosByDesignModule(db, integer).ToList <ModulePsionicInfo>(); return(designModuleInfo1); }