Dev Tools
This commit is contained in:
@@ -105,22 +105,7 @@ func _ready():
|
||||
|
||||
|
||||
func _enter_tree():
|
||||
var room_selector_parent = dev_tools_node
|
||||
|
||||
if ESCProjectSettingsManager.get_setting(ESCProjectSettingsManager.ENABLE_ROOM_SELECTOR) \
|
||||
and room_selector_parent.get_node_or_null("room_select") == null:
|
||||
|
||||
room_selector_parent.add_child(
|
||||
preload(
|
||||
"res://addons/escoria-core/ui_library/tools/room_select" +\
|
||||
"/room_select.tscn"
|
||||
).instantiate()
|
||||
)
|
||||
var room_selector = room_selector_parent.get_node_or_null("room_select")
|
||||
if(room_selector != null):
|
||||
room_selector.visible = false
|
||||
|
||||
|
||||
|
||||
var input_handler = Callable(self, "_process_input")
|
||||
escoria.inputs_manager.register_custom_input_handler(input_handler)
|
||||
|
||||
@@ -156,14 +141,13 @@ func _input(event: InputEvent) -> void:
|
||||
return
|
||||
if event.is_action_pressed("ui_cancel") && escoria.current_state == escoria.GAME_STATE.DEFAULT:
|
||||
request_pause_menu.emit()
|
||||
if escoria.get_escoria().is_ready_for_inputs():
|
||||
if event.is_action_pressed("ui_show_room_selector"):
|
||||
toggle_room_selector_visibility()
|
||||
|
||||
|
||||
if event is InputEventMouseMotion:
|
||||
_current_mouse_pos = get_viewport().get_mouse_position()
|
||||
update_tooltip_following_mouse_position(tooltip_node)
|
||||
|
||||
|
||||
if event.is_action_pressed("ui_dev_tools"):
|
||||
dev_tools_node.visible = !dev_tools_node.visible
|
||||
|
||||
|
||||
# https://github.com/godotengine/godot-demo-projects/blob/3.4-585455e/misc/joypads/joypads.gd
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=22 format=3 uid="uid://cabos3cse6b71"]
|
||||
[gd_scene load_steps=23 format=3 uid="uid://cabos3cse6b71"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bl50queikqfjc" path="res://addons/escoria-ui-return-monkey-island/inventory/inventory_ui.tscn" id="1"]
|
||||
[ext_resource type="Script" uid="uid://dfl7khtlretr7" path="res://addons/escoria-core/game/scenes/dialogs/esc_dialog_player.gd" id="2"]
|
||||
@@ -8,6 +8,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://ce2rx8nm1s6gh" path="res://addons/escoria-ui-return-monkey-island/icons/music-double-note.svg" id="6"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ta8viehhtdj" path="res://addons/escoria-ui-return-monkey-island/icons/translation.svg" id="6_yfacq"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3wdxi18u52c5" path="res://addons/escoria-ui-return-monkey-island/menus/main_menu/main_menu.tscn" id="7"]
|
||||
[ext_resource type="PackedScene" uid="uid://yc6r8t73rwrc" path="res://addons/escoria-ui-return-monkey-island/tools/dev/dev_tools.tscn" id="7_qk4ex"]
|
||||
[ext_resource type="Texture2D" uid="uid://dmtpxqpjt2hvh" path="res://addons/escoria-ui-return-monkey-island/icons/translation_hover.svg" id="7_we0hb"]
|
||||
[ext_resource type="PackedScene" uid="uid://dl7w8oqk1rmhw" path="res://addons/escoria-ui-return-monkey-island/menus/pause_menu/pause_menu.tscn" id="8"]
|
||||
[ext_resource type="Theme" uid="uid://bf2eet52fueam" path="res://addons/escoria-ui-return-monkey-island/theme/ui.tres" id="9"]
|
||||
@@ -29,10 +30,11 @@ shader_parameter/vignette_strength = 0.9
|
||||
shader_parameter/dither_strength = 0.03
|
||||
shader_parameter/vignette_color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="game" type="Node2D" node_paths=PackedStringArray("inventory_ui", "rtmi_tooltip_node")]
|
||||
[node name="game" type="Node2D" node_paths=PackedStringArray("inventory_ui", "rtmi_tooltip_node", "dev_tools_node")]
|
||||
script = ExtResource("5")
|
||||
inventory_ui = NodePath("game_layer/ui_layer/Inventory")
|
||||
rtmi_tooltip_node = NodePath("game_layer/tooltip_layer/tooltip")
|
||||
dev_tools_node = NodePath("game_layer/ui_layer/DevTools")
|
||||
main_menu = NodePath("menu_layer/main_menu")
|
||||
pause_menu = NodePath("menu_layer/pause_menu")
|
||||
mouse_tooltip_margin = 70.0
|
||||
@@ -73,10 +75,8 @@ debug_mode = true
|
||||
|
||||
[node name="ui_layer" type="CanvasLayer" parent="game_layer"]
|
||||
|
||||
[node name="DevTools" type="PanelContainer" parent="game_layer/ui_layer"]
|
||||
offset_top = 622.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 662.0
|
||||
[node name="DevTools" parent="game_layer/ui_layer" instance=ExtResource("7_qk4ex")]
|
||||
visible = false
|
||||
|
||||
[node name="Tools" type="PanelContainer" parent="game_layer/ui_layer"]
|
||||
anchors_preset = 1
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
extends PanelContainer
|
||||
|
||||
var tools: Dictionary
|
||||
@export var toolButtonContainer: Container
|
||||
|
||||
func _ready() -> void:
|
||||
if toolButtonContainer.get_child_count() == 0:
|
||||
return
|
||||
for child: DevToolToggleButton in toolButtonContainer.get_children():
|
||||
tools[child.tool_id] = child.tool_node
|
||||
child.connect("toggle", func(tool_id): toggle_tool(tool_id))
|
||||
|
||||
func toggle_tool(toolId: String):
|
||||
tools[toolId].visible = !tools[toolId].visible
|
||||
for tool in tools:
|
||||
if tool != toolId:
|
||||
tools[tool].visible = false
|
||||
@@ -0,0 +1 @@
|
||||
uid://co3lr1fo4jcio
|
||||
@@ -0,0 +1,59 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://yc6r8t73rwrc"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://co3lr1fo4jcio" path="res://addons/escoria-ui-return-monkey-island/tools/dev/dev_tools.gd" id="1_081at"]
|
||||
[ext_resource type="PackedScene" uid="uid://ciyttd4u8lpfa" path="res://addons/escoria-ui-return-monkey-island/tools/dev/globals_watcher.tscn" id="1_wjhmu"]
|
||||
[ext_resource type="Script" uid="uid://dmtnqjdnfeu2u" path="res://addons/escoria-ui-return-monkey-island/tools/dev/ui/tool_toggle_button.gd" id="2_op8os"]
|
||||
[ext_resource type="PackedScene" uid="uid://dq6oyy5g2m03m" path="res://addons/escoria-ui-return-monkey-island/tools/dev/global_inspector.tscn" id="3_rmud2"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0q36us3uuimq" path="res://addons/escoria-core/game/scenes/esc_prompt/esc_prompt_popup.tscn" id="4_gnply"]
|
||||
|
||||
[node name="DevTools" type="PanelContainer" node_paths=PackedStringArray("toolButtonContainer")]
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
script = ExtResource("1_081at")
|
||||
toolButtonContainer = NodePath("MarginContainer/VBoxContainer/Toolbar")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Toolbar" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Watcher" type="Button" parent="MarginContainer/VBoxContainer/Toolbar" node_paths=PackedStringArray("tool_node")]
|
||||
layout_mode = 2
|
||||
text = "Watcher"
|
||||
script = ExtResource("2_op8os")
|
||||
tool_id = "watcher"
|
||||
tool_node = NodePath("../../ToolContainer/GlobalWatcher")
|
||||
metadata/_custom_type_script = "uid://dmtnqjdnfeu2u"
|
||||
|
||||
[node name="Inspector" type="Button" parent="MarginContainer/VBoxContainer/Toolbar" node_paths=PackedStringArray("tool_node")]
|
||||
layout_mode = 2
|
||||
text = "Inspector"
|
||||
script = ExtResource("2_op8os")
|
||||
tool_id = "inspector"
|
||||
tool_node = NodePath("../../ToolContainer/GlobalInspector")
|
||||
metadata/_custom_type_script = "uid://dmtnqjdnfeu2u"
|
||||
|
||||
[node name="Prompt" type="Button" parent="MarginContainer/VBoxContainer/Toolbar" node_paths=PackedStringArray("tool_node")]
|
||||
layout_mode = 2
|
||||
text = "Prompt"
|
||||
script = ExtResource("2_op8os")
|
||||
tool_id = "prompt"
|
||||
tool_node = NodePath("../../ToolContainer/esc_prompt_popup")
|
||||
metadata/_custom_type_script = "uid://dmtnqjdnfeu2u"
|
||||
|
||||
[node name="ToolContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="GlobalWatcher" parent="MarginContainer/VBoxContainer/ToolContainer" instance=ExtResource("1_wjhmu")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="GlobalInspector" parent="MarginContainer/VBoxContainer/ToolContainer" instance=ExtResource("3_rmud2")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="esc_prompt_popup" parent="MarginContainer/VBoxContainer/ToolContainer" instance=ExtResource("4_gnply")]
|
||||
@@ -0,0 +1,23 @@
|
||||
extends Control
|
||||
|
||||
@export var labelContainer: Container
|
||||
|
||||
func _ready() -> void:
|
||||
escoria.globals_manager.global_changed.connect(_on_escoria_global_changed)
|
||||
|
||||
|
||||
# React to changes to inventory globals
|
||||
func _on_escoria_global_changed(global: String, old_value, new_value) -> void:
|
||||
clear()
|
||||
for variable_name in escoria.globals_manager._globals:
|
||||
labelContainer.add_child(createLabel(variable_name,escoria.globals_manager._globals[variable_name] ))
|
||||
|
||||
func clear():
|
||||
for child in labelContainer.get_children():
|
||||
labelContainer.remove_child(child)
|
||||
child.queue_free()
|
||||
|
||||
func createLabel(name: String, value) -> Label:
|
||||
var label = Label.new()
|
||||
label.text = "%s | %s" % [name,value]
|
||||
return label
|
||||
@@ -0,0 +1 @@
|
||||
uid://bxon8pf4raeid
|
||||
@@ -0,0 +1,24 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dq6oyy5g2m03m"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bxon8pf4raeid" path="res://addons/escoria-ui-return-monkey-island/tools/dev/global_inspector.gd" id="1_uoyvf"]
|
||||
|
||||
[node name="GlobalInspector" type="Control" node_paths=PackedStringArray("labelContainer")]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_uoyvf")
|
||||
labelContainer = NodePath("PanelContainer/MarginContainer/ScrollContainer/VBoxContainer")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer"]
|
||||
custom_minimum_size = Vector2(500, 400)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/ScrollContainer"]
|
||||
layout_mode = 2
|
||||
@@ -0,0 +1,21 @@
|
||||
extends Control
|
||||
|
||||
@export var labelContainer: Container
|
||||
|
||||
func _ready() -> void:
|
||||
escoria.globals_manager.global_changed.connect(_on_escoria_global_changed)
|
||||
|
||||
|
||||
# React to changes to inventory globals
|
||||
func _on_escoria_global_changed(global: String, old_value, new_value) -> void:
|
||||
var label = Label.new()
|
||||
var text = "%s | %s -> %s" % [global,old_value,new_value]
|
||||
|
||||
label.set_text(text)
|
||||
|
||||
labelContainer.add_child(label)
|
||||
var count = labelContainer.get_child_count()
|
||||
if labelContainer.get_child_count() > 11:
|
||||
var child = labelContainer.get_child(0)
|
||||
labelContainer.remove_child(child)
|
||||
child.queue_free()
|
||||
@@ -0,0 +1 @@
|
||||
uid://bpcta3oc84rhu
|
||||
@@ -0,0 +1,28 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://ciyttd4u8lpfa"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bpcta3oc84rhu" path="res://addons/escoria-ui-return-monkey-island/tools/dev/globals_watcher.gd" id="1_42y5j"]
|
||||
|
||||
[node name="GlobalsWatcher" type="Control" node_paths=PackedStringArray("labelContainer")]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_42y5j")
|
||||
labelContainer = NodePath("PanelContainer/MarginContainer/VBoxContainer/ScrollContainer/LabelContainer")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer"]
|
||||
custom_minimum_size = Vector2(400, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/MarginContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 300)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="LabelContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/ScrollContainer"]
|
||||
layout_mode = 2
|
||||
@@ -0,0 +1,15 @@
|
||||
extends Button
|
||||
class_name DevToolToggleButton
|
||||
|
||||
@export var tool_id: String
|
||||
@export var tool_node: Node
|
||||
|
||||
signal toggle
|
||||
|
||||
func _ready():
|
||||
self.connect("pressed", _toggle)
|
||||
#self.connect("pressed", func(): toggle.emit(tool_id))
|
||||
|
||||
func _toggle():
|
||||
toggle.emit(tool_id)
|
||||
pass
|
||||
@@ -0,0 +1 @@
|
||||
uid://dmtnqjdnfeu2u
|
||||
Reference in New Issue
Block a user