public override List <CompareResult> GetDifferingProps(XScanClass scandata, List <CompareResult> diffs) { XModels.XScanPlanet pscan = scandata.Planet; base.GetDifferingProps(scandata, diffs); CompareResult.AddIfUnequal(diffs, this, "PlanetClassId", this.PlanetClassId, pscan.PlanetClassId); CompareResult.AddIfUnequal(diffs, this, "MassEM", this.MassEM, pscan.MassEM); CompareResult.AddIfUnequal(diffs, this, "SurfaceGravity", this.SurfaceGravity, pscan.SurfaceGravity); if (this.HasComposition && pscan.HasComposition) { CompareResult.AddIfUnequal(diffs, this, "CompositionMetal", this.CompositionMetal, pscan.CompositionMetal); CompareResult.AddIfUnequal(diffs, this, "CompositionRock", this.CompositionRock, pscan.CompositionRock); CompareResult.AddIfUnequal(diffs, this, "CompositionIce", this.CompositionIce, pscan.CompositionIce); } if (this.VolcanismId != null && pscan.VolcanismId != 0) { CompareResult.AddIfUnequal(diffs, this, "VolcanismId", this.VolcanismId, pscan.VolcanismId); CompareResult.AddIfUnequal(diffs, this, "VolcanismMajor", this.VolcanismMajor, pscan.VolcanismMajor); CompareResult.AddIfUnequal(diffs, this, "VolcanismMinor", this.VolcanismMinor, pscan.VolcanismMinor); } CompareResult.AddIfUnequal(diffs, this, "IsLandable", this.IsLandable, pscan.HasLandable ? (bool?)pscan.IsLandable : null); if (this.Atmosphere != null && pscan.HasAtmosphere) { this.Atmosphere.GetDifferingProps(scandata.Atmosphere, diffs, this); } if (this.Materials != null && pscan.HasMaterials) { this.Materials.GetDifferingProps(scandata.Materials, diffs, this); } return(diffs); }
public override bool Equals(XModels.XScanClass scan, bool ignoremats = false) { XModels.XScanPlanet pscan = scan.Planet; return(base.Equals(scan) && this.PlanetClassId == pscan.PlanetClassId && this.MassEM == pscan.MassEM && this.SurfaceGravity == pscan.SurfaceGravity && (!this.HasComposition || !pscan.HasComposition || ( this.CompositionMetal == pscan.CompositionMetal && this.CompositionRock == pscan.CompositionRock && this.CompositionIce == pscan.CompositionIce )) && (this.VolcanismId == null || pscan.VolcanismId == 0 || ( this.VolcanismId == pscan.VolcanismId && this.VolcanismMajor == pscan.VolcanismMajor && this.VolcanismMinor == pscan.VolcanismMinor )) && (this.IsLandable == null || !pscan.HasLandable || this.IsLandable == pscan.IsLandable) && (this.Atmosphere == null || !pscan.HasAtmosphere || this.Atmosphere.Equals(scan.Atmosphere)) && (ignoremats || this.Materials == null || !pscan.HasMaterials || this.Materials.Equals(scan.Materials))); }