private void SearchVerbsKind(List <VerbSummaryItem> pVerbs, VerbCollectionFlags pVerbType, AssetSearchResultItem pBaseResultItem, List <AssetSearchResultItem> pFound) { foreach (VerbSummaryItem verb in pVerbs) { if ((_nameRegex != null) && (!_nameRegex.IsMatch(verb.VerbName))) { continue; } if (_assetSubTypesRegex != null) { if (!_assetSubTypesRegex.IsMatch(verb.VerbType)) { continue; } } string extraInfo = GetVerbExtraInfo(verb, pVerbType); if ((_assetExtraInfoRegex != null) && !_assetExtraInfoRegex.IsMatch(extraInfo ?? ExtraInfoNull)) { continue; } AssetSearchResultItem item = (AssetSearchResultItem)pBaseResultItem.Clone(); item.AssetType = AddonAssetType.Verb; item.AssetSubtype = verb.VerbType; item.Name = verb.VerbName; item.ExtraInfo = extraInfo; pFound.Add(item); } }
private string GetVerbExtraInfo(VerbSummaryItem pVerb, VerbCollectionFlags pVerbType) { string modelA; switch (pVerbType) { case VerbCollectionFlags.Gaits: case VerbCollectionFlags.Gestures: string extraInfo = $"[{pVerb.ModelA}]"; if (pVerb.ModelA.EndsWith("!?")) { extraInfo += " (WEIRD)"; } if (pVerb.Iterations > 1) { extraInfo += $" (x{pVerb.Iterations} iter.)"; } return(extraInfo); case VerbCollectionFlags.PuppetSoloVerbs: modelA = pVerb.ModelA ?? "*"; return((pVerb.Iterations == 1) ? $"[{modelA}]" : $"[{modelA}] (x{pVerb.Iterations} iter.)"); case VerbCollectionFlags.PuppetMutualVerbs: modelA = pVerb.ModelA ?? "*"; string modelB = pVerb.ModelB ?? "*"; return((pVerb.Iterations == 1) ? $"[{modelA}]->[{modelB}]" : $"[{modelA}]->[{modelB}] (x{pVerb.Iterations} iter.)"); case VerbCollectionFlags.PropSoloVerbs: return((pVerb.Iterations == 1) ? $"[{pVerb.ModelA}]" : $"[{pVerb.ModelA}] (x{pVerb.Iterations} iter.)"); case VerbCollectionFlags.HeldPropsVerbs: case VerbCollectionFlags.InteractivePropsVerbs: modelA = pVerb.ModelA ?? "*"; return((pVerb.Iterations == 1) ? $"[{pVerb.ModelB}][{modelA}]" : $"[{pVerb.ModelB}][{modelA}] (x{pVerb.Iterations} iter.)"); } return(null); }
// ------------------------------------------------------------------------------------------------------------------ public string WriteReport(bool pListWeirdGestureGaits) { if ((Verbs == null) || !Verbs.HasData) { return(""); } StringBuilder textBuilder = new StringBuilder(); VerbCollectionFlags flags = Verbs.Flags; if (flags.HasFlag(VerbCollectionFlags.PuppetSoloVerbs)) { textBuilder.AppendLine("Puppet Solo Verbs (Postures):"); foreach (VerbSummaryItem verb in Verbs.PuppetSoloVerbs) { string model = verb.ModelA ?? "*"; string text = (verb.Iterations == 1) ? $" {model} : {verb.VerbName}" : $" {model} : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } } if (flags.HasFlag(VerbCollectionFlags.Gestures)) { textBuilder.AppendLine("Gestures:"); int weirdVerbs = 0; foreach (VerbSummaryItem verb in Verbs.Gestures) { if (!pListWeirdGestureGaits && verb.ModelA.EndsWith("!?")) { weirdVerbs++; continue; } string text = (verb.Iterations == 1) ? $" [{verb.ModelA}] : {verb.VerbName}" : $" [{verb.ModelA}] : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } if (weirdVerbs > 0) { textBuilder.AppendLine($" {weirdVerbs} Improper Gestures (for Props)"); } } if (flags.HasFlag(VerbCollectionFlags.Gaits)) { textBuilder.AppendLine("Gaits:"); int weirdVerbs = 0; foreach (VerbSummaryItem verb in Verbs.Gaits) { if (!pListWeirdGestureGaits && verb.ModelA.EndsWith("!?")) { weirdVerbs++; continue; } string text = (verb.Iterations == 1) ? $" [{verb.ModelA}] : {verb.VerbName}" : $" [{verb.ModelA}] : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } if (weirdVerbs > 0) { textBuilder.AppendLine($" {weirdVerbs} Improper Gestures (for Props)"); } } if (flags.HasFlag(VerbCollectionFlags.PropSoloVerbs)) { textBuilder.AppendLine("Prop Solo Verbs:"); foreach (VerbSummaryItem verb in Verbs.PropSoloVerbs) { string text = (verb.Iterations == 1) ? $" [{verb.ModelA}] : {verb.VerbName}" : $" [{verb.ModelA}] : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } } if (flags.HasFlag(VerbCollectionFlags.HeldPropsVerbs)) { textBuilder.AppendLine("Held Prop Verbs:"); foreach (VerbSummaryItem verb in Verbs.HeldPropsVerbs) { string modelA = verb.ModelA ?? "*"; string text = (verb.Iterations == 1) ? $" {verb.ModelB} [{modelA}] : {verb.VerbName}" : $" {verb.ModelB} [{modelA}] : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } } if (flags.HasFlag(VerbCollectionFlags.InteractivePropsVerbs)) { textBuilder.AppendLine("Interactive Prop Verbs:"); foreach (VerbSummaryItem verb in Verbs.InteractivePropsVerbs) { string modelA = verb.ModelA ?? "*"; string text = (verb.Iterations == 1) ? $" {verb.ModelB} [{modelA}] : {verb.VerbName}" : $" {verb.ModelB} [{modelA}] : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } } if (flags.HasFlag(VerbCollectionFlags.PuppetMutualVerbs)) { textBuilder.AppendLine("Puppet Interaction Verbs:"); foreach (VerbSummaryItem verb in Verbs.PuppetMutualVerbs) { string modelA = verb.ModelA ?? "*"; string modelB = verb.ModelB ?? "*"; string text = (verb.Iterations == 1) ? $" {modelA} -> {modelB} : {verb.VerbName}" : $" {modelA} -> {modelB} : {verb.VerbName} (x{verb.Iterations})"; textBuilder.AppendLine(text); } } return(textBuilder.ToString()); }