예제 #1
0
        private void SetDupDetectionCriteriaCheckBox(CheckBox pCheckBox, DuplicateDetectionFlag pFlag, DuplicateDetectionFlag pFlags)
        {
            if (AddonDupSet.ForcedDuplicateDetectionFlags.HasFlag(pFlag))
            {
                pCheckBox.Checked = true;
                pCheckBox.Enabled = false;
                return;
            }

            pCheckBox.Enabled = true;
            pCheckBox.Checked = pFlags.HasFlag(pFlag);
        }
예제 #2
0
        // Used for identifying duplicates
        public static string GetFingerPrint(AddonBasicInfo pAddonBasicInfo)
        {
            StringBuilder fingerprintBuilder = new StringBuilder();

            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.Fingerprint))
            {
                return(pAddonBasicInfo.AddonPackage.FingerPrint);
            }

            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.RecompilableFlag))
            {
                fingerprintBuilder.Append($"R:{pAddonBasicInfo.AddonPackage.Recompilable}^");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.Publisher))
            {
                fingerprintBuilder.Append($"P:{pAddonBasicInfo.AddonPackage.Publisher}^");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.Name))
            {
                fingerprintBuilder.Append($"N:{pAddonBasicInfo.AddonPackage.Name}^");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.LastCompiled))
            {
                fingerprintBuilder.Append($"LC:{pAddonBasicInfo.AddonPackage.LastCompiled:s}^");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.MeshDataSize))
            {
                if (!pAddonBasicInfo.AddonPackage.MeshDataSizeMbytes.HasValue)
                {
                    fingerprintBuilder.Append("M:_^");
                }
                else
                {
                    fingerprintBuilder.Append($"M:{pAddonBasicInfo.AddonPackage.MeshDataSizeMbytes.Value:F5}^");
                }
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.AssetCount))
            {
                AddonAssetSummary summary = pAddonBasicInfo.AddonPackage.AssetSummary;
                fingerprintBuilder.Append(
                    $"A:{summary.Animations}_{summary.Bodyparts}_{summary.Decals}_{summary.CuttingRoomAssets}_{summary.Materials}_{summary.Props}:{summary.PropVariants}_{summary.SkyTextures}_{summary.Sounds}_{summary.SpecialEffects}_{summary.OtherAssets}_{summary.StartMovies}_{summary.Stocks}_{summary.Verbs}^");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.TotalFiles))
            {
                fingerprintBuilder.Append($"F:{pAddonBasicInfo.AddonPackage?.FileSummaryInfo.TotalFiles ?? 0}^");
            }

            return(fingerprintBuilder.ToString());
        }
예제 #3
0
 private void SetDupDetectionCriteriaCheckBoxes(DuplicateDetectionFlag pFlags)
 {
     SetDupDetectionCriteriaCheckBox(cbDupDetName, DuplicateDetectionFlag.Name, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetPublisher, DuplicateDetectionFlag.Publisher, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetRecompilable, DuplicateDetectionFlag.RecompilableFlag, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetAssetCount, DuplicateDetectionFlag.AssetCount, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetFileCount, DuplicateDetectionFlag.TotalFiles, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetLastPublished, DuplicateDetectionFlag.LastCompiled, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetMeshSize, DuplicateDetectionFlag.MeshDataSize, pFlags);
     SetDupDetectionCriteriaCheckBox(cbDupDetFingerprint, DuplicateDetectionFlag.Fingerprint, pFlags);
     if (cbDupDetFingerprint.Checked)
     {
         SetDupDetectionCriteriaCheckBoxes2();
     }
 }
예제 #4
0
        public static string GetDuplicateDetectionCriteria()
        {
            StringBuilder builder = new StringBuilder();

            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.Name))
            {
                builder.Append(" Name,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.Publisher))
            {
                builder.Append(" Publisher,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.RecompilableFlag))
            {
                builder.Append(" Republishable,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.LastCompiled))
            {
                builder.Append(" Last published,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.AssetCount))
            {
                builder.Append(" Asset count,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.MeshDataSize))
            {
                builder.Append(" Mesh data size,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.TotalFiles))
            {
                builder.Append(" File count,");
            }
            if (DuplicateDetectionFlag.HasFlag(DuplicateDetectionFlag.Fingerprint))
            {
                builder.Append(" Fingerprint,");
            }
            string text = builder.ToString();

            return(text.Substring(0, text.Length - 1).Trim());
        }