Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        // ------------------------------------------------------------------------------------------------------------------


        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());
        }