Beispiel #1
0
        void CalculateCaretData()
        {
            if (caretPos >= chatInputText.Length)
            {
                caretPos = -1;
            }
            chatInputText.MakeCoords(caretPos, partLens, out indexX, out indexY);
            DrawTextArgs args = new DrawTextArgs(null, font, true);

            if (indexX == 64)
            {
                caretTex.X1 = 10 + sizes[indexY].Width;
                caretCol    = FastColour.Yellow;
            }
            else
            {
                args.Text = parts[indexY].Substring(0, indexX);
                Size trimmedSize = game.Drawer2D.MeasureChatSize(ref args);
                caretTex.X1 = 10 + trimmedSize.Width;

                string line = parts[indexY];
                args.Text = indexX < line.Length ? new String(line[indexX], 1) : " ";
                Size charSize = game.Drawer2D.MeasureChatSize(ref args);
                caretTex.Width = charSize.Width;
                caretCol       = FastColour.Scale(FastColour.White, 0.8f);
            }
            caretTex.Y1 = sizes[0].Height * indexY + Y;
            CalculateCaretCol();
        }