mirror of
https://github.com/tonytins/citylimits.git
synced 2025-03-15 12:21:22 +00:00
- Changed debug control into custom window dialog. - Reworked "whereyoufrom" cheat - Changed how the money cheat works
64 lines
1.5 KiB
GDScript
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)
|