mirror of
https://github.com/JohnBreaux/Boat-Battle.git
synced 2024-11-15 05:25:57 +00:00
Finish scripting implementation
This commit is contained in:
parent
5a72c4fded
commit
ecbf14c998
@ -11,6 +11,9 @@ var menu_velocity = 4
|
|||||||
var history : Array = []
|
var history : Array = []
|
||||||
var history_pos = 0
|
var history_pos = 0
|
||||||
|
|
||||||
|
# Controls whether to print to the screen
|
||||||
|
var echo = true
|
||||||
|
|
||||||
onready var expression = Expression.new()
|
onready var expression = Expression.new()
|
||||||
|
|
||||||
# helptext: args list and help blurb accessed by function name
|
# helptext: args list and help blurb accessed by function name
|
||||||
@ -39,6 +42,7 @@ var helptext = {
|
|||||||
"command_setprop": [" prop value", "Set the property prop to value.\n" ],
|
"command_setprop": [" prop value", "Set the property prop to value.\n" ],
|
||||||
|
|
||||||
"command_script": [" path", "Load and execute a script at a given path.\n" ],
|
"command_script": [" path", "Load and execute a script at a given path.\n" ],
|
||||||
|
"command_echo": [" on/off", "Controls whether lines should be printed to the screen\n" ],
|
||||||
"command_restart": ["", "Kill the current scene tree and plant a new Root.\n" ],
|
"command_restart": ["", "Kill the current scene tree and plant a new Root.\n" ],
|
||||||
"command_exit": ["", "Quits the program.\n" ],
|
"command_exit": ["", "Quits the program.\n" ],
|
||||||
|
|
||||||
@ -72,6 +76,7 @@ var commands = {
|
|||||||
["setprop","set", "s"]: "command_setprop",
|
["setprop","set", "s"]: "command_setprop",
|
||||||
|
|
||||||
["script", "sh"]: "command_script",
|
["script", "sh"]: "command_script",
|
||||||
|
["@echo"]: "command_echo",
|
||||||
["restart", "killall"]: "command_restart",
|
["restart", "killall"]: "command_restart",
|
||||||
["exit", "quit"]: "command_exit",
|
["exit", "quit"]: "command_exit",
|
||||||
|
|
||||||
@ -158,14 +163,13 @@ func _input(event):
|
|||||||
# params: line: Line of text entered by user
|
# params: line: Line of text entered by user
|
||||||
# returns: void
|
# returns: void
|
||||||
func _on_LineEdit_text_entered(line):
|
func _on_LineEdit_text_entered(line):
|
||||||
if line != "":
|
|
||||||
history_append(line)
|
|
||||||
emit_signal("clear_in")
|
emit_signal("clear_in")
|
||||||
debug_print_line(line + "\n")
|
debug_print_line(line + "\n")
|
||||||
var command = line.split(' ', true, 1)
|
var command = line.split(' ', true, 1)
|
||||||
var command_func = parse(command[0])
|
var command_func = parse(command[0])
|
||||||
if command_func:
|
if command_func:
|
||||||
call(command_func, command)
|
call(command_func, command)
|
||||||
|
history_append(line)
|
||||||
else:
|
else:
|
||||||
debug_print_line("dbg: command not found: " + command[0] + "\n")
|
debug_print_line("dbg: command not found: " + command[0] + "\n")
|
||||||
debug_print_line("> ")
|
debug_print_line("> ")
|
||||||
@ -197,6 +201,7 @@ func history_move(rel_pos):
|
|||||||
# params: string: Text string to print
|
# params: string: Text string to print
|
||||||
# returns: void
|
# returns: void
|
||||||
func debug_print_line(string):
|
func debug_print_line(string):
|
||||||
|
if echo:
|
||||||
emit_signal("print_text", string.c_unescape())
|
emit_signal("print_text", string.c_unescape())
|
||||||
|
|
||||||
# get_pwn: get the present working node if valid, otherwise cd to root
|
# get_pwn: get the present working node if valid, otherwise cd to root
|
||||||
@ -282,7 +287,7 @@ func string_to_variant(string, type):
|
|||||||
res = null
|
res = null
|
||||||
TYPE_BOOL:
|
TYPE_BOOL:
|
||||||
match string.to_lower():
|
match string.to_lower():
|
||||||
"true", "1", "ok":
|
"true", "1", "ok", "on":
|
||||||
res = true
|
res = true
|
||||||
_:
|
_:
|
||||||
res = false
|
res = false
|
||||||
@ -532,13 +537,23 @@ func command_script(command):
|
|||||||
while not f.eof_reached():
|
while not f.eof_reached():
|
||||||
script.push_back(f.get_line())
|
script.push_back(f.get_line())
|
||||||
f.close()
|
f.close()
|
||||||
|
echo = false
|
||||||
|
var h = history_pos
|
||||||
for cmd in script:
|
for cmd in script:
|
||||||
_on_LineEdit_text_entered(cmd)
|
_on_LineEdit_text_entered(cmd)
|
||||||
|
history_pos = h
|
||||||
|
echo = true
|
||||||
else:
|
else:
|
||||||
debug_print_line("File not found: " + command[1] + "\n")
|
debug_print_line("File not found: " + command[1] + "\n")
|
||||||
else:
|
else:
|
||||||
debug_print_line(get_usage(command[0]))
|
debug_print_line(get_usage(command[0]))
|
||||||
|
|
||||||
|
func command_echo(command):
|
||||||
|
if command.size() > 1:
|
||||||
|
echo = string_to_variant(command[1], TYPE_BOOL)
|
||||||
|
else:
|
||||||
|
debug_print_line(get_usage(command[0]))
|
||||||
|
|
||||||
func perf(attribute):
|
func perf(attribute):
|
||||||
if attribute.is_valid_integer():
|
if attribute.is_valid_integer():
|
||||||
return Performance.get_monitor(int(attribute))
|
return Performance.get_monitor(int(attribute))
|
||||||
|
Loading…
Reference in New Issue
Block a user