diff options
Diffstat (limited to 'Scripts/Terminal/OutputArea.cs')
| -rw-r--r-- | Scripts/Terminal/OutputArea.cs | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/Scripts/Terminal/OutputArea.cs b/Scripts/Terminal/OutputArea.cs index e297c49..e5f7535 100644 --- a/Scripts/Terminal/OutputArea.cs +++ b/Scripts/Terminal/OutputArea.cs @@ -3,44 +3,42 @@ using System.Diagnostics; using System.Linq; using Godot; using Godot.Collections; -using Texty.Scripts.Game; -namespace Texty.Scripts.Terminal +namespace Texty.Scripts.Terminal; + +public partial class OutputArea : ScrollContainer { - public partial class OutputArea : ScrollContainer - { - [Export(PropertyHint.File, "*.tscn")] public PackedScene OutputBlockScene; - public Array<string> TextBlocks => new Array<string>(BlockNodes.ToList().Select(block => block.Content)); + [Export(PropertyHint.File, "*.tscn")] public PackedScene OutputBlockScene; + public Array<string> TextBlocks => new(BlockNodes.ToList().Select(block => block.Content)); - private VBoxContainer LineContainer => GetNodeOrNull<VBoxContainer>($"%{nameof(LineContainer)}"); + private VBoxContainer LineContainer => GetNodeOrNull<VBoxContainer>($"%{nameof(LineContainer)}"); - private IEnumerable<OutputBlock> BlockNodes => - GD.Range(LineContainer?.GetChildCount() ?? 0) - .Select(index => LineContainer.GetChild(index)) - .Cast<OutputBlock>(); + private IEnumerable<OutputBlock> BlockNodes => + GD.Range(LineContainer?.GetChildCount() ?? 0) + .Select(index => LineContainer.GetChild(index)) + .Cast<OutputBlock>(); - public override void _Ready() - { - Debug.Assert(OutputBlockScene != null, "OutputBlockScene has not been configured!"); - Debug.Assert(OutputBlockScene.CanInstantiate(), "OutputBlockScene can not be instanced!"); - Clear(); - } + public override void _Ready() + { + Debug.Assert(OutputBlockScene != null, "OutputBlockScene has not been configured!"); + Debug.Assert(OutputBlockScene.CanInstantiate(), "OutputBlockScene can not be instanced!"); + Clear(); + } - public void Clear() + public void Clear() + { + BlockNodes.ToList().ForEach(block => { - BlockNodes.ToList().ForEach(block => - { - LineContainer.RemoveChild(block); - block.QueueFree(); - }); - } + LineContainer.RemoveChild(block); + block.QueueFree(); + }); + } - public void Push(string text) - { - if (string.IsNullOrEmpty(text)) return; - var block = OutputBlockScene.Instantiate<OutputBlock>(); - block.Content = text; - LineContainer.AddChild(block); - } + public void Push(string text) + { + if (string.IsNullOrEmpty(text)) return; + var block = OutputBlockScene.Instantiate<OutputBlock>(); + block.Content = text; + LineContainer.AddChild(block); } }
\ No newline at end of file |
