Example #1
0
        internal static int InsertDesignModuleInfo(SQLiteConnection db, DesignModuleInfo value)
        {
            SQLiteConnection sqLiteConnection   = db;
            string           insertDesignModule = Queries.InsertDesignModule;

            object[] objArray1 = new object[6]
            {
                (object)value.DesignSectionInfo.ID.ToSQLiteValue(),
                (object)value.MountNodeName.ToSQLiteValue(),
                (object)value.ModuleID.ToSQLiteValue(),
                (object)value.WeaponID.ToNullableSQLiteValue(),
                null,
                null
            };
            object[] objArray2 = objArray1;
            ModuleEnums.StationModuleType?stationModuleType = value.StationModuleType;
            string nullableSqLiteValue = (stationModuleType.HasValue ? new int?((int)stationModuleType.GetValueOrDefault()) : new int?()).ToNullableSQLiteValue();

            objArray2[4] = (object)nullableSqLiteValue;
            objArray1[5] = (object)value.DesignID.ToNullableSQLiteValue();
            object[] objArray3 = objArray1;
            string   query     = string.Format(insertDesignModule, objArray3);
            int      num       = sqLiteConnection.ExecuteIntegerQuery(query);

            if (value.PsionicAbilities == null)
            {
                value.PsionicAbilities = new List <ModulePsionicInfo>();
            }
            foreach (ModulePsionicInfo psionicAbility in value.PsionicAbilities)
            {
                psionicAbility.ID = db.ExecuteIntegerQuery(string.Format(Queries.InsertModulePsionicAbility, (object)num.ToSQLiteValue(), (object)((int)psionicAbility.Ability).ToSQLiteValue()));
            }
            return(num);
        }
Example #2
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);
        }
Example #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);
        }