Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetStringSize() [2/2]

static Vector2 Terraria.UI.Chat.ChatManager.GetStringSize ( DynamicSpriteFont font,
TextSnippet[] snippets,
Vector2 baseScale,
float maxWidth = -1f )
inlinestatic

Definition at line 124 of file ChatManager.cs.

125 {
126 Vector2 vec = new Vector2(Main.mouseX, Main.mouseY);
129 Vector2 result = vector;
130 float x = font.MeasureString(" ").X;
131 float num = 1f;
132 float num2 = 0f;
133 foreach (TextSnippet textSnippet in snippets)
134 {
135 textSnippet.Update();
136 num = textSnippet.Scale;
138 {
139 vector.X += size.X * baseScale.X * num;
140 result.X = Math.Max(result.X, vector.X);
141 result.Y = Math.Max(result.Y, vector.Y + size.Y);
142 continue;
143 }
144 string[] array = textSnippet.Text.Split('\n');
145 string[] array2 = array;
146 for (int j = 0; j < array2.Length; j++)
147 {
148 string[] array3 = array2[j].Split(' ');
149 for (int k = 0; k < array3.Length; k++)
150 {
151 if (k != 0)
152 {
153 vector.X += x * baseScale.X * num;
154 }
155 if (maxWidth > 0f)
156 {
157 float num3 = font.MeasureString(array3[k]).X * baseScale.X * num;
158 if (vector.X - zero.X + num3 > maxWidth)
159 {
160 vector.X = zero.X;
161 vector.Y += (float)font.LineSpacing * num2 * baseScale.Y;
162 result.Y = Math.Max(result.Y, vector.Y);
163 num2 = 0f;
164 }
165 }
166 if (num2 < num)
167 {
168 num2 = num;
169 }
170 Vector2 vector2 = font.MeasureString(array3[k]);
171 vec.Between(vector, vector + vector2);
172 vector.X += vector2.X * baseScale.X * num;
173 result.X = Math.Max(result.X, vector.X);
174 result.Y = Math.Max(result.Y, vector.Y + vector2.Y);
175 }
176 if (array.Length > 1)
177 {
178 vector.X = zero.X;
179 vector.Y += (float)font.LineSpacing * num2 * baseScale.Y;
180 result.Y = Math.Max(result.Y, vector.Y);
181 num2 = 0f;
182 }
183 }
184 }
185 return result;
186 }
static byte Max(byte val1, byte val2)
Definition Math.cs:738

References System.array, System.Math.Max(), Terraria.Main.mouseX, Terraria.Main.mouseY, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Vector2.Zero.