diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-24 18:21:41 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-24 18:21:41 +0200 |
commit | e72b9cc631290ec2d3d8d3cc9451d6dced9f984a (patch) | |
tree | 9f9b500f9af11ddd8302f97a94e228ee8538092e /client/menu | |
parent | a7c952f5007477588de9fbca9faa464b3c71127b (diff) | |
download | hurrycurry-e72b9cc631290ec2d3d8d3cc9451d6dced9f984a.tar hurrycurry-e72b9cc631290ec2d3d8d3cc9451d6dced9f984a.tar.bz2 hurrycurry-e72b9cc631290ec2d3d8d3cc9451d6dced9f984a.tar.zst |
add ingame "pause" menu
Diffstat (limited to 'client/menu')
-rw-r--r-- | client/menu/ingame_menu.gd | 9 | ||||
-rw-r--r-- | client/menu/ingame_menu.tscn | 112 | ||||
-rw-r--r-- | client/menu/main_menu.gd | 3 | ||||
-rw-r--r-- | client/menu/scene_transition.gd | 24 | ||||
-rw-r--r-- | client/menu/scene_transition.tscn | 9 |
5 files changed, 153 insertions, 4 deletions
diff --git a/client/menu/ingame_menu.gd b/client/menu/ingame_menu.gd new file mode 100644 index 00000000..7a6d8e1a --- /dev/null +++ b/client/menu/ingame_menu.gd @@ -0,0 +1,9 @@ +extends Control + +@onready var anim = $AnimationPlayer + +func _on_main_menu_pressed(): + get_parent().transition_to("res://menu/main_menu.tscn") + +func _on_quit_pressed(): + get_parent().quit() diff --git a/client/menu/ingame_menu.tscn b/client/menu/ingame_menu.tscn new file mode 100644 index 00000000..641ec0d9 --- /dev/null +++ b/client/menu/ingame_menu.tscn @@ -0,0 +1,112 @@ +[gd_scene load_steps=10 format=3 uid="uid://lxlgtjm8hw7v"] + +[ext_resource type="Script" path="res://menu/ingame_menu.gd" id="1_gd1i3"] +[ext_resource type="Shader" path="res://menu/blur_mix.gdshader" id="1_o42mc"] +[ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme.tres" id="1_tm331"] +[ext_resource type="FontFile" uid="uid://bo4vh5xkpvrh1" path="res://menu/font-sansita-swashed.woff2" id="2_4u0ox"] + +[sub_resource type="Animation" id="Animation_660jl"] +resource_name = "activate" +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("side:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(-400, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 1) +} + +[sub_resource type="Animation" id="Animation_8sedy"] +length = 0.001 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("side:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(-400, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_u0kyp"] +_data = { +"RESET": SubResource("Animation_8sedy"), +"activate": SubResource("Animation_660jl") +} + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_o2vtr"] +shader = ExtResource("1_o42mc") +shader_parameter/blur_amount = 3.5 +shader_parameter/mix_amount = 0.3 +shader_parameter/color_over = null + +[sub_resource type="FontVariation" id="FontVariation_ud3l8"] +base_font = ExtResource("2_4u0ox") +variation_embolden = 0.5 + +[node name="IngameMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_tm331") +script = ExtResource("1_gd1i3") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_u0kyp") +} +speed_scale = 8.0 + +[node name="side" type="PanelContainer" parent="."] +material = SubResource("ShaderMaterial_o2vtr") +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +offset_left = -400.0 +offset_right = -90.0 +offset_bottom = 1296.0 +grow_vertical = 2 + +[node name="margin" type="MarginContainer" parent="side"] +layout_mode = 2 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="options" type="VBoxContainer" parent="side/margin"] +layout_mode = 2 + +[node name="title" type="Label" parent="side/margin/options"] +layout_mode = 2 +auto_translate = false +theme_override_colors/font_outline_color = Color(0.566408, 0.208917, 0.266045, 1) +theme_override_constants/outline_size = 10 +theme_override_fonts/font = SubResource("FontVariation_ud3l8") +theme_override_font_sizes/font_size = 48 +text = "Undercooked" + +[node name="spacer" type="Control" parent="side/margin/options"] +custom_minimum_size = Vector2(0, 10) +layout_mode = 2 + +[node name="main_menu" type="Button" parent="side/margin/options"] +layout_mode = 2 +text = "Main Menu" +alignment = 0 + +[node name="quit" type="Button" parent="side/margin/options"] +layout_mode = 2 +text = "Quit" +alignment = 0 + +[connection signal="pressed" from="side/margin/options/main_menu" to="." method="_on_main_menu_pressed"] +[connection signal="pressed" from="side/margin/options/quit" to="." method="_on_quit_pressed"] diff --git a/client/menu/main_menu.gd b/client/menu/main_menu.gd index 1ac80408..e7ffa70a 100644 --- a/client/menu/main_menu.gd +++ b/client/menu/main_menu.gd @@ -25,7 +25,7 @@ func _ready(): quit_button.hide() func _on_quit_pressed(): - get_tree().quit() + $SceneTransition.quit() func _on_credits_pressed(): $SceneTransition.transition_to("res://menu/credits_menu.tscn") @@ -48,7 +48,6 @@ func connect_to(url): Multiplayer.url = url $SceneTransition.transition_to("res://game.tscn") - func _on_change_character_pressed(): $SceneTransition.transition_to("res://menu/character_menu.tscn") diff --git a/client/menu/scene_transition.gd b/client/menu/scene_transition.gd index 8b972c1b..3ab7cdb6 100644 --- a/client/menu/scene_transition.gd +++ b/client/menu/scene_transition.gd @@ -17,12 +17,34 @@ class_name SceneTransition extends ColorRect @onready var anim = $animation +@export var ingame = false func _ready(): self.visible = true anim.play("fade_in") func transition_to(path: String): + await out() + get_tree().change_scene_to_file(path) + +func quit(): + await out() + get_tree().quit() + +func out(): + if menu.visible: + menu.anim.play_backwards("activate") + await menu.anim.animation_finished anim.play("fade_out") await anim.animation_finished - get_tree().change_scene_to_file(path) + +@onready var menu = $IngameMenu +func _process(_delta): + if ingame: + if not menu.visible and Input.is_action_just_pressed("pause"): + menu.visible = true + menu.anim.play("activate") + elif menu.visible and Input.is_action_just_pressed("pause"): + menu.anim.play_backwards("activate") + await menu.anim.animation_finished + menu.visible = false diff --git a/client/menu/scene_transition.tscn b/client/menu/scene_transition.tscn index df21d242..ddfd6238 100644 --- a/client/menu/scene_transition.tscn +++ b/client/menu/scene_transition.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=6 format=3 uid="uid://bg2d78ycorcqk"] +[gd_scene load_steps=7 format=3 uid="uid://bg2d78ycorcqk"] [ext_resource type="Script" path="res://menu/scene_transition.gd" id="1_fpbwj"] +[ext_resource type="PackedScene" uid="uid://lxlgtjm8hw7v" path="res://menu/ingame_menu.tscn" id="2_aqaj2"] [sub_resource type="Animation" id="Animation_xgn2a"] length = 0.001 @@ -69,3 +70,9 @@ libraries = { "": SubResource("AnimationLibrary_pea72") } speed_scale = 4.0 + +[node name="IngameMenu" parent="." instance=ExtResource("2_aqaj2")] +visible = false +layout_mode = 1 +offset_right = 2304.0 +offset_bottom = 1296.0 |