mirror of
https://github.com/JohnBreaux/Boat-Battle.git
synced 2024-11-14 21:15:58 +00:00
Add help text to debug menu
This commit is contained in:
parent
5f8c881c1c
commit
4cbccbbbbe
@ -48,6 +48,7 @@ placeholder_text = "By your command."
|
||||
caret_blink = true
|
||||
script = ExtResource( 3 )
|
||||
|
||||
[connection signal="clear_line" from="." to="debug_canvas/VBoxContainer/LineEdit" method="_on_Debug_clear_line"]
|
||||
[connection signal="clear_in" from="." to="debug_canvas/VBoxContainer/LineEdit" method="_on_Debug_clear_in"]
|
||||
[connection signal="clear_out" from="." to="debug_canvas/VBoxContainer/TextEdit" method="_on_Debug_clear_out"]
|
||||
[connection signal="print_text" from="." to="debug_canvas/VBoxContainer/TextEdit" method="_on_Debug_print_text"]
|
||||
[connection signal="text_entered" from="debug_canvas/VBoxContainer/LineEdit" to="." method="_on_LineEdit_text_entered"]
|
||||
|
@ -5,5 +5,5 @@ extends LineEdit
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
func _on_Debug_clear_line():
|
||||
func _on_Debug_clear_in():
|
||||
clear()
|
||||
|
@ -1,9 +0,0 @@
|
||||
extends LineEdit
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
func _on_Debug_clear_line():
|
||||
clear()
|
@ -8,3 +8,9 @@ func _ready():
|
||||
|
||||
func _on_Debug_print_text(text):
|
||||
insert_text_at_cursor(text)
|
||||
|
||||
|
||||
func _on_Debug_clear_out():
|
||||
cursor_set_line(0)
|
||||
cursor_set_column(0)
|
||||
text = "";
|
||||
|
@ -16,7 +16,8 @@ var menu_hidden = Transform2D(Vector2(1,0), Vector2(0,1), Vector2(0,-170))
|
||||
var menu_active = Transform2D(Vector2(1,0), Vector2(0,1), Vector2(0, 0))
|
||||
|
||||
# signals
|
||||
signal clear_line
|
||||
signal clear_in
|
||||
signal clear_out
|
||||
signal print_text(text)
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
@ -43,36 +44,112 @@ func _input(event):
|
||||
debug_active = !debug_active;
|
||||
|
||||
func _on_LineEdit_text_entered(line):
|
||||
emit_signal("clear_line")
|
||||
emit_signal("clear_in")
|
||||
debug_print_line("")
|
||||
var command = line.split(' ', true, 1)
|
||||
if command.size() > 0:
|
||||
match command[0]:
|
||||
"start":
|
||||
if command.size() > 1:
|
||||
MessageBus.emit_signal("change_scene", command[1])
|
||||
debug_print_line("start '" + command[1] + "'\n".c_unescape())
|
||||
else:
|
||||
debug_print_line("Usage: start scene")
|
||||
"kill":
|
||||
if command.size() > 1 and command[1] != "Debug":
|
||||
MessageBus.emit_signal("kill_scene", command[1])
|
||||
debug_print_line("kill '" + command[1] + "'\n".c_unescape())
|
||||
else:
|
||||
debug_print_line("Usage: kill scene")
|
||||
"restart":
|
||||
MessageBus.emit_signal("return_to_title")
|
||||
"print":
|
||||
if command.size() > 1:
|
||||
debug_print_line(command[1].c_unescape())
|
||||
"raw_emit":
|
||||
var mbus_signal = command[1].split(' ', true, 1)
|
||||
match mbus_signal.size():
|
||||
2: MessageBus.emit_signal(mbus_signal[0], mbus_signal[1])
|
||||
1: MessageBus.emit_signal(mbus_signal[0])
|
||||
0: debug_print_line( "Usage: raw_emit signal [value]\n")
|
||||
_:
|
||||
debug_print_line("BY YOUR COMMAND.\n")
|
||||
match command[0]:
|
||||
"start", "s":
|
||||
command_start(command)
|
||||
"stop", "kill", "k":
|
||||
command_stop(command)
|
||||
"list", "ls", "l":
|
||||
command_list(command)
|
||||
"restart", "killall":
|
||||
command_restart(command)
|
||||
"print", "p":
|
||||
command_print(command)
|
||||
"raw_emit", "emit", "r", "e": # Send a signal over the MessageBus
|
||||
command_emit(command)
|
||||
"clear","cls": # Clear the output
|
||||
command_clear(command)
|
||||
"help", "h":
|
||||
command_help(command)
|
||||
_:
|
||||
debug_print_line("Command not recognized.\n")
|
||||
|
||||
func debug_print_line(string):
|
||||
emit_signal("print_text", string.c_unescape())
|
||||
|
||||
# Commands
|
||||
|
||||
# start: Loads scene from res://scenes/*.tscn by filename, and starts it
|
||||
func command_start (command):
|
||||
if command.size() > 1:
|
||||
MessageBus.emit_signal("start_tcsn", command[1])
|
||||
debug_print_line("start '" + command[1] + "'\n")
|
||||
else:
|
||||
debug_print_line("Usage: start scene")
|
||||
|
||||
# stop: Stops scene by name of root node.
|
||||
func command_stop (command):
|
||||
if command.size() > 1 and command[1] != "Debug":
|
||||
MessageBus.emit_signal("kill_scene", command[1])
|
||||
debug_print_line("kill '" + command[1] + "'\n")
|
||||
else:
|
||||
debug_print_line("Usage: kill scene")
|
||||
|
||||
# list: Lists names of active scenes (children of Root)
|
||||
func command_list (command):
|
||||
debug_print_line("list: ")
|
||||
MessageBus.emit_signal("list_scenes")
|
||||
|
||||
# restart: Kills the current tree and replants Root
|
||||
func command_restart (command):
|
||||
MessageBus.emit_signal("return_to_title")
|
||||
|
||||
# print: prints a message to the in-game debug console
|
||||
func command_print(command):
|
||||
if command.size() > 1:
|
||||
debug_print_line(command[1] + "\n")
|
||||
|
||||
# emit: emits a message onto the MessageBus (!Extremely Danger!)
|
||||
func command_emit (command):
|
||||
var mbus_signal = command[1].split(' ', true, 1)
|
||||
match mbus_signal.size():
|
||||
2:
|
||||
debug_print_line("Message: " + String(mbus_signal) + "\n")
|
||||
MessageBus.emit_signal(mbus_signal[0], mbus_signal[1])
|
||||
1:
|
||||
debug_print_line("Message: " + String(mbus_signal) + "\n")
|
||||
MessageBus.emit_signal(mbus_signal[0])
|
||||
0: debug_print_line( "Usage: raw_emit signal [value]\n")
|
||||
|
||||
# clear: clears the debug output
|
||||
func command_clear (command):
|
||||
emit_signal("clear_out");
|
||||
|
||||
# help: Prints help dialogue
|
||||
func command_help (command):
|
||||
if (command.size() == 1):
|
||||
debug_print_line("Ship's Commander V0.1\n")
|
||||
debug_print_line("Valid commands:\nstart, stop, list, restart, print, emit, clear, help\n")
|
||||
else:
|
||||
debug_print_line(command[1])
|
||||
match command[1]:
|
||||
"start", "s":
|
||||
debug_print_line(" filename\nAliases: 'start', 's'\n")
|
||||
debug_print_line("Loads and runs the scene filename.tscn\n")
|
||||
"stop", "kill", "k":
|
||||
debug_print_line(" scene\nAliases: 'stop', 'kill', 'k'\n")
|
||||
debug_print_line("Kills an active scene whose name matches node.\n")
|
||||
"list", "ls", "l":
|
||||
debug_print_line("\nAliases: 'list', 'ls', 'l'\n")
|
||||
debug_print_line("Lists the currently active scenes\n")
|
||||
"restart", "killall":
|
||||
debug_print_line("\nAliases: 'restart', 'killall'\n")
|
||||
debug_print_line("Kills the current scene tree and plants a new Root.\n")
|
||||
"print", "p":
|
||||
debug_print_line(" string\nAliases: 'print', 'p'\n")
|
||||
debug_print_line("Prints a string to the in-game debug console\n")
|
||||
"raw_emit", "emit", "r", "e":
|
||||
debug_print_line(" signal [message]\nAliases: 'raw_emit', 'emit', 'r', 'e'\n")
|
||||
debug_print_line("Puts a message on the MessageBus without validation.\n")
|
||||
"clear","cls":
|
||||
debug_print_line("\nAliases: 'clear', 'cls'\n")
|
||||
debug_print_line("Clears the debug output.\n")
|
||||
"help", "h":
|
||||
debug_print_line(" [command]\nAliases: 'help', 'h'\n")
|
||||
debug_print_line("Prints information about a command.\n")
|
||||
_:
|
||||
debug_print_line(command[1] + "\nIsn't a valid command\n")
|
||||
debug_print_line("\n")
|
||||
|
@ -11,9 +11,11 @@ var debug_enabled = true
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
# Connect to signals
|
||||
MessageBus.connect("start_tcsn", self, "_on_scene_start_by_name")
|
||||
MessageBus.connect("change_scene", self, "_on_scene_start")
|
||||
MessageBus.connect("kill_scene", self, "_on_scene_kill")
|
||||
MessageBus.connect("quit", self, "_on_quit_request")
|
||||
MessageBus.connect("kill_scene", self, "_on_scene_kill")
|
||||
MessageBus.connect("list_scenes", self, "_on_scene_list")
|
||||
MessageBus.connect("quit", self, "_on_quit_request")
|
||||
MessageBus.connect("return_to_title", self, "_on_title_request")
|
||||
# Create the scenes
|
||||
title_screen = preload("res://scenes/Title Screen.tscn")
|
||||
@ -41,24 +43,33 @@ func _on_scene_start(scene):
|
||||
"Title":
|
||||
add_child (title_screen.instance())
|
||||
return true
|
||||
|
||||
|
||||
func _on_scene_start_by_name(scene):
|
||||
var pack = load("res://scenes/" + scene + ".tscn");
|
||||
add_child(pack.instance());
|
||||
|
||||
# Kills all child nodes with name matching `scene`
|
||||
func _on_scene_kill(scene):
|
||||
print ("_on_scene_kill(",scene,")")
|
||||
var c = get_children()
|
||||
for i in range (c.size()):
|
||||
if c[i].name == scene:
|
||||
c[i].queue_free()
|
||||
MessageBus.emit_signal("print_console", String(c[i].name) + " killed.\n".c_unescape())
|
||||
return true
|
||||
return false
|
||||
|
||||
func _on_scene_list():
|
||||
var children = get_children()
|
||||
var names = []
|
||||
for i in range (children.size()):
|
||||
names.append(children[i].name)
|
||||
MessageBus.emit_signal("print_console", String(names) + "\n".c_unescape())
|
||||
|
||||
|
||||
# Quits
|
||||
func _on_quit_request():
|
||||
print ("_on_quit_request()")
|
||||
get_tree().quit()
|
||||
|
||||
# Kills the current tree and replaces it with a new one
|
||||
func _on_title_request():
|
||||
print ("_on_title_request()")
|
||||
return get_tree().change_scene("res://scenes/Main.tscn")
|
||||
|
@ -1,9 +1,16 @@
|
||||
extends Node
|
||||
|
||||
# Ignore "unused signal" warnings in this class
|
||||
# warning-ignore-all:unused_signal
|
||||
|
||||
# Ask for a scene change
|
||||
signal change_scene(scene_name)
|
||||
|
||||
signal start_tcsn(scene_tcsn_name)
|
||||
# Ask to kill scene
|
||||
signal kill_scene(scene_name)
|
||||
# Ask to list active scenes
|
||||
signal list_scenes()
|
||||
# Ask to quit the game
|
||||
signal quit
|
||||
# Ask to return to title screen
|
||||
|
Loading…
Reference in New Issue
Block a user