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

◆ WordwrapString()

static string[] Terraria.Utils.WordwrapString ( string text,
DynamicSpriteFont font,
int maxWidth,
int maxLines,
out int lineAmount )
inlinestatic

Definition at line 616 of file Utils.cs.

617 {
618 //IL_01bd: Unknown result type (might be due to invalid IL or missing references)
619 //IL_00d3: Unknown result type (might be due to invalid IL or missing references)
620 //IL_0144: Unknown result type (might be due to invalid IL or missing references)
621 string[] array = new string[maxLines];
622 int num = 0;
623 List<string> list = new List<string>(text.Split('\n'));
624 List<string> list2 = new List<string>(list[0].Split(' '));
625 for (int i = 1; i < list.Count && i < maxLines; i++)
626 {
627 list2.Add("\n");
628 list2.AddRange(list[i].Split(' '));
629 }
630 bool flag = true;
631 while (list2.Count > 0)
632 {
633 string text2 = list2[0];
634 string text3 = " ";
635 if (list2.Count == 1)
636 {
637 text3 = "";
638 }
639 if (text2 == "\n")
640 {
641 array[num++] += text2;
642 flag = true;
643 if (num >= maxLines)
644 {
645 break;
646 }
647 list2.RemoveAt(0);
648 }
649 else if (flag)
650 {
651 if (font.MeasureString(text2).X > (float)maxWidth)
652 {
653 string text4 = text2[0].ToString() ?? "";
654 int num2 = 1;
655 while (font.MeasureString(text4 + text2[num2] + "-").X <= (float)maxWidth)
656 {
657 text4 += text2[num2++];
658 }
659 text4 += "-";
660 array[num++] = text4 + " ";
661 if (num >= maxLines)
662 {
663 break;
664 }
665 list2.RemoveAt(0);
666 list2.Insert(0, text2.Substring(num2));
667 }
668 else
669 {
670 ref string reference = ref array[num];
672 flag = false;
673 list2.RemoveAt(0);
674 }
675 }
676 else if (font.MeasureString(array[num] + text2).X > (float)maxWidth)
677 {
678 num++;
679 if (num >= maxLines)
680 {
681 break;
682 }
683 flag = true;
684 }
685 else
686 {
687 ref string reference2 = ref array[num];
689 flag = false;
690 list2.RemoveAt(0);
691 }
692 }
693 lineAmount = num;
694 if (lineAmount == maxLines)
695 {
696 lineAmount--;
697 }
698 return array;
699 }

Referenced by Terraria.Main.DrawMouseOver(), and Terraria.UI.ChestUI.DrawName().

+ Here is the caller graph for this function: