Terraria.UI.Chat.TextSnippet.GetVisibleColor C# (CSharp) Method

GetVisibleColor() public method

public GetVisibleColor ( ) : Microsoft.Xna.Framework.Color
return Microsoft.Xna.Framework.Color
        public virtual Color GetVisibleColor()
        {
            return ChatManager.WaveColor(this.Color);
        }

Usage Example

Esempio n. 1
0
        public static Vector2 DrawColorCodedString(SpriteBatch spriteBatch, DynamicSpriteFont font, TextSnippet[] snippets, Vector2 position, Color baseColor, float rotation, Vector2 origin, Vector2 baseScale, out int hoveredSnippet, float maxWidth, bool ignoreColors = false)
        {
            int     num1      = -1;
            Vector2 vec       = new Vector2((float)Main.mouseX, (float)Main.mouseY);
            Vector2 vector2_1 = position;
            Vector2 vector2_2 = vector2_1;
            float   x         = font.MeasureString(" ").X;
            Color   color     = baseColor;
            float   num2      = 0.0f;

            for (int index1 = 0; index1 < snippets.Length; ++index1)
            {
                TextSnippet snippet = snippets[index1];
                snippet.Update();
                if (!ignoreColors)
                {
                    color = snippet.GetVisibleColor();
                }
                float   scale = snippet.Scale;
                Vector2 size;
                if (snippet.UniqueDraw(false, out size, spriteBatch, vector2_1, color, scale))
                {
                    if (vec.Between(vector2_1, vector2_1 + size))
                    {
                        num1 = index1;
                    }
                    vector2_1.X += size.X * baseScale.X * scale;
                    vector2_2.X  = Math.Max(vector2_2.X, vector2_1.X);
                }
                else
                {
                    string[] strArray1 = snippet.Text.Split('\n');
                    foreach (string str in strArray1)
                    {
                        char[] chArray = new char[1] {
                            ' '
                        };
                        string[] strArray2 = str.Split(chArray);
                        for (int index2 = 0; index2 < strArray2.Length; ++index2)
                        {
                            if (index2 != 0)
                            {
                                vector2_1.X += x * baseScale.X * scale;
                            }
                            if ((double)maxWidth > 0.0)
                            {
                                float num3 = font.MeasureString(strArray2[index2]).X *baseScale.X *scale;
                                if ((double)vector2_1.X - (double)position.X + (double)num3 > (double)maxWidth)
                                {
                                    vector2_1.X  = position.X;
                                    vector2_1.Y += (float)font.get_LineSpacing() * num2 * baseScale.Y;
                                    vector2_2.Y  = Math.Max(vector2_2.Y, vector2_1.Y);
                                    num2         = 0.0f;
                                }
                            }
                            if ((double)num2 < (double)scale)
                            {
                                num2 = scale;
                            }
                            DynamicSpriteFontExtensionMethods.DrawString(spriteBatch, font, strArray2[index2], vector2_1, color, rotation, origin, baseScale * snippet.Scale * scale, SpriteEffects.None, 0.0f);
                            Vector2 vector2_3 = font.MeasureString(strArray2[index2]);
                            if (vec.Between(vector2_1, vector2_1 + vector2_3))
                            {
                                num1 = index1;
                            }
                            vector2_1.X += vector2_3.X * baseScale.X * scale;
                            vector2_2.X  = Math.Max(vector2_2.X, vector2_1.X);
                        }
                        if (strArray1.Length > 1)
                        {
                            vector2_1.Y += (float)font.get_LineSpacing() * num2 * baseScale.Y;
                            vector2_1.X  = position.X;
                            vector2_2.Y  = Math.Max(vector2_2.Y, vector2_1.Y);
                            num2         = 0.0f;
                        }
                    }
                }
            }
            hoveredSnippet = num1;
            return(vector2_2);
        }
All Usage Examples Of Terraria.UI.Chat.TextSnippet::GetVisibleColor