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

◆ DrawChat()

void Terraria.GameContent.UI.Chat.RemadeChatMonitor.DrawChat ( bool drawingPlayerChat)
inline

Implements Terraria.GameContent.UI.Chat.IChatMonitor.

Definition at line 48 of file RemadeChatMonitor.cs.

49 {
50 int num = _startChatLine;
51 int num2 = 0;
52 int num3 = 0;
53 while (num > 0 && num2 < _messages.Count)
54 {
55 int num4 = Math.Min(num, _messages[num2].LineCount);
56 num -= num4;
57 num3 += num4;
58 if (num3 == _messages[num2].LineCount)
59 {
60 num3 = 0;
61 num2++;
62 }
63 }
64 int num5 = 0;
65 int? num6 = null;
66 int snippetIndex = -1;
67 int? num7 = null;
68 int hoveredSnippet = -1;
69 while (num5 < _showCount && num2 < _messages.Count)
70 {
72 if (!chatMessageContainer.Prepared || !(drawingPlayerChat | chatMessageContainer.CanBeShownWhenChatIsClosed))
73 {
74 break;
75 }
76 TextSnippet[] snippetWithInversedIndex = chatMessageContainer.GetSnippetWithInversedIndex(num3);
77 ChatManager.DrawColorCodedStringWithShadow(Main.spriteBatch, FontAssets.MouseText.Value, snippetWithInversedIndex, new Vector2(88f, Main.screenHeight - 30 - 28 - num5 * 21), 0f, Vector2.Zero, Vector2.One, out hoveredSnippet);
78 if (hoveredSnippet >= 0)
79 {
81 num6 = num2;
83 }
84 num5++;
85 num3++;
86 if (num3 >= chatMessageContainer.LineCount)
87 {
88 num3 = 0;
89 num2++;
90 }
91 }
92 if (num6.HasValue && num7.HasValue)
93 {
94 TextSnippet[] snippetWithInversedIndex2 = _messages[num6.Value].GetSnippetWithInversedIndex(snippetIndex);
95 snippetWithInversedIndex2[num7.Value].OnHover();
96 if (Main.mouseLeft && Main.mouseLeftRelease)
97 {
98 snippetWithInversedIndex2[num7.Value].OnClick();
99 }
100 }
101 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static Vector2 DrawColorCodedStringWithShadow(SpriteBatch spriteBatch, DynamicSpriteFont font, TextSnippet[] snippets, Vector2 position, float rotation, Vector2 origin, Vector2 baseScale, out int hoveredSnippet, float maxWidth=-1f, float spread=2f)

References Terraria.GameContent.UI.Chat.RemadeChatMonitor._messages, Terraria.GameContent.UI.Chat.RemadeChatMonitor._showCount, Terraria.GameContent.UI.Chat.RemadeChatMonitor._startChatLine, System.Collections.Generic.List< T >.Count, Terraria.UI.Chat.ChatManager.DrawColorCodedStringWithShadow(), System.Math.Min(), Terraria.Main.mouseLeft, Terraria.Main.mouseLeftRelease, Terraria.GameContent.FontAssets.MouseText, Microsoft.Xna.Framework.Vector2.One, Terraria.Main.screenHeight, Terraria.Main.spriteBatch, and Microsoft.Xna.Framework.Vector2.Zero.