diff options
-rw-r--r-- | client/game.gd | 7 | ||||
-rw-r--r-- | client/game.tscn | 5 | ||||
-rw-r--r-- | client/menu/server_message.gd | 28 | ||||
-rw-r--r-- | client/menu/server_message.tscn | 60 |
4 files changed, 98 insertions, 2 deletions
diff --git a/client/game.gd b/client/game.gd index 671f328f..ac0fff9e 100644 --- a/client/game.gd +++ b/client/game.gd @@ -43,6 +43,7 @@ var players := {} @onready var debug_label = $Debug @onready var overlay = $Overlay @onready var lobby = $"../Lobby" +@onready var server_message: ServerMessage = $ServerMessage func _ready(): if !Global.on_vulkan(): @@ -220,7 +221,11 @@ func _ready(): await get_parent().menu_anim_exit() ) - mp.server_message.connect(func(text): print(text)) + mp.server_message.connect( + func(text): + print(text) + server_message.display_popup(text) + ) mp.score.connect(overlay.update) mp.hide_score.connect(overlay.reset) diff --git a/client/game.tscn b/client/game.tscn index 1d78793c..618ab195 100644 --- a/client/game.tscn +++ b/client/game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://c6krh36hoqfg8"] +[gd_scene load_steps=13 format=3 uid="uid://c6krh36hoqfg8"] [ext_resource type="Script" path="res://game.gd" id="1_sftfn"] [ext_resource type="PackedScene" uid="uid://b31mlnao6ybt8" path="res://player/follow_camera.tscn" id="2_s8y6o"] @@ -8,6 +8,7 @@ [ext_resource type="Script" path="res://multiplayer.gd" id="6_fbxu8"] [ext_resource type="PackedScene" uid="uid://b4gone8fu53r7" path="res://map/map.tscn" id="6_prg6t"] [ext_resource type="PackedScene" uid="uid://bpikve6wlsjfl" path="res://menu/overlay.tscn" id="7_7xrr6"] +[ext_resource type="PackedScene" uid="uid://b21nrnkygiyjt" path="res://menu/server_message.tscn" id="9_l5d71"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_py7px"] ground_bottom_color = Color(0.0826605, 0.065772, 0.0461518, 1) @@ -63,3 +64,5 @@ grow_vertical = 2 mouse_filter = 2 theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 5 + +[node name="ServerMessage" parent="." instance=ExtResource("9_l5d71")] diff --git a/client/menu/server_message.gd b/client/menu/server_message.gd new file mode 100644 index 00000000..ffd7887b --- /dev/null +++ b/client/menu/server_message.gd @@ -0,0 +1,28 @@ +# Undercooked - a game about cooking +# Copyright 2024 tpart +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +extends MarginContainer +class_name ServerMessage + +@onready var popup_timer = $PopupTimer +@onready var popup_label = $VBoxContainer/ServerMessage/Label + +func display_popup(msg: String): + popup_label.text = msg + show() + popup_timer.start() + +func _on_popup_timer_timeout(): + hide() diff --git a/client/menu/server_message.tscn b/client/menu/server_message.tscn new file mode 100644 index 00000000..06193d4a --- /dev/null +++ b/client/menu/server_message.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=7 format=3 uid="uid://b21nrnkygiyjt"] + +[ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme.tres" id="1_p0jm7"] +[ext_resource type="Shader" path="res://menu/blur_mix.gdshader" id="2_e1f4e"] +[ext_resource type="Script" path="res://menu/server_message.gd" id="2_j4xya"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_k0m35"] +shader = ExtResource("2_e1f4e") +shader_parameter/blur_amount = 3.5 +shader_parameter/mix_amount = 0.85 +shader_parameter/color_over = Color(1, 1, 1, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vq4dg"] +bg_color = Color(1, 1, 1, 0.878431) +corner_radius_top_left = 16 +corner_radius_top_right = 16 +corner_radius_bottom_right = 16 +corner_radius_bottom_left = 16 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3rgop"] +content_margin_left = 32.0 +content_margin_top = 8.0 +content_margin_right = 32.0 +content_margin_bottom = 8.0 + +[node name="ServerMessage" type="MarginContainer"] +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme = ExtResource("1_p0jm7") +script = ExtResource("2_j4xya") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 +mouse_filter = 2 + +[node name="ServerMessage" type="PanelContainer" parent="VBoxContainer"] +material = SubResource("ShaderMaterial_k0m35") +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 0 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_vq4dg") + +[node name="Label" type="Label" parent="VBoxContainer/ServerMessage"] +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_styles/normal = SubResource("StyleBoxEmpty_3rgop") +text = "Server message" +horizontal_alignment = 1 + +[node name="PopupTimer" type="Timer" parent="."] +wait_time = 3.0 +one_shot = true + +[connection signal="timeout" from="PopupTimer" to="." method="_on_popup_timer_timeout"] |