partial void ShowOnDisplay(string input) { while (historyBox.Content.CountChildren > 60) { historyBox.RemoveChild(historyBox.Content.Children.First()); } GUITextBlock newBlock = new GUITextBlock( new RectTransform(new Vector2(1, 0), historyBox.Content.RectTransform, anchor: Anchor.TopCenter), "> " + input, textColor: Color.LimeGreen, wrap: true) { CanBeFocused = false }; if (fillerBlock != null) { float y = fillerBlock.RectTransform.RelativeSize.Y - newBlock.RectTransform.RelativeSize.Y; if (y > 0) { fillerBlock.RectTransform.RelativeSize = new Vector2(1, y); } else { historyBox.RemoveChild(fillerBlock); fillerBlock = null; } } historyBox.RecalculateChildren(); historyBox.UpdateScrollBarSize(); historyBox.ScrollBar.BarScrollValue = 1; }
partial void ShowOnDisplay(string input, bool addToHistory) { if (addToHistory) { messageHistory.Add(input); while (messageHistory.Count > MaxMessages) { messageHistory.RemoveAt(0); } while (historyBox.Content.CountChildren > MaxMessages) { historyBox.RemoveChild(historyBox.Content.Children.First()); } } GUITextBlock newBlock = new GUITextBlock( new RectTransform(new Vector2(1, 0), historyBox.Content.RectTransform, anchor: Anchor.TopCenter), "> " + input, textColor: Color.LimeGreen, wrap: true, font: UseMonospaceFont ? GUI.MonospacedFont : GUI.GlobalFont) { CanBeFocused = false }; if (fillerBlock != null) { float y = fillerBlock.RectTransform.RelativeSize.Y - newBlock.RectTransform.RelativeSize.Y; if (y > 0) { fillerBlock.RectTransform.RelativeSize = new Vector2(1, y); } else { historyBox.RemoveChild(fillerBlock); fillerBlock = null; } } historyBox.RecalculateChildren(); historyBox.UpdateScrollBarSize(); historyBox.ScrollBar.BarScrollValue = 1; }