Files
RPG-Test/src/scene-scripts/console.cs
2023-02-19 12:54:13 +01:00

68 lines
2.2 KiB
C#

using Godot;
public partial class console : CanvasLayer
{
public RichTextLabel textblock;
public LineEdit line;
public string error = "Not found! :(";
public override void _Ready()
{
textblock = GetNode<RichTextLabel>("panel_container/v_box_container/rich_text_label");
line = GetNode<LineEdit>("panel_container/v_box_container/line_edit");
}
public override void _Process(double delta)
{
if (Input.IsActionJustPressed("console"))
{
Visible = !Visible;
line.GrabFocus();
if (GetParent().Name == "player") GetParent<player>().allowMovement = !Visible;
}
}
public void OnLineEditTextSubmitted(string command)
{
line.Clear();
if (command.Length != 0) textblock.AddText("\n>" + command);
Variant args;
if (command.Split(' ').Length == 2)
{
int i = command.IndexOf(" ") + 1;
args = command.Substring(i);
Call(command.Split(' ')[0].ToLower(), args);
}
if (command.Split(' ').Length > 2)
{
int i = command.IndexOf(" ") + 1;
args = command.Substring(i).Split(' ');
Callv(command.Split(' ')[0].ToLower(), args.AsGodotArray());
}
else Call(command.ToLower());
}
public void help()
{
textblock.AddText("\n============ Help ============");
textblock.AddText("\n1. consoleclear - Clears the console");
textblock.AddText("\n2. speed <multiplier number> - Multiplies the player speed by the given value");
textblock.AddText("\n3. playername <new name> - Renames the player");
}
public void consoleclear() => textblock.Clear();
public void speed(float multiplier)
{
if (GetParent().Name == "player") GetParent<player>().speed = Mathf.Clamp(multiplier, 0.01f, 15f);
textblock.AddText("\nSet speed to " + Mathf.Clamp(multiplier, 0.01f, 15f));
}
public void playername(string name)
{
if (GetParent().Name == "player")
{
GetParent<player>().playerName = name;
GetParent<player>().ClearPlayerName();
textblock.AddText("\nYour new name is now: " + GetParent<player>().playerName);
}
}
}