mirror of
https://github.com/tonytins/citylimits
synced 2025-06-25 09:24:44 -04:00
Finished debug/cheat console
This commit is contained in:
parent
59ea5dd6f0
commit
f6438a9bee
7 changed files with 95 additions and 16 deletions
|
@ -4,9 +4,7 @@ onready var city_name = $CityNameLbl
|
|||
onready var money = $Money/MoneyLbl
|
||||
onready var year = $YearLbl
|
||||
|
||||
func _ready():
|
||||
city_name.text = SimData.city_name
|
||||
|
||||
func _process(delta):
|
||||
city_name.text = SimData.city_name
|
||||
money.text = str(SimData.budget)
|
||||
year.text = "Y" + str(SimData.year)
|
||||
|
|
20
scripts/command_handler.gd
Normal file
20
scripts/command_handler.gd
Normal file
|
@ -0,0 +1,20 @@
|
|||
extends Node
|
||||
|
||||
enum {
|
||||
ARG_INT,
|
||||
ARG_STRING,
|
||||
ARG_BOOL,
|
||||
ARG_FLOAT
|
||||
}
|
||||
|
||||
const valid_commands = [
|
||||
["motherlode", [null],
|
||||
["whereyoufrom", [ARG_STRING]]
|
||||
]
|
||||
]
|
||||
|
||||
func motherlode():
|
||||
SimData.budget += 50000
|
||||
|
||||
func whereyoufrom(city_name):
|
||||
SimData.city_name = city_name
|
|
@ -2,6 +2,7 @@ extends Control
|
|||
|
||||
onready var debug_console = $Console
|
||||
onready var advisor = $AdvsiorNotice
|
||||
# onready var news_ticker = $TickerPanel/ScrollContainer
|
||||
|
||||
func _ready():
|
||||
advisor.show()
|
||||
|
@ -9,3 +10,4 @@ func _ready():
|
|||
func _process(delta):
|
||||
if Input.is_action_just_released("ui_cheats"):
|
||||
debug_console.show()
|
||||
get_tree().paused = true
|
||||
|
|
|
@ -2,13 +2,62 @@ extends Control
|
|||
|
||||
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 = text + "\n"
|
||||
output_box.text = str(output_box.text + "\n", text)
|
||||
|
||||
func _on_Input_text_entered(new_text):
|
||||
input_box.clear()
|
||||
output_text(new_text)
|
||||
process_command(new_text)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue