Files
godot-demo-projects/2d/physics_tests/tests_menu.gd
A Thousand Ships 82913393a8 Improve code style (#1021)
* Remove unnecessary use of `self`
* Connect to signals directly over `connect("name")`
* Use `call_deferred` on callables over `call_deferred("name"))`
* Emit signals directly over `emit_signal("name"...)`
2024-03-25 17:06:52 +01:00

55 lines
1.0 KiB
GDScript

extends OptionMenu
class TestData:
var id
var scene_path
var _test_list = []
var _current_test = null
var _current_test_scene: Node = null
func _ready():
option_selected.connect(_on_option_selected)
func _process(_delta):
if Input.is_action_just_pressed(&"restart_test"):
if _current_test:
_start_test(_current_test)
func add_test(id, scene_path):
var test_data = TestData.new()
test_data.id = id
test_data.scene_path = scene_path
_test_list.append(test_data)
add_menu_item(id)
func _on_option_selected(item_path):
for test in _test_list:
if test.id == item_path:
_start_test(test)
func _start_test(test):
_current_test = test
if _current_test_scene:
_current_test_scene.queue_free()
_current_test_scene = null
Log.print_log("*** STARTING TEST: " + test.id)
var scene = load(test.scene_path)
_current_test_scene = scene.instantiate()
get_tree().root.add_child(_current_test_scene)
get_tree().root.move_child(_current_test_scene, 0)
var label_test = get_node(^"../LabelTest")
label_test.test_name = test.id