public static EDDNJournalScan From(XScanHeader jscanstruct, int scanid, BodyScan scan, string jsonextra)
 {
     return(new EDDNJournalScan
     {
         BodyScanId = scanid,
         ScanData = scanid == 0 ? scan : null,
         GatewayTimestamp = jscanstruct.GatewayTimestamp,
         ScanTimestampSeconds = jscanstruct.ScanTimestampSeconds,
         SoftwareVersionId = jscanstruct.SoftwareVersionId,
         DistanceFromArrivalLS = jscanstruct.DistanceFromArrivalLS,
         ScanTypeId = jscanstruct.ScanTypeId == 0 ? (byte?)null : jscanstruct.ScanTypeId,
         HasBodyID = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasBodyID),
         HasParents = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasParents),
         HasSystemAddress = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasSystemAddress),
         HasAxialTilt = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasAxialTilt),
         HasComposition = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasComposition),
         HasLuminosity = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasLuminosity),
         IsBasicScan = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.IsBasicScan),
         IsMaterialsDict = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.IsMaterialsDict),
         HasAtmosphereComposition = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasAtmosphereComposition),
         HasAtmosphereType = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.HasAtmosphereType),
         IsPos3SigFig = jscanstruct.Flags.HasFlag(XScanHeader.ScanFlags.IsPos3SigFig),
         JsonExtra = jsonextra
     });
 }
        public void Update(XModels.XScanClass scandata, SystemBody dbbody, BodyScan dbscan)
        {
            if (dbbody.BodyID == -1 && scandata.Body.BodyID >= 0)
            {
                short bodyid = scandata.Body.BodyID;
                paramUpdateBodyId.Value     = dbbody.Id;
                paramUpdateBodyBodyID.Value = bodyid;
                cmdUpdateBody.ExecuteNonQuery();
                dbbody.BodyID = bodyid;
            }

            if ((dbscan.ParentSetId == null && scandata.Scan.ParentSetId != 0) ||
                (dbscan.AxialTilt == null && scandata.Scan.HasAxialTilt) ||
                (dbscan.ReserveLevelId == null && scandata.Scan.ReserveLevelId != 0) ||
                (dbscan.TidalLock == null && scandata.Scan.HasTidalLock))
            {
                paramUpdateScanId.Value           = dbscan.Id;
                paramUpdateScanAxialTilt.Value    = (object)dbscan.AxialTilt ?? (scandata.Scan.HasAxialTilt ? (object)scandata.Scan.AxialTilt : DBNull.Value);
                paramUpdateScanReserveLevel.Value = (object)dbscan.ReserveLevelId ?? (scandata.Scan.ReserveLevelId != 0 ? (object)scandata.Scan.ReserveLevelId : DBNull.Value);
                paramUpdateScanTidalLock.Value    = (object)dbscan.TidalLock ?? (scandata.Scan.HasTidalLock ? (object)scandata.Scan.TidalLock : DBNull.Value);
                paramUpdateScanParents.Value      = (object)dbscan.ParentSetId ?? (scandata.Scan.HasParents ? (object)scandata.Parents.DbId : DBNull.Value);
                cmdUpdateScan.ExecuteNonQuery();
                dbscan.AxialTilt      = dbscan.AxialTilt ?? (scandata.Scan.HasAxialTilt ? (float?)scandata.Scan.AxialTilt : null);
                dbscan.TidalLock      = dbscan.TidalLock ?? (scandata.Scan.HasTidalLock ? (bool?)scandata.Scan.TidalLock : null);
                dbscan.ReserveLevelId = dbscan.ReserveLevelId ?? (scandata.Scan.ReserveLevelId != 0 ? (byte?)scandata.Scan.ReserveLevelId : null);
                dbscan.ParentSetId    = dbscan.ParentSetId ?? (scandata.Scan.ParentSetId != 0 ? (byte?)scandata.Scan.ParentSetId : null);
            }

            if (dbscan is BodyScanPlanet pscan && scandata.Scan.IsPlanet)
            {
                if ((!pscan.HasComposition && scandata.Planet.HasComposition) ||
                    (pscan.VolcanismId == null && scandata.Planet.VolcanismId != 0) ||
                    (pscan.IsLandable == null && scandata.Planet.HasLandable) ||
                    (pscan.TerraformStateId == null && scandata.Planet.TerraformStateId != 0))
                {
                    pscan.CompositionMetal                = pscan.HasComposition ? pscan.CompositionMetal : scandata.Planet.CompositionMetal;
                    pscan.CompositionRock                 = pscan.HasComposition ? pscan.CompositionRock : scandata.Planet.CompositionRock;
                    pscan.CompositionIce                  = pscan.HasComposition ? pscan.CompositionIce : scandata.Planet.CompositionIce;
                    pscan.HasComposition                 |= scandata.Planet.HasComposition;
                    pscan.IsLandable                      = pscan.IsLandable ?? (scandata.Planet.HasLandable ? (bool?)scandata.Planet.IsLandable : null);
                    pscan.TerraformStateId                = pscan.TerraformStateId ?? (scandata.Planet.TerraformStateId != 0 ? (byte?)scandata.Planet.TerraformStateId : null);
                    pscan.VolcanismMajor                  = pscan.VolcanismId != null ? pscan.VolcanismMajor : scandata.Planet.VolcanismMajor;
                    pscan.VolcanismMinor                  = pscan.VolcanismId != null ? pscan.VolcanismMinor : scandata.Planet.VolcanismMinor;
                    pscan.VolcanismId                     = pscan.VolcanismId ?? (scandata.Planet.VolcanismId != 0 ? (byte?)scandata.Planet.VolcanismId : null);
                    paramUpdatePlanetScanId.Value         = pscan.Id;
                    paramUpdatePlanetComposIce.Value      = pscan.CompositionIce;
                    paramUpdatePlanetComposRock.Value     = pscan.CompositionRock;
                    paramUpdatePlanetComposMetal.Value    = pscan.CompositionMetal;
                    paramUpdatePlanetHasCompos.Value      = pscan.HasComposition;
                    paramUpdatePlanetLandable.Value       = (object)pscan.IsLandable ?? DBNull.Value;
                    paramUpdatePlanetTerraformState.Value = (object)pscan.TerraformStateId ?? DBNull.Value;
                    paramUpdatePlanetVolcanismId.Value    = (object)pscan.VolcanismId ?? DBNull.Value;
                    paramUpdatePlanetVolcanismMajor.Value = pscan.VolcanismMajor;
                    paramUpdatePlanetVolcanismMinor.Value = pscan.VolcanismMinor;
                    cmdUpdatePlanet.ExecuteNonQuery();
                }

                if (pscan.Atmosphere == null)
                {
                    if (scandata.Planet.HasAtmosphere)
                    {
                        pscan.Atmosphere = new BodyScanAtmosphere(scandata.Atmosphere, pscan.Id);

                        paramAtmosScanId.Value     = pscan.Atmosphere.Id;
                        paramSurfacePressure.Value = pscan.Atmosphere.SurfacePressure;
                        paramAtmosComp1Id.Value    = (object)pscan.Atmosphere.AtmosphereComponent1Id ?? DBNull.Value;
                        paramAtmosComp1Amt.Value   = pscan.Atmosphere.AtmosphereComponent1Amt;
                        paramAtmosComp2Id.Value    = (object)pscan.Atmosphere.AtmosphereComponent2Id ?? DBNull.Value;
                        paramAtmosComp2Amt.Value   = pscan.Atmosphere.AtmosphereComponent2Amt;
                        paramAtmosComp3Id.Value    = (object)pscan.Atmosphere.AtmosphereComponent3Id ?? DBNull.Value;
                        paramAtmosComp3Amt.Value   = pscan.Atmosphere.AtmosphereComponent3Amt;
                        paramAtmosNameId.Value     = pscan.Atmosphere.AtmosphereId;
                        paramAtmosTypeId.Value     = (object)pscan.Atmosphere.AtmosphereTypeId ?? DBNull.Value;
                        paramAtmosHot.Value        = pscan.Atmosphere.AtmosphereHot;
                        paramAtmosThin.Value       = pscan.Atmosphere.AtmosphereThin;
                        paramAtmosThick.Value      = pscan.Atmosphere.AtmosphereThick;
                        cmdInsertAtmos.ExecuteNonQuery();
                    }
                }
                else if ((pscan.Atmosphere.AtmosphereTypeId == null && scandata.Atmosphere.AtmosphereTypeId != 0) ||
                         (pscan.Atmosphere.AtmosphereComponent1Id == null && scandata.Atmosphere.Component1Id != 0))
                {
                    pscan.Atmosphere.AtmosphereTypeId = pscan.Atmosphere.AtmosphereTypeId ?? (scandata.Atmosphere.AtmosphereTypeId != 0 ? (byte?)scandata.Atmosphere.AtmosphereTypeId : null);
                    if (pscan.Atmosphere.AtmosphereComponent1Id == null && scandata.Atmosphere.Component1Id != 0)
                    {
                        pscan.Atmosphere.AtmosphereComponent1Id  = scandata.Atmosphere.Component1Id != 0 ? (byte?)scandata.Atmosphere.Component1Id : null;
                        pscan.Atmosphere.AtmosphereComponent1Amt = scandata.Atmosphere.Component1Amt;
                        pscan.Atmosphere.AtmosphereComponent2Id  = scandata.Atmosphere.Component2Id != 0 ? (byte?)scandata.Atmosphere.Component2Id : null;
                        pscan.Atmosphere.AtmosphereComponent2Amt = scandata.Atmosphere.Component2Amt;
                        pscan.Atmosphere.AtmosphereComponent3Id  = scandata.Atmosphere.Component3Id != 0 ? (byte?)scandata.Atmosphere.Component3Id : null;
                        pscan.Atmosphere.AtmosphereComponent3Amt = scandata.Atmosphere.Component3Amt;
                    }

                    paramAtmosUpdateScanId.Value   = pscan.Atmosphere.Id;
                    paramAtmosUpdateTypeId.Value   = (object)pscan.Atmosphere.AtmosphereTypeId ?? DBNull.Value;
                    paramAtmosUpdateComp1Id.Value  = (object)pscan.Atmosphere.AtmosphereComponent1Id ?? DBNull.Value;
                    paramAtmosUpdateComp1Amt.Value = pscan.Atmosphere.AtmosphereComponent1Amt;
                    paramAtmosUpdateComp2Id.Value  = (object)pscan.Atmosphere.AtmosphereComponent2Id ?? DBNull.Value;
                    paramAtmosUpdateComp2Amt.Value = pscan.Atmosphere.AtmosphereComponent2Amt;
                    paramAtmosUpdateComp3Id.Value  = (object)pscan.Atmosphere.AtmosphereComponent3Id ?? DBNull.Value;
                    paramAtmosUpdateComp3Amt.Value = pscan.Atmosphere.AtmosphereComponent3Amt;
                    cmdUpdateAtmos.ExecuteNonQuery();
                }

                if (pscan.Materials == null && scandata.Planet.HasMaterials)
                {
                    pscan.Materials           = new BodyScanMaterials(scandata.Materials, pscan.Id);
                    paramMatsId.Value         = pscan.Materials.Id;
                    paramMatsCarbon.Value     = pscan.Materials.MaterialCarbon;
                    paramMatsIron.Value       = pscan.Materials.MaterialIron;
                    paramMatsNickel.Value     = pscan.Materials.MaterialNickel;
                    paramMatsPhosphorus.Value = pscan.Materials.MaterialPhosphorus;
                    paramMatsSulphur.Value    = pscan.Materials.MaterialSulphur;
                    paramMat1Id.Value         = pscan.Materials.Material1Id;
                    paramMat1Amt.Value        = pscan.Materials.Material1Amt;
                    paramMat2Id.Value         = pscan.Materials.Material2Id;
                    paramMat2Amt.Value        = pscan.Materials.Material2Amt;
                    paramMat3Id.Value         = pscan.Materials.Material3Id;
                    paramMat3Amt.Value        = pscan.Materials.Material3Amt;
                    paramMat4Id.Value         = pscan.Materials.Material4Id;
                    paramMat4Amt.Value        = pscan.Materials.Material4Amt;
                    paramMat5Id.Value         = pscan.Materials.Material5Id;
                    paramMat5Amt.Value        = pscan.Materials.Material5Amt;
                    paramMat6Id.Value         = pscan.Materials.Material6Id;
                    paramMat6Amt.Value        = pscan.Materials.Material6Amt;
                    cmdInsertMats.ExecuteNonQuery();
                }
            }
 public void GetDifferingProps(XScanMaterials scan, List <BodyScan.CompareResult> diffs, BodyScan bodyscan)
 {
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "MaterialCarbon", this.MaterialCarbon, scan.MaterialCarbon);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "MaterialIron", this.MaterialIron, scan.MaterialIron);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "MaterialNickel", this.MaterialNickel, scan.MaterialNickel);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "MaterialPhosphorus", this.MaterialPhosphorus, scan.MaterialPhosphorus);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "MaterialSulphur", this.MaterialSulphur, scan.MaterialSulphur);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material1Id", this.Material1Id, scan.Material1Id);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material1Amt", this.Material1Amt, scan.Material1Amt);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material2Id", this.Material2Id, scan.Material2Id);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material2Amt", this.Material2Amt, scan.Material2Amt);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material3Id", this.Material3Id, scan.Material3Id);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material3Amt", this.Material3Amt, scan.Material3Amt);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material4Id", this.Material4Id, scan.Material4Id);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material4Amt", this.Material4Amt, scan.Material4Amt);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material5Id", this.Material5Id, scan.Material5Id);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material5Amt", this.Material5Amt, scan.Material5Amt);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material6Id", this.Material6Id, scan.Material6Id);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Material6Amt", this.Material6Amt, scan.Material6Amt);
 }
 public void GetDifferingProps(XModels.XScanRing scan, List <BodyScan.CompareResult> diffs, BodyScan bscan)
 {
     BodyScan.CompareResult.AddIfUnequal(diffs, bscan, $"Rings[{RingNum}].ClassId", this.ClassId, scan.ClassId);
     BodyScan.CompareResult.AddIfUnequal(diffs, bscan, $"Rings[{RingNum}].InnerRad", this.InnerRad, scan.InnerRad);
     BodyScan.CompareResult.AddIfUnequal(diffs, bscan, $"Rings[{RingNum}].OuterRad", this.OuterRad, scan.OuterRad);
     BodyScan.CompareResult.AddIfUnequal(diffs, bscan, $"Rings[{RingNum}].MassMT", this.MassMT, scan.MassMT);
     BodyScan.CompareResult.AddIfUnequal(diffs, bscan, $"Rings[{RingNum}].IsBelt", this.IsBelt, scan.IsBelt);
 }
