private static string GetName(MushEntry me, IEnumerable<TinyMushObjectAttribute> attributes) { string name; if (Universe.ReadName) { name = me.Name; } else { if (attributes == null) { return null; } var temp = attributes.ToList().FirstOrDefault(a => a.Id == (long)ObjectGameBaseAttributeValues.NAME); if (temp == null) { return null; } name = temp.Text; } var p = ObjectDataParsers.StripAnsi().TryParse(name); return p.WasSuccessful ? p.Value : null; }
/// <summary> /// Collect all the attributes for a <see cref="MushEntry"/> /// </summary> private static IEnumerable<TinyMushObjectAttribute> GetAttributes(MushEntry me, long owner) { return me.Attributes.Select(attribute => MakeAttribute(attribute, owner)) .Where(attr => attr != null) .ToList(); }
public static IEnumerable<TinyMushObjectPowers> GetPowers(MushEntry me) { List<TinyMushPowers1> p1 = GameEnums.Match<TinyMushPowers1>(me, me.Powers1); List<TinyMushPowers2> p2 = GameEnums.Match<TinyMushPowers2>(me, me.Powers2); List<TinyMushObjectPowers> res = new List<TinyMushObjectPowers>(); res.AddRange(ParsePowers1(p1)); res.AddRange(ParsePowers2(p2)); return res; }
public static IEnumerable<TinyMushObjectFlags> GetFlags(MushEntry me) { List<TinyMushObjectFlags1> f1 = GameEnums.Match<TinyMushObjectFlags1>(me, me.Flags1); List<TinyMushObjectFlags2> f2 = GameEnums.Match<TinyMushObjectFlags2>(me, me.Flags2); List<TinyMushObjectFlags3> f3 = GameEnums.Match<TinyMushObjectFlags3>(me, me.Flags3); List<TinyMushObjectFlags> res = new List<TinyMushObjectFlags>(); res.AddRange(ParseFlags1(f1)); res.AddRange(ParseFlags2(f2)); res.AddRange(ParseFlags3(f3)); return res; }
public TinyMushObjectData(MushEntry me) { DbRef = me.Number; Location = me.Location; Zone = me.Zone; Contents = me.Contents; Exits = me.Exits; Link = me.Link; Next = me.Next; Owner = me.Owner; Parent = me.Parent; Money = me.Money; AccessTime = Time.MakeFromEpoch(me.AccessTime); ModTime = Time.MakeFromEpoch(me.ModTime); LockKey = me.LockKey; ObjectType = ObjectTypes.MatchType(me); }
public static TinyMushObjectType MatchType(MushEntry me) { long type = me.Flags1 & 7; switch (type) { case 0: return TinyMushObjectType.Room; case 1: return TinyMushObjectType.Thing; case 2: return TinyMushObjectType.Exit; case 3: return TinyMushObjectType.Player; case 4: return TinyMushObjectType.Zone; default: return TinyMushObjectType.Garbage; } }
public static void RegisterEntry(MushEntry mushEntry) { if (mushEntry == null || mushEntry.Number < 0) { return; } if (Entries.ContainsKey(mushEntry.Number)) { return; } Entries[ mushEntry.Number ] = mushEntry; }