citylimits/scripts/debug_console.gd
Tony Bark e86dd64b8b Changed debug control to winodw
- Changed debug control into custom window dialog.
- Reworked "whereyoufrom" cheat
- Changed how the money cheat works
2021-05-20 22:16:43 -04:00

64 lines
1.5 KiB
GDScript

extends WindowDialog
onready var input_box = $Input
onready var output_box = $Output
onready var command_handler = $CommandHandler
func _ready():
input_box.grab_focus()
func process_command(text: String):
var words = text.split(" ")
words = Array(words)
for i in range(words.count("")):
words.erase("")
if words.size() == 0:
return
var cmd_word = words.pop_front()
for cmd in command_handler.valid_commands:
if cmd[0] == cmd_word:
if words.size() != cmd[1].size():
output_text(str('Failure executing command "', cmd_word,
'", expected ', cmd[1].size(), ' parameters'))
return
for i in range(words.size()):
if not check_type(words[i], cmd[1][i]):
output_text(str('Failure executing command "', cmd_word,
'", parameter ', (i + 1), ' ("', words[i], '") is of the wrong type'))
return
output_text(command_handler.callv(cmd_word, words))
return
output_text(str('Command: "', cmd_word, '" does not exist'))
func check_type(string: String, type):
if type == command_handler.ARG_INT:
return string.is_valid_integer()
if type == command_handler.ARG_FLOAT:
return string.is_valid_float()
if type == command_handler.ARG_STRING:
return true
if type == command_handler.ARG_BOOL:
return (string == "true" or string == "false")
return false
func output_text(text):
output_box.text = str(output_box.text + "\n", text)
func _on_Input_text_entered(new_text):
input_box.clear()
process_command(new_text)
func _on_SubmitBtn_pressed():
input_box.clear()
process_command(input_box.text)