public bool DeepEquals(DestinyItemTranslationBlockDefinition?other)
 {
     return(other is not null &&
            WeaponPatternIdentifier == other.WeaponPatternIdentifier &&
            WeaponPatternHash == other.WeaponPatternHash &&
            DefaultDyes.DeepEqualsList(other.DefaultDyes) &&
            LockedDyes.DeepEqualsList(other.LockedDyes) &&
            CustomDyes.DeepEqualsList(other.CustomDyes) &&
            Arrangements.DeepEqualsList(other.Arrangements) &&
            HasGeometry == other.HasGeometry);
 }
 public void Update(DestinyItemTranslationBlockDefinition?other)
 {
     if (other is null)
     {
         return;
     }
     if (WeaponPatternIdentifier != other.WeaponPatternIdentifier)
     {
         WeaponPatternIdentifier = other.WeaponPatternIdentifier;
         OnPropertyChanged(nameof(WeaponPatternIdentifier));
     }
     if (WeaponPatternHash != other.WeaponPatternHash)
     {
         WeaponPatternHash = other.WeaponPatternHash;
         OnPropertyChanged(nameof(WeaponPatternHash));
     }
     if (!DefaultDyes.DeepEqualsList(other.DefaultDyes))
     {
         DefaultDyes = other.DefaultDyes;
         OnPropertyChanged(nameof(DefaultDyes));
     }
     if (!LockedDyes.DeepEqualsList(other.LockedDyes))
     {
         LockedDyes = other.LockedDyes;
         OnPropertyChanged(nameof(LockedDyes));
     }
     if (!CustomDyes.DeepEqualsList(other.CustomDyes))
     {
         CustomDyes = other.CustomDyes;
         OnPropertyChanged(nameof(CustomDyes));
     }
     if (!Arrangements.DeepEqualsList(other.Arrangements))
     {
         Arrangements = other.Arrangements;
         OnPropertyChanged(nameof(Arrangements));
     }
     if (HasGeometry != other.HasGeometry)
     {
         HasGeometry = other.HasGeometry;
         OnPropertyChanged(nameof(HasGeometry));
     }
 }