Tutorial messages
All checks were successful
linting & formatting / build (push) Successful in 24s

This commit is contained in:
Rob Kelly 2025-07-07 19:35:32 -06:00
parent 7c90067ede
commit 46a4a7fb4a
5 changed files with 583 additions and 5 deletions

View File

@ -12,6 +12,7 @@ UI_QUIT,Quit
UI_LOADING,Loading UI_LOADING,Loading
UI_DONE,Done! UI_DONE,Done!
UI_SAVING,Saving... UI_SAVING,Saving...
UI_ETC,etc
, ,
TITLE_WARNING_1,!WARNING! TITLE_WARNING_1,!WARNING!
TITLE_WARNING_2,"This is a secure terminal system." TITLE_WARNING_2,"This is a secure terminal system."
@ -97,3 +98,16 @@ SWITCH_BULKHEAD_LABEL,"Bulkhead Control"
SWITCH_QUARANTINE_LABEL,"Quarantine Override" SWITCH_QUARANTINE_LABEL,"Quarantine Override"
SWITCH_CARGOBAY_LABEL,"Cargo Bay Security Override" SWITCH_CARGOBAY_LABEL,"Cargo Bay Security Override"
SWITCH_CARGO_LIFT_LABEL,"Cargo Lift Control" SWITCH_CARGO_LIFT_LABEL,"Cargo Lift Control"
,
TUTORIAL_LOOK,": look"
TUTORIAL_MOVE,": move around"
TUTORIAL_JUMP,": jump"
TUTORIAL_SNEAK,": sneak silently"
TUTORIAL_SPRINT,": sprint"
TUTORIAL_FIRE,": use equipped tool"
TUTORIAL_MODE,": switch tool mode"
TUTORIAL_INTERACT,": interact"
TUTORIAL_PICK_UP,": pick up object"
TUTORIAL_ROTATE,": rotate held object"
TUTORIAL_PREV_NEXT_TOOL,": switch to previous/next tool"
TUTORIAL_SWITCH_TOOL,": switch tools"

1 keys en
12 UI_LOADING Loading
13 UI_DONE Done!
14 UI_SAVING Saving...
15 UI_ETC etc
16
17 TITLE_WARNING_1 !WARNING!
18 TITLE_WARNING_2 This is a secure terminal system.
98 SWITCH_QUARANTINE_LABEL Quarantine Override
99 SWITCH_CARGOBAY_LABEL Cargo Bay Security Override
100 SWITCH_CARGO_LIFT_LABEL Cargo Lift Control
101
102 TUTORIAL_LOOK : look
103 TUTORIAL_MOVE : move around
104 TUTORIAL_JUMP : jump
105 TUTORIAL_SNEAK : sneak silently
106 TUTORIAL_SPRINT : sprint
107 TUTORIAL_FIRE : use equipped tool
108 TUTORIAL_MODE : switch tool mode
109 TUTORIAL_INTERACT : interact
110 TUTORIAL_PICK_UP : pick up object
111 TUTORIAL_ROTATE : rotate held object
112 TUTORIAL_PREV_NEXT_TOOL : switch to previous/next tool
113 TUTORIAL_SWITCH_TOOL : switch tools

View File

@ -0,0 +1,13 @@
class_name TutorialMessage extends Control
@onready var animation_tree: AnimationTree = %AnimationTree
@onready
var animation_state: AnimationNodeStateMachinePlayback = animation_tree["parameters/playback"]
func fade_in() -> void:
animation_state.travel("fade_in")
func fade_out() -> void:
animation_state.travel("fade_out")

View File

@ -0,0 +1 @@
uid://cy8mquhxkqgmd

View File

@ -0,0 +1,340 @@
[gd_scene load_steps=17 format=3 uid="uid://bce8b2erx64vg"]
[ext_resource type="Theme" uid="uid://b07fevr214mmr" path="res://src/ui/hud/hud_theme.tres" id="1_b0qfw"]
[ext_resource type="FontFile" uid="uid://qadtckvw0t3l" path="res://assets/fonts/fontawesome-free-6.7.2-desktop/otfs/Font Awesome 6 Free-Solid-900.otf" id="2_81007"]
[ext_resource type="Script" uid="uid://cy8mquhxkqgmd" path="res://src/ui/elements/tutorial/tutorial_message.gd" id="2_ipu78"]
[sub_resource type="Animation" id="Animation_81007"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("HBoxContainer/MessageContainer/Message:visible_ratio")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("HBoxContainer/InfoIcon:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath(".:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("HBoxContainer/MessageContainer:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_b0qfw"]
resource_name = "display"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("HBoxContainer/MessageContainer/Message:visible_ratio")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.4, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("HBoxContainer/InfoIcon:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("HBoxContainer/MessageContainer:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
[sub_resource type="Animation" id="Animation_ipu78"]
resource_name = "idle"
length = 1.6
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("HBoxContainer/InfoIcon:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.8, 1.6),
"transitions": PackedFloat32Array(1.618, 0.618, 1.618),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("HBoxContainer/MessageContainer/Message:visible_ratio")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("HBoxContainer/MessageContainer:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_xxgh3"]
resource_name = "fade_out"
length = 0.4
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("HBoxContainer/MessageContainer/Message:visible_ratio")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("HBoxContainer/MessageContainer:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_81007"]
_data = {
&"RESET": SubResource("Animation_81007"),
&"fade_in": SubResource("Animation_b0qfw"),
&"fade_out": SubResource("Animation_xxgh3"),
&"idle": SubResource("Animation_ipu78")
}
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_b0qfw"]
animation = &"fade_in"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_81007"]
animation = &"fade_out"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ipu78"]
animation = &"idle"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_xxgh3"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qt0bd"]
switch_mode = 2
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_trep3"]
break_loop_at_end = true
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_cheth"]
switch_mode = 2
advance_mode = 2
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_o3pjn"]
states/Start/position = Vector2(195, 100)
states/fade_in/node = SubResource("AnimationNodeAnimation_b0qfw")
states/fade_in/position = Vector2(352, 100)
states/fade_out/node = SubResource("AnimationNodeAnimation_81007")
states/fade_out/position = Vector2(701, 100)
states/idle/node = SubResource("AnimationNodeAnimation_ipu78")
states/idle/position = Vector2(510, 100)
transitions = ["Start", "fade_in", SubResource("AnimationNodeStateMachineTransition_xxgh3"), "fade_in", "idle", SubResource("AnimationNodeStateMachineTransition_qt0bd"), "idle", "fade_out", SubResource("AnimationNodeStateMachineTransition_trep3"), "fade_out", "End", SubResource("AnimationNodeStateMachineTransition_cheth")]
graph_offset = Vector2(-527, -79)
[node name="TutorialMessage" type="Control"]
visible = false
layout_mode = 3
anchors_preset = 0
theme = ExtResource("1_b0qfw")
script = ExtResource("2_ipu78")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 16
[node name="InfoIcon" type="Label" parent="HBoxContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(0.223529, 0.627451, 0.929412, 1)
theme_override_fonts/font = ExtResource("2_81007")
theme_override_font_sizes/font_size = 42
text = "  "
[node name="MessageContainer" type="HBoxContainer" parent="HBoxContainer"]
visible = false
layout_mode = 2
[node name="Message" type="Label" parent="HBoxContainer/MessageContainer"]
layout_mode = 2
text = "Did you know? It's true!!"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_81007")
}
[node name="AnimationTree" type="AnimationTree" parent="AnimationPlayer"]
unique_name_in_owner = true
root_node = NodePath("%AnimationTree/../..")
tree_root = SubResource("AnimationNodeStateMachine_o3pjn")
anim_player = NodePath("..")

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=3 uid="uid://dq1x21tq06dud"] [gd_scene load_steps=20 format=3 uid="uid://dq1x21tq06dud"]
[ext_resource type="Theme" uid="uid://b07fevr214mmr" path="res://src/ui/hud/hud_theme.tres" id="1_lirk3"] [ext_resource type="Theme" uid="uid://b07fevr214mmr" path="res://src/ui/hud/hud_theme.tres" id="1_lirk3"]
[ext_resource type="Script" uid="uid://lrsv0185bfu" path="res://src/ui/hud/player_hud.gd" id="2_j6lpx"] [ext_resource type="Script" uid="uid://lrsv0185bfu" path="res://src/ui/hud/player_hud.gd" id="2_j6lpx"]
@ -8,6 +8,8 @@
[ext_resource type="Script" uid="uid://cjs2fen6jo0g0" path="res://src/ui/rumbler.gd" id="4_ud8na"] [ext_resource type="Script" uid="uid://cjs2fen6jo0g0" path="res://src/ui/rumbler.gd" id="4_ud8na"]
[ext_resource type="Script" uid="uid://ctvu31jkk1un2" path="res://src/ui/hud/hold_hud.gd" id="5_65kmv"] [ext_resource type="Script" uid="uid://ctvu31jkk1un2" path="res://src/ui/hud/hold_hud.gd" id="5_65kmv"]
[ext_resource type="FontFile" uid="uid://oq8ue2qrfijg" path="res://assets/fonts/Silkscreen/Silkscreen-Regular.ttf" id="7_iwjh7"] [ext_resource type="FontFile" uid="uid://oq8ue2qrfijg" path="res://assets/fonts/Silkscreen/Silkscreen-Regular.ttf" id="7_iwjh7"]
[ext_resource type="PackedScene" uid="uid://bce8b2erx64vg" path="res://src/ui/elements/tutorial/tutorial_message.tscn" id="9_8np55"]
[ext_resource type="Theme" uid="uid://doq7ay6f7dgfo" path="res://src/ui/menus/menu.theme" id="10_c1hvd"]
[sub_resource type="Animation" id="Animation_iwjh7"] [sub_resource type="Animation" id="Animation_iwjh7"]
length = 0.001 length = 0.001
@ -427,10 +429,10 @@ anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 0.5 anchor_bottom = 0.5
offset_left = -17.6994 offset_left = -19.0897
offset_top = -20.4734 offset_top = -18.6342
offset_right = -17.6994 offset_right = -19.0897
offset_bottom = -20.4734 offset_bottom = -18.6342
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("4_ud8na") script = ExtResource("4_ud8na")
@ -537,3 +539,211 @@ root_node = NodePath("../..")
libraries = { libraries = {
&"": SubResource("AnimationLibrary_bu2tv") &"": SubResource("AnimationLibrary_bu2tv")
} }
[node name="TutorialContainer" type="Control" parent="."]
layout_mode = 1
anchor_left = 0.5
anchor_top = 0.333
anchor_right = 0.5
anchor_bottom = 0.333
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="TutorialContainer"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="LookTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="Mouse" type="Label" parent="TutorialContainer/VBoxContainer/LookTutorial/HBoxContainer/MessageContainer" index="0"]
layout_mode = 2
theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt"
text = "⟼"
[node name="Message" parent="TutorialContainer/VBoxContainer/LookTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_LOOK"
[node name="MoveTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="WASD" type="Label" parent="TutorialContainer/VBoxContainer/MoveTutorial/HBoxContainer/MessageContainer" index="0"]
layout_mode = 2
theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt"
text = "␣"
[node name="Message" parent="TutorialContainer/VBoxContainer/MoveTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_MOVE"
[node name="JumpTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/JumpTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"jump"
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/JumpTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_JUMP"
[node name="SneakTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/SneakTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓ ACTION_HOLD_MODIFIER"
action = &"sneak"
hold = true
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/SneakTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_SNEAK"
[node name="SprintTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/SprintTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓ ACTION_HOLD_MODIFIER"
action = &"sprint"
hold = true
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/SprintTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_SPRINT"
[node name="FireTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/FireTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓ ACTION_HOLD_MODIFIER"
action = &"fire"
hold = true
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/FireTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_FIRE"
[node name="ToolSwitchTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"select_point_spray"
show_name = false
[node name="InputPrompt2" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="1" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"select_wide_spray"
show_name = false
[node name="etc" type="Label" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="2"]
layout_mode = 2
theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt"
text = "UI_ETC"
[node name="Message" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="3"]
text = "TUTORIAL_SWITCH_TOOL"
[node name="PrevNextToolTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"select_prev_tool"
show_name = false
[node name="slash" type="Label" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="1"]
layout_mode = 2
theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt"
text = "/"
[node name="InputPrompt2" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="2" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"select_next_tool"
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="3"]
text = "TUTORIAL_PREV_NEXT_TOOL"
[node name="ModeSwitchTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ModeSwitchTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"switch_mode"
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/ModeSwitchTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_MODE"
[node name="InteractTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/InteractTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"interact"
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/InteractTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_INTERACT"
[node name="PickUpTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/PickUpTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓"
action = &"interact"
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/PickUpTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_PICK_UP"
[node name="RotateTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/RotateTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
text = "❓ ACTION_HOLD_MODIFIER"
action = &"rotate_object"
hold = true
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/RotateTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_ROTATE"
[editable path="TutorialContainer/VBoxContainer/LookTutorial"]
[editable path="TutorialContainer/VBoxContainer/MoveTutorial"]
[editable path="TutorialContainer/VBoxContainer/JumpTutorial"]
[editable path="TutorialContainer/VBoxContainer/SneakTutorial"]
[editable path="TutorialContainer/VBoxContainer/SprintTutorial"]
[editable path="TutorialContainer/VBoxContainer/FireTutorial"]
[editable path="TutorialContainer/VBoxContainer/ToolSwitchTutorial"]
[editable path="TutorialContainer/VBoxContainer/PrevNextToolTutorial"]
[editable path="TutorialContainer/VBoxContainer/ModeSwitchTutorial"]
[editable path="TutorialContainer/VBoxContainer/InteractTutorial"]
[editable path="TutorialContainer/VBoxContainer/PickUpTutorial"]
[editable path="TutorialContainer/VBoxContainer/RotateTutorial"]