Compare commits

...

5 Commits

14 changed files with 182 additions and 32 deletions

View File

@ -54,7 +54,7 @@ func _ready() -> void:
func set_line(line: StringName): func set_line(line: StringName):
subway.set_line(line) subway.set_line(line)
## One arrival and departure ## One arrival and departure
func cycle() -> void: func cycle() -> void:
await arrive() await arrive()

View File

@ -102,3 +102,7 @@ func _unparent_all_stations_except(except : Node3D):
current = station current = station
continue continue
remove_child(station) remove_child(station)
func unload() -> void:
for station in stations:
station.queue_free()

View File

@ -5,4 +5,4 @@ class_name Station
@export var train_labels : Dictionary[StringName,String] = {} @export var train_labels : Dictionary[StringName,String] = {}
func get_label(line: StringName, next_stop: Station) -> String: func get_label(line: StringName, next_stop: Station) -> String:
return train_labels.get(line+next_stop.name, line+next_stop.name) return train_labels.get(line+next_stop.name, line+next_stop.name)

View File

@ -22,3 +22,6 @@ func pull_save_state(save: SaveGame) -> void:
# Call parent to restore player position # Call parent to restore player position
super.pull_save_state(save) super.pull_save_state(save)
func unload() -> void:
$Logic/Fahrplan.unload()

View File

@ -19,4 +19,3 @@ func set_line(line : StringName):
$TrainModel/traun_hull.material_overlay = materials[line] $TrainModel/traun_hull.material_overlay = materials[line]
$TrainModel/LineLabelBack.text = line.to_upper() $TrainModel/LineLabelBack.text = line.to_upper()
$TrainModel/LineLabelFront.text = line.to_upper() $TrainModel/LineLabelFront.text = line.to_upper()

View File

@ -56,6 +56,30 @@ shader_parameter/density = 0.05
[sub_resource type="PlaneMesh" id="PlaneMesh_yyrp7"] [sub_resource type="PlaneMesh" id="PlaneMesh_yyrp7"]
[sub_resource type="BoxShape3D" id="BoxShape3D_yyrp7"]
size = Vector3(8, 2.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_jh12p"]
size = Vector3(4, 2.5, 0.4)
[sub_resource type="BoxShape3D" id="BoxShape3D_f7u4i"]
size = Vector3(4.392578, 2.5, 0.4)
[sub_resource type="BoxShape3D" id="BoxShape3D_8c00m"]
size = Vector3(4.392578, 2.5, 0.4)
[sub_resource type="BoxShape3D" id="BoxShape3D_6sjee"]
size = Vector3(4.393, 2.5, 0.6)
[sub_resource type="BoxShape3D" id="BoxShape3D_2mi8a"]
size = Vector3(0.4, 2.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_sw3d8"]
size = Vector3(2.393, 1.0219727, 1.1)
[sub_resource type="BoxShape3D" id="BoxShape3D_nwu5x"]
size = Vector3(4.325035, 0.5001221, 29.45169)
[node name="meta_station" unique_id=862984273 instance=ExtResource("1_yekr5")] [node name="meta_station" unique_id=862984273 instance=ExtResource("1_yekr5")]
[node name="water_001" parent="." index="0" unique_id=111926402] [node name="water_001" parent="." index="0" unique_id=111926402]
@ -348,3 +372,102 @@ font = ExtResource("5_e0ljd")
outline_size = 2 outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Collision" type="StaticBody3D" parent="." index="56" unique_id=1055434316]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.015596004, -0.007891655, 0.018885009)
[node name="CollisionShape3D3" type="CollisionShape3D" parent="Collision" index="0" unique_id=905570126]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.143, 1, -66.5)
shape = SubResource("BoxShape3D_yyrp7")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="Collision" index="1" unique_id=171734135]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.143, 1, 0.25)
shape = SubResource("BoxShape3D_yyrp7")
[node name="CollisionShape3D5" type="CollisionShape3D" parent="Collision" index="2" unique_id=1336395804]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 1.8523458, 1, -1.1576476)
shape = SubResource("BoxShape3D_jh12p")
[node name="CollisionShape3D7" type="CollisionShape3D" parent="Collision" index="3" unique_id=459417206]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 1.567, 1.031, -2)
shape = SubResource("BoxShape3D_f7u4i")
[node name="CollisionShape3D8" type="CollisionShape3D" parent="Collision" index="4" unique_id=1713197009]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -1.567, 1.031, -2)
shape = SubResource("BoxShape3D_8c00m")
[node name="CollisionShape3D9" type="CollisionShape3D" parent="Collision" index="5" unique_id=1762662266]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 0, 1.031, -2)
shape = SubResource("BoxShape3D_6sjee")
[node name="CollisionShape3D10" type="CollisionShape3D" parent="Collision" index="6" unique_id=301178296]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -7.783883)
shape = SubResource("BoxShape3D_2mi8a")
[node name="CollisionShape3D11" type="CollisionShape3D" parent="Collision" index="7" unique_id=769617460]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -9.45743)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D12" type="CollisionShape3D" parent="Collision" index="8" unique_id=1739733979]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -17.783882)
shape = SubResource("BoxShape3D_2mi8a")
[node name="CollisionShape3D13" type="CollisionShape3D" parent="Collision" index="9" unique_id=452385568]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -19.45743)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D14" type="CollisionShape3D" parent="Collision" index="10" unique_id=1034267510]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -16.102852)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D15" type="CollisionShape3D" parent="Collision" index="11" unique_id=1680690289]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -27.783882)
shape = SubResource("BoxShape3D_2mi8a")
[node name="CollisionShape3D16" type="CollisionShape3D" parent="Collision" index="12" unique_id=1047818203]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -29.45743)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D17" type="CollisionShape3D" parent="Collision" index="13" unique_id=1702025022]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -26.102852)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D18" type="CollisionShape3D" parent="Collision" index="14" unique_id=258872744]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -37.783882)
shape = SubResource("BoxShape3D_2mi8a")
[node name="CollisionShape3D19" type="CollisionShape3D" parent="Collision" index="15" unique_id=1156771712]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -39.457428)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D20" type="CollisionShape3D" parent="Collision" index="16" unique_id=508183040]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -36.10285)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D21" type="CollisionShape3D" parent="Collision" index="17" unique_id=1259391866]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -47.783882)
shape = SubResource("BoxShape3D_2mi8a")
[node name="CollisionShape3D22" type="CollisionShape3D" parent="Collision" index="18" unique_id=1503501217]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -49.457428)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D23" type="CollisionShape3D" parent="Collision" index="19" unique_id=2073149697]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -46.10285)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D24" type="CollisionShape3D" parent="Collision" index="20" unique_id=1205879072]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -57.783882)
shape = SubResource("BoxShape3D_2mi8a")
[node name="CollisionShape3D26" type="CollisionShape3D" parent="Collision" index="21" unique_id=735293042]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -56.10285)
shape = SubResource("BoxShape3D_sw3d8")
[node name="CollisionShape3D6" type="CollisionShape3D" parent="Collision" index="22" unique_id=597591053]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -1.8618617, 1, -1.1576476)
shape = SubResource("BoxShape3D_jh12p")
[node name="train" type="CollisionShape3D" parent="Collision" index="23" unique_id=1987119272]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.0680046, -0.24993896, -32.189793)
shape = SubResource("BoxShape3D_nwu5x")

