Exemplo n.º 1
0
            public List <List <ColorString> > GetLines()
            {
                if (activeTab == null)
                {
                    return(null);
                }

                var fullLineStrings = new List <ColorString>();
                var channelColor1   = line.Channel.FontColorRef;
                var channelColor2   = line.Channel.OutlineColorRef;
                var tab             = activeTab;

                if (tab.Timestamps && line.IncludePrefix)
                {
                    fullLineStrings.AddRange(ColorString.FromString(line.TimeStr, config.TimeColorRef, config.TimeColorShadowRef));
                }
                if (tab.ShowChannelTagAll && tab.ShowChannelTag[line.Channel.Name] && line.IncludePrefix)
                {
                    fullLineStrings.AddRange(ColorString.FromString(line.Channel.ShortName, channelColor1, channelColor2));
                }
                if (line.Sender != null && line.IncludePrefix)
                {
                    if (line.Sender.Payload.Type == PayloadType.Player)
                    {
                        fullLineStrings.AddRange(ColorString.PlayerName(line.Sender.Text, channelColor1, channelColor2, (PlayerPayload)line.Sender.Payload, line.Sender));
                    }
                    else
                    {
                        fullLineStrings.AddRange(ColorString.PlayerName(line.Sender.Text, channelColor1, channelColor2, null, line.Sender));
                    }
                }

                fullLineStrings.AddRange(line.Text.SelectMany(x =>
                {
                    switch (x.Type)
                    {
                    case PayloadType.RawText:
                        return(ColorString.FromString(x.Text, channelColor1, channelColor2));

                    case PayloadType.Player:
                        return(ColorString.PlayerName(x.Text, channelColor1, channelColor2, (PlayerPayload)x.Payload, x));

                    case PayloadType.MapLink:
                        return(ColorString.FromMapLink(x.Text, channelColor1, channelColor2, (MapLinkPayload)x.Payload, x));

                    case PayloadType.Status:
                        return(ColorString.FromStatus(x.Text, channelColor1, channelColor2, (StatusPayload)x.Payload, x));

                    case PayloadType.Item:
                        return(ColorString.FromItem(x.Text, (ItemPayload)x.Payload, x));

                    default:
                        return(new List <ColorString>());
                    }
                }));

                return(ComputeWrapLines(fullLineStrings, windowSize.X - 50));
            }