From 7201c030e6dd345276ebf35672a84c0c87adf1f2 Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Tue, 19 Nov 2024 17:41:43 -0700 Subject: [PATCH] Switch camera to demo cam on pause --- levels/debug_level/debug_level.tscn | 11 +++++++--- project.godot | 5 +++++ src/player/shot_setup/shot_setup.gd | 4 ++-- .../highway/guard_rail/guard_rail.tscn | 4 ++-- src/ui/menus/pause_menu/pause_menu.tscn | 1 + src/ui/shot_hud/shot_hud.tscn | 3 +-- src/ui/world_ui.gd | 20 ++++++++++++++++++- src/world/world.tscn | 10 ++++++++++ 8 files changed, 48 insertions(+), 10 deletions(-) diff --git a/levels/debug_level/debug_level.tscn b/levels/debug_level/debug_level.tscn index f9e1b5b..5693506 100644 --- a/levels/debug_level/debug_level.tscn +++ b/levels/debug_level/debug_level.tscn @@ -334,6 +334,9 @@ visibility_aabb = AABB(-128, -4, -128, 256, 8, 256) process_material = SubResource("ParticleProcessMaterial_6nt4t") draw_pass_1 = SubResource("QuadMesh_l4j8a") +[node name="DemoCamera" type="Camera3D" parent="Course" groups=["DemoCamera"]] +transform = Transform3D(-0.734269, 0.305072, -0.606448, 0, 0.893336, 0.44939, 0.678858, 0.329973, -0.655949, 143.463, 90.0707, 223.738) + [node name="CityBuildings" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 129.404, -9.53674e-07, 309.4) @@ -385,6 +388,9 @@ transform = Transform3D(0.57763, 0, -0.816299, 0, 1, 0, 0.816299, 0, 0.57763, 0. [node name="PalmTree2" parent="MountainCurve" instance=ExtResource("12_sswxf")] transform = Transform3D(0.184826, 0, -0.982771, 0, 1, 0, 0.982771, 0, 0.184826, 1.55019, 0, -15.9243) +[node name="DemoCamera" type="Camera3D" parent="MountainCurve" groups=["DemoCamera"]] +transform = Transform3D(-0.909976, -0.0858909, 0.405667, 0, 0.978312, 0.207136, -0.41466, 0.188489, -0.890241, 21.863, 16.4413, -111.296) + [node name="Lakeside" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 458.103, 1.52588e-05, 204.202) @@ -419,9 +425,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.4011, 0.530239, -13.6932) [node name="Umineko3" parent="Lakeside/Flock2" instance=ExtResource("21_ch6qk")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.56348, -0.274033, -7.70535) -[node name="DemoCamera" type="Camera3D" parent="."] -transform = Transform3D(-0.317113, 0.433573, -0.843477, 0, 0.88938, 0.457168, 0.948388, 0.144974, -0.282034, 461.268, 30.8271, 256.17) -visible = false +[node name="DemoCamera" type="Camera3D" parent="Lakeside" groups=["DemoCamera"]] +transform = Transform3D(-0.942644, 0.108925, 0.315527, 0, 0.94526, -0.326318, -0.333799, -0.307602, -0.891044, -5.37366, 0.689307, -6.26129) [node name="NorthSea" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -179.859, -2, 1062.93) diff --git a/project.godot b/project.godot index 7d3de2a..7a87c1d 100644 --- a/project.godot +++ b/project.godot @@ -125,6 +125,11 @@ shot_accept={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) ] } +shot_cancel={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null) +] +} select_driver={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"key_label":0,"unicode":49,"location":0,"echo":false,"script":null) diff --git a/src/player/shot_setup/shot_setup.gd b/src/player/shot_setup/shot_setup.gd index bc87e2d..72957b4 100644 --- a/src/player/shot_setup/shot_setup.gd +++ b/src/player/shot_setup/shot_setup.gd @@ -465,14 +465,14 @@ func _process(delta: float) -> void: # TODO set power gauge parameters if needed character.start_upswing() hud.start_power_bar() - if Input.is_action_just_pressed("ui_cancel"): + if Input.is_action_just_pressed("shot_cancel"): hud.reset_power_bar() phase = Phase.AIM if Input.is_action_just_released("shot_accept") and shot_power > 0: hud.stop_power_bar() phase = Phase.CURVE_ADJUST Phase.CURVE_ADJUST: - if Input.is_action_just_pressed("ui_cancel"): + if Input.is_action_just_pressed("shot_cancel"): hud.reset_curve_bar() phase = Phase.POWER_ADJUST if Input.is_action_just_pressed("shot_accept"): diff --git a/src/props/scenery/highway/guard_rail/guard_rail.tscn b/src/props/scenery/highway/guard_rail/guard_rail.tscn index 5562958..20f5bec 100644 --- a/src/props/scenery/highway/guard_rail/guard_rail.tscn +++ b/src/props/scenery/highway/guard_rail/guard_rail.tscn @@ -4,7 +4,7 @@ [ext_resource type="Material" uid="uid://cift6p0wn1oce" path="res://assets/materials/guard_rail.tres" id="2_1s4wy"] [ext_resource type="PlaneMesh" uid="uid://bdcmgvgpj1e0w" path="res://src/props/scenery/highway/guard_rail/guard_rail_post_mesh.tres" id="3_hha2c"] -[sub_resource type="MultiMesh" id="MultiMesh_suiix"] +[sub_resource type="MultiMesh" id="MultiMesh_1o4mq"] transform_format = 1 mesh = ExtResource("3_hha2c") @@ -42,6 +42,6 @@ path_joined = false material = ExtResource("2_1s4wy") [node name="PostMultiMesh" type="MultiMeshInstance3D" parent="."] -multimesh = SubResource("MultiMesh_suiix") +multimesh = SubResource("MultiMesh_1o4mq") [connection signal="curve_changed" from="." to="." method="_on_curve_changed"] diff --git a/src/ui/menus/pause_menu/pause_menu.tscn b/src/ui/menus/pause_menu/pause_menu.tscn index c1b2ff2..936e976 100644 --- a/src/ui/menus/pause_menu/pause_menu.tscn +++ b/src/ui/menus/pause_menu/pause_menu.tscn @@ -65,6 +65,7 @@ text = "Quit" [node name="QuitConfirm" type="CenterContainer" parent="."] unique_name_in_owner = true +visible = false layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 diff --git a/src/ui/shot_hud/shot_hud.tscn b/src/ui/shot_hud/shot_hud.tscn index 0678541..73c1f07 100644 --- a/src/ui/shot_hud/shot_hud.tscn +++ b/src/ui/shot_hud/shot_hud.tscn @@ -492,7 +492,6 @@ transitions = ["visible", "hidden", SubResource("AnimationNodeStateMachineTransi graph_offset = Vector2(-309, -132) [node name="ShotHUD" type="Control"] -top_level = true layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -580,7 +579,7 @@ anchor_right = 0.6 anchor_bottom = 0.85 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 1 +mouse_filter = 2 [node name="PowerGauge" type="Control" parent="ShotGauges"] layout_mode = 1 diff --git a/src/ui/world_ui.gd b/src/ui/world_ui.gd index 90a79eb..825f737 100644 --- a/src/ui/world_ui.gd +++ b/src/ui/world_ui.gd @@ -1,9 +1,14 @@ class_name WorldUI extends Control ## Container & accessor for the world UI. +const DEMO_CAMERA_GROUP := "DemoCamera" + @export var pause_scene := preload("res://src/ui/menus/pause_menu/pause_menu.tscn") +var _prev_camera: Camera3D + @onready var hud_container: Control = %HUDContainer +@onready var pause_container: Control = %PauseContainer func _unhandled_key_input(event: InputEvent) -> void: @@ -16,11 +21,24 @@ func add_player_hud(hud: ShotHUD) -> void: func pause() -> void: + # Switch to demo cam, if there is one. + var democams: Array[Node] = get_tree().get_nodes_in_group(DEMO_CAMERA_GROUP) + if democams: + _prev_camera = get_viewport().get_camera_3d() + var democam: Camera3D = democams.pick_random() + democam.make_current() + var menu := pause_scene.instantiate() - add_child(menu) + pause_container.add_child(menu) menu.tree_exiting.connect(_unpause) + hud_container.hide() get_tree().paused = true func _unpause() -> void: + # Unset demo camera, if there is one. + if is_instance_valid(_prev_camera): + _prev_camera.make_current() + _prev_camera = null + hud_container.show() get_tree().paused = false diff --git a/src/world/world.tscn b/src/world/world.tscn index 08f5c93..cedd33b 100644 --- a/src/world/world.tscn +++ b/src/world/world.tscn @@ -38,3 +38,13 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 + +[node name="PauseContainer" type="Control" parent="UI"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1