Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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));
     }
 }
Exemplo n.º 3
0
        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);
        }