View File

@ -23,6 +23,8 @@
[ext_resource type="Script" uid="uid://mgertkn5ub0g" path="res://dev-util/hdr_sdr_switch.gd" id="17_ov8kk"] [ext_resource type="Script" uid="uid://mgertkn5ub0g" path="res://dev-util/hdr_sdr_switch.gd" id="17_ov8kk"]
[ext_resource type="PackedScene" uid="uid://df3ur5wll8vx7" path="res://base-environments/transition/subway_track.tscn" id="17_yfan7"] [ext_resource type="PackedScene" uid="uid://df3ur5wll8vx7" path="res://base-environments/transition/subway_track.tscn" id="17_yfan7"]
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_rkl48"]
[sub_resource type="ViewportTexture" id="ViewportTexture_rkl48"] [sub_resource type="ViewportTexture" id="ViewportTexture_rkl48"]
viewport_path = NodePath("Logic/Fahrplan/hirschfeld/SubwayMap3D/MapViewport") viewport_path = NodePath("Logic/Fahrplan/hirschfeld/SubwayMap3D/MapViewport")
@ -70,8 +72,6 @@ size = Vector3(0.15, 1.2, 1.7)
[sub_resource type="BoxMesh" id="BoxMesh_symoa"] [sub_resource type="BoxMesh" id="BoxMesh_symoa"]
size = Vector3(0.3, 1, 1.5) size = Vector3(0.3, 1, 1.5)
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_rkl48"]
[sub_resource type="BoxShape3D" id="BoxShape3D_yfan7"] [sub_resource type="BoxShape3D" id="BoxShape3D_yfan7"]
size = Vector3(8, 2.5, 0.5) size = Vector3(8, 2.5, 0.5)
@ -167,6 +167,12 @@ id = 2
[node name="Logic" type="Node3D" parent="." unique_id=1036462417 groups=["labels"]] [node name="Logic" type="Node3D" parent="." unique_id=1036462417 groups=["labels"]]
unique_name_in_owner = true unique_name_in_owner = true
[node name="Floor" type="StaticBody3D" parent="Logic" unique_id=837095759]
[node name="World Boundary (Floor)" type="CollisionShape3D" parent="Logic/Floor" unique_id=836708414]
shape = SubResource("WorldBoundaryShape3D_rkl48")
debug_color = Color(0.5019608, 0.003921569, 0.9607843, 1)
[node name="PlayerController" parent="Logic" unique_id=1470359340 instance=ExtResource("2_il5go")] [node name="PlayerController" parent="Logic" unique_id=1470359340 instance=ExtResource("2_il5go")]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.0218763, 6.1035156e-05, -5.6086483) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.0218763, 6.1035156e-05, -5.6086483)
@ -254,10 +260,6 @@ bus = &"sfx"
[node name="Collision" type="StaticBody3D" parent="Logic/Fahrplan/hirschfeld" unique_id=1981379044] [node name="Collision" type="StaticBody3D" parent="Logic/Fahrplan/hirschfeld" unique_id=1981379044]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.015596004, -0.007891655, 0.018885009) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.015596004, -0.007891655, 0.018885009)
[node name="World Boundary (Floor)" type="CollisionShape3D" parent="Logic/Fahrplan/hirschfeld/Collision" unique_id=836708414]
shape = SubResource("WorldBoundaryShape3D_rkl48")
debug_color = Color(0.5019608, 0.003921569, 0.9607843, 1)
[node name="CollisionShape3D3" type="CollisionShape3D" parent="Logic/Fahrplan/hirschfeld/Collision" unique_id=1454083655] [node name="CollisionShape3D3" type="CollisionShape3D" parent="Logic/Fahrplan/hirschfeld/Collision" unique_id=1454083655]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.143, 1, -66.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.143, 1, -66.5)
shape = SubResource("BoxShape3D_yfan7") shape = SubResource("BoxShape3D_yfan7")