Beispiel #5
0
        public void Insert(BodyScan scan)
        {
            if (cmdScan == null)
            {
                Context.Set <BodyScan>().Add(scan);
                Context.SaveChanges();
            }
            else
            {
                cmdScan.Transaction   = Context.Database.CurrentTransaction?.UnderlyingTransaction;
                cmdRing.Transaction   = Context.Database.CurrentTransaction?.UnderlyingTransaction;
                cmdStar.Transaction   = Context.Database.CurrentTransaction?.UnderlyingTransaction;
                cmdPlanet.Transaction = Context.Database.CurrentTransaction?.UnderlyingTransaction;
                cmdMats.Transaction   = Context.Database.CurrentTransaction?.UnderlyingTransaction;
                cmdAtmos.Transaction  = Context.Database.CurrentTransaction?.UnderlyingTransaction;

                paramSystemBodyId.Value       = scan.SystemBodyId;
                paramParentSetId.Value        = (object)scan.ParentSetId ?? DBNull.Value;
                paramScanBaseHash.Value       = scan.ScanBaseHash;
                paramAxialTilt.Value          = (object)scan.AxialTilt ?? DBNull.Value;
                paramEccentricity.Value       = scan.Eccentricity;
                paramOrbitalInclination.Value = scan.OrbitalInclination;
                paramPeriapsis.Value          = scan.Periapsis;
                paramSemiMajorAxis.Value      = scan.SemiMajorAxis;
                paramOrbitalPeriod.Value      = scan.OrbitalPeriod;
                paramRadius.Value             = scan.Radius;
                paramRotationPeriod.Value     = scan.RotationPeriod;
                paramSurfaceTemperature.Value = scan.SurfaceTemperature;
                paramHasOrbit.Value           = scan.HasOrbit;
                paramTidalLock.Value          = (object)scan.TidalLock ?? DBNull.Value;
                paramReserveLevel.Value       = (object)scan.ReserveLevelId ?? DBNull.Value;
                scan.Id = execscancmd(cmdScan);

                if (scan.Rings != null)
                {
                    foreach (var ring in scan.Rings)
                    {
                        ring.ScanId             = scan.Id;
                        paramRingScanId.Value   = ring.ScanId;
                        paramRingNum.Value      = ring.RingNum;
                        paramRingClass.Value    = ring.ClassId;
                        paramRingInnerRad.Value = ring.InnerRad;
                        paramRingOuterRad.Value = ring.OuterRad;
                        paramRingMassMT.Value   = ring.MassMT;
                        paramRingIsBelt.Value   = ring.IsBelt;
                        cmdRing.ExecuteNonQuery();

                        if (ring.CustomName != null && ring.CustomName.Name != null)
                        {
                            ring.CustomName.ScanId    = ring.ScanId;
                            ring.CustomName.RingNum   = ring.RingNum;
                            paramRingNameScanId.Value = ring.CustomName.ScanId;
                            paramRingNameNum.Value    = ring.CustomName.RingNum;
                            paramRingName.Value       = ring.Name;
                            cmdRingName.ExecuteNonQuery();
                        }
                    }
                }

                if (scan is BodyScanStar star)
                {
                    paramStarId.Value            = star.Id;
                    paramAbsoluteMagnitude.Value = star.AbsoluteMagnitude;
                    paramStellarMass.Value       = star.StellarMass;
                    paramAgeMY.Value             = star.Age_MY;
                    paramStarTypeId.Value        = star.StarTypeId;
                    paramLuminosityId.Value      = (object)star.LuminosityId ?? DBNull.Value;
                    cmdStar.ExecuteNonQuery();
                }
                else if (scan is BodyScanPlanet planet)
                {
                    paramPlanetId.Value             = planet.Id;
                    paramPlanetClass.Value          = planet.PlanetClassId;
                    paramCompositionMetal.Value     = planet.CompositionMetal;
                    paramCompositionRock.Value      = planet.CompositionRock;
                    paramCompositionIce.Value       = planet.CompositionIce;
                    paramPlanetHasComposition.Value = planet.HasComposition;
                    paramPlanetMassEM.Value         = planet.MassEM;
                    paramSurfaceGravity.Value       = planet.SurfaceGravity;
                    paramVolcanismId.Value          = (object)planet.VolcanismId ?? DBNull.Value;
                    paramVolcanismMinor.Value       = planet.VolcanismMinor;
                    paramVolcanismMajor.Value       = planet.VolcanismMajor;
                    paramIsLandable.Value           = (object)planet.IsLandable ?? DBNull.Value;
                    cmdPlanet.ExecuteNonQuery();

                    if (planet.Materials != null)
                    {
                        planet.Materials.Id       = scan.Id;
                        paramMatsId.Value         = planet.Materials.Id;
                        paramMatsCarbon.Value     = planet.Materials.MaterialCarbon;
                        paramMatsIron.Value       = planet.Materials.MaterialIron;
                        paramMatsNickel.Value     = planet.Materials.MaterialNickel;
                        paramMatsPhosphorus.Value = planet.Materials.MaterialPhosphorus;
                        paramMatsSulphur.Value    = planet.Materials.MaterialSulphur;
                        paramMat1Id.Value         = planet.Materials.Material1Id;
                        paramMat1Amt.Value        = planet.Materials.Material1Amt;
                        paramMat2Id.Value         = planet.Materials.Material2Id;
                        paramMat2Amt.Value        = planet.Materials.Material2Amt;
                        paramMat3Id.Value         = planet.Materials.Material3Id;
                        paramMat3Amt.Value        = planet.Materials.Material3Amt;
                        paramMat4Id.Value         = planet.Materials.Material4Id;
                        paramMat4Amt.Value        = planet.Materials.Material4Amt;
                        paramMat5Id.Value         = planet.Materials.Material5Id;
                        paramMat5Amt.Value        = planet.Materials.Material5Amt;
                        paramMat6Id.Value         = planet.Materials.Material6Id;
                        paramMat6Amt.Value        = planet.Materials.Material6Amt;
                        cmdMats.ExecuteNonQuery();
                    }

                    if (planet.Atmosphere != null)
                    {
                        planet.Atmosphere.Id       = scan.Id;
                        paramAtmosScanId.Value     = planet.Atmosphere.Id;
                        paramSurfacePressure.Value = planet.Atmosphere.SurfacePressure;
                        paramAtmosComp1Id.Value    = (object)planet.Atmosphere.AtmosphereComponent1Id ?? DBNull.Value;
                        paramAtmosComp1Amt.Value   = planet.Atmosphere.AtmosphereComponent1Amt;
                        paramAtmosComp2Id.Value    = (object)planet.Atmosphere.AtmosphereComponent2Id ?? DBNull.Value;
                        paramAtmosComp2Amt.Value   = planet.Atmosphere.AtmosphereComponent2Amt;
                        paramAtmosComp3Id.Value    = (object)planet.Atmosphere.AtmosphereComponent3Id ?? DBNull.Value;
                        paramAtmosComp3Amt.Value   = planet.Atmosphere.AtmosphereComponent3Amt;
                        paramAtmosNameId.Value     = planet.Atmosphere.AtmosphereId;
                        paramAtmosTypeId.Value     = (object)planet.Atmosphere.AtmosphereTypeId ?? DBNull.Value;
                        paramAtmosHot.Value        = planet.Atmosphere.AtmosphereHot;
                        paramAtmosThin.Value       = planet.Atmosphere.AtmosphereThin;
                        paramAtmosThick.Value      = planet.Atmosphere.AtmosphereThick;
                        cmdAtmos.ExecuteNonQuery();
                    }
                }
            }
        }
Beispiel #6
0
 public void GetDifferingProps(XModels.XScanAtmosphere scan, List <BodyScan.CompareResult> diffs, BodyScan bodyscan)
 {
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "SurfacePressure", this.SurfacePressure, scan.SurfacePressure);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "Atmosphere", this.Atmosphere, scan.Atmosphere);
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereHot", this.AtmosphereHot, scan.Flags.HasFlag(XScanAtmosphere.ScanFlags.AtmosphereHot));
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereThin", this.AtmosphereThin, scan.Flags.HasFlag(XScanAtmosphere.ScanFlags.AtmosphereThin));
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereThick", this.AtmosphereThick, scan.Flags.HasFlag(XScanAtmosphere.ScanFlags.AtmosphereThick));
     BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereTypeId", this.AtmosphereTypeId, scan.AtmosphereTypeId == 0 ? null : (byte?)scan.AtmosphereTypeId);
     if (this.AtmosphereComponent1Id != null && scan.Component1Id != 0)
     {
         BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereComponent1", false, this.AtmosphereComponent1Id, scan.Component1Id == 0 ? null : (byte?)scan.Component1Id);
         BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereComponent2", false, this.AtmosphereComponent2Id, scan.Component2Id == 0 ? null : (byte?)scan.Component2Id);
         BodyScan.CompareResult.AddIfUnequal(diffs, bodyscan, "AtmosphereComponent3", false, this.AtmosphereComponent3Id, scan.Component3Id == 0 ? null : (byte?)scan.Component3Id);
     }
 }