Ejemplo n.º 1
0
    private void AppendPropertyValue(StringBuilder b, Individual i, string[] propertyName, CommonNoun templateKind,
                                     List <Property> suppressedProperties)
    {
// Find the property
        var property = templateKind.PropertyNamed(propertyName);

        if (property != null)
        {
            // Print its value
            b.Append(Model[i.Properties[property]]);
            suppressedProperties?.Add(property);
        }
        else
        {
            var part = templateKind.PartNamed(propertyName);
            if (part != null)
            {
                b.Append(Description(i.Parts[part]));
            }
            else
            {
                b.Append($"<unknown property {propertyName.Untokenize()}>");
            }
        }
    }
Ejemplo n.º 2
0
    private string FormatNameFromTemplate(Individual i, List <Property> suppressedProperties, CommonNoun kind)
    {
        var b        = new StringBuilder();
        var t        = kind.NameTemplate;
        var firstOne = true;

        for (var n = 0; n < t.Length; n++)
        {
            if (firstOne)
            {
                firstOne = false;
            }
            else
            {
                b.Append(' ');
            }

            var token = t[n];
            if (token == "[")
            {
                // Get a property name
                var start = n + 1;
                var end   = Array.IndexOf(t, "]", n);
                if (end < 0)
                {
                    end = t.Length;
                }
                var propertyName = new string[end - start];
                Array.Copy(t, start, propertyName, 0, end - start);
                // Find the property
                var property = kind.PropertyNamed(propertyName);
                if (property == null)
                {
                    b.Append($"<unknown property {propertyName.Untokenize()}>");
                }
                else
                {
                    // Print its value
                    b.Append(Model[i.Properties[property]]);
                    suppressedProperties?.Add(property);
                }

                n = end;
            }
            else
            {
                b.Append(token);
            }
        }

        return(b.ToString());
    }