View File

@ -46,10 +46,10 @@ func start_room_async():
func play() -> String: func play() -> String:
for i in range(20): await get_tree().process_frame #HACK - can probably be removed for i in range(20): await get_tree().process_frame #HACK - can probably be removed
await get_ready_async() await get_ready_async()
await start_room_async() await start_room_async()
var next_room : StringName = await proceed var next_room : StringName = await proceed
prints("----------", "PROCEEDING", next_room, "--------------") prints("----------", "PROCEEDING", next_room, "--------------")
return next_room return next_room

View File

@ -3,7 +3,6 @@
name="linux" name="linux"
platform="Linux" platform="Linux"
runnable=true runnable=true
advanced_options=false
dedicated_server=false dedicated_server=false
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
@ -11,6 +10,11 @@ include_filter=""
exclude_filter="" exclude_filter=""
export_path="../builds/frame-of-mind.x86_64" export_path="../builds/frame-of-mind.x86_64"
patches=PackedStringArray() patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
seed=0 seed=0
@ -50,7 +54,6 @@ texture_format/etc2=false
name="Windows Desktop" name="Windows Desktop"
platform="Windows Desktop" platform="Windows Desktop"
runnable=true runnable=true
advanced_options=true
dedicated_server=false dedicated_server=false
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
@ -58,6 +61,11 @@ include_filter=""
exclude_filter="" exclude_filter=""
export_path="../builds/frame-of-mind.exe" export_path="../builds/frame-of-mind.exe"
patches=PackedStringArray() patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
seed=0 seed=0
@ -122,7 +130,6 @@ texture_format/etc2=false
name="macOS" name="macOS"
platform="macOS" platform="macOS"
runnable=true runnable=true
advanced_options=false
dedicated_server=false dedicated_server=false
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
@ -130,6 +137,11 @@ include_filter=""
exclude_filter="" exclude_filter=""
export_path="../builds/frame-of-mind.app" export_path="../builds/frame-of-mind.app"
patches=PackedStringArray() patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
seed=0 seed=0
@ -144,6 +156,7 @@ binary_format/architecture="universal"
custom_template/debug="" custom_template/debug=""
custom_template/release="" custom_template/release=""
debug/export_console_wrapper=1 debug/export_console_wrapper=1
application/liquid_glass_icon=""
application/icon="res://icon.png" application/icon="res://icon.png"
application/icon_interpolation=4 application/icon_interpolation=4
application/bundle_identifier="frame-of-mind-debug.0.5" application/bundle_identifier="frame-of-mind-debug.0.5"
@ -304,10 +317,10 @@ privacy/collected_data/browsing_history/collected=false
privacy/collected_data/browsing_history/linked_to_user=false privacy/collected_data/browsing_history/linked_to_user=false
privacy/collected_data/browsing_history/used_for_tracking=false privacy/collected_data/browsing_history/used_for_tracking=false
privacy/collected_data/browsing_history/collection_purposes=0 privacy/collected_data/browsing_history/collection_purposes=0
privacy/collected_data/search_hhistory/collected=false privacy/collected_data/search_history/collected=false
privacy/collected_data/search_hhistory/linked_to_user=false privacy/collected_data/search_history/linked_to_user=false
privacy/collected_data/search_hhistory/used_for_tracking=false privacy/collected_data/search_history/used_for_tracking=false
privacy/collected_data/search_hhistory/collection_purposes=0 privacy/collected_data/search_history/collection_purposes=0
privacy/collected_data/user_id/collected=false privacy/collected_data/user_id/collected=false
privacy/collected_data/user_id/linked_to_user=false privacy/collected_data/user_id/linked_to_user=false
privacy/collected_data/user_id/used_for_tracking=false privacy/collected_data/user_id/used_for_tracking=false
@ -371,9 +384,8 @@ open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\"" rm -rf \"{temp_dir}\""
application/liquid_glass_icon="" privacy/collected_data/search_hhistory/collected=false
privacy/collected_data/search_history/collected=false privacy/collected_data/search_hhistory/linked_to_user=false
privacy/collected_data/search_history/linked_to_user=false privacy/collected_data/search_hhistory/used_for_tracking=false
privacy/collected_data/search_history/used_for_tracking=false privacy/collected_data/search_hhistory/collection_purposes=0
privacy/collected_data/search_history/collection_purposes=0
application/min_macos_version="10.12" application/min_macos_version="10.12"

