Esempio n. 1
0
        public object GetName(object obj)
        {
            var n = (obj as IRecord)?.Index ?? -1;

            switch (obj)
            {
            case SavedGame data:
                var header = data.header;
                var day    = (int)(header.date / 24) + 1;
                return($"{header.savegame_name} (day {day})");

            case GroupsDefinition groupsDef:
                return("Groups");

            case GroupDefinition groupDef:
                //var ranges = groupDef.Ranges.Select(range => $"{range.LowerBound}..{range.UpperBound}");
                //return $"{groupDef.Name} ({string.Join(", ", ranges)})";
                return(groupDef.Name);

            case IHasName hasName: {
                var name = hasName.Name;
                if (obj is Party party && party.IsPresent && string.IsNullOrEmpty(name))
                {
                    name = party.party_template_id.Entity.Name;
                    if (name != null)
                    {
                        name = "<" + name + ">";
                    }
                }
                if (string.IsNullOrEmpty(name))
                {
                    if (obj is IRecord record)
                    {
                        return(record.Index);
                    }
                }
                return(name);
            }

            case IHasId hasId:
                return(hasId.Id);

            case IRecord record: {
                var name = record.Type.Name;
                if (record.Index >= 0)
                {
                    name += " #" + record.Index;
                }
                return(name);
            }

            case ICollection coll:
                return(CultureInfo.CurrentUICulture.TextInfo.ToTitleCase(FriendlyNames.Plural(coll.ItemType)));

            default:
                return(null);
            }
        }
Esempio n. 2
0
 public string GetToolTip(object obj)
 {
     if (obj is SavedGame data)
     {
         return(data.Game.FileName);
     }
     else if (obj is IRecord record)
     {
         var s = record.Index.ToString();
         if (obj is IHasId hasId)
         {
             s = $"{hasId.Id} ({s})";
         }
         return(s);
     }
     else
     {
         return(FriendlyNames.Describe(obj));
     }
 }