View File

@ -545,15 +545,22 @@ var dropzone_size: Vector2:
var _selection_candidates : Array[Draggable]: var _selection_candidates : Array[Draggable]:
get: get:
match selection_state: match selection_state:
SelectionState.CARDS: return cards as Array[Draggable] SelectionState.CARDS:
SelectionState.STICKIES: return notes as Array[Draggable] return as_draggable(cards)
SelectionState.STICKIES:
return as_draggable(notes)
SelectionState.FREE: SelectionState.FREE:
print("switching from free selection to guided stickies selection") print("switching from free selection to guided stickies selection")
# Otherwise default to sticky selection # Otherwise default to sticky selection
selection_state = SelectionState.STICKIES selection_state = SelectionState.STICKIES
return notes as Array[Draggable] return as_draggable(notes)
func as_draggable(items : Array) -> Array[Draggable]:
var result : Array[Draggable] = []
for item in items:
result.append(item)
return result
# === Util === # === Util ===

View File

@ -6,29 +6,29 @@ func _ready() -> void:
mouse_event_transform.x *=get_viewport().size.x / 560 * .8 mouse_event_transform.x *=get_viewport().size.x / 560 * .8
mouse_event_transform.y *= get_viewport().size.y / 1024 * .8 mouse_event_transform.y *= get_viewport().size.y / 1024 * .8
mouse_event_transform.origin = Vector2(150, 128) mouse_event_transform.origin = Vector2(150, 128)
if get_parent().get_parent() != get_tree(): if get_parent().get_parent() != get_tree():
get_parent().get_parent().mouse_entered.connect(on_focus_enter) get_parent().get_parent().mouse_entered.connect(on_focus_enter)
get_parent().get_parent().mouse_exited.connect(on_focus_exit) get_parent().get_parent().mouse_exited.connect(on_focus_exit)
func pass_event(event: InputEvent, viewport: Viewport): func pass_event(event: InputEvent, _viewport: Viewport):
$SubViewport.push_input(event) $SubViewport.push_input(event)
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
print( event ) print( event )
if event is InputEventMouse or event is InputEventGesture: if event is InputEventMouse or event is InputEventGesture:
event.position = event.position * mouse_event_transform event.position = event.position * mouse_event_transform
$SubViewport.push_input(event) $SubViewport.push_input(event)
if event is InputEventMouseButton: if event is InputEventMouseButton:
print("yay") print("yay")
func on_focus_enter(): func on_focus_enter():
%AnimationPlayer.play("focus_phone") %AnimationPlayer.play("focus_phone")
func on_focus_exit(): func on_focus_exit():
%AnimationPlayer.play_backwards("focus_phone") %AnimationPlayer.play_backwards("focus_phone")
%AnimationPlayer.queue("phone_idle") %AnimationPlayer.queue("phone_idle")