Session quitting
This commit is contained in:
parent
2705959bfd
commit
4dce5bd4ca
7 changed files with 48 additions and 2 deletions
|
|
@ -1,7 +1,8 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://dstie24qkbc86"]
|
[gd_scene load_steps=4 format=3 uid="uid://dstie24qkbc86"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bv6ptrditssow" path="res://scenes/gui/client_settings.tscn" id="1_yqjtg"]
|
[ext_resource type="PackedScene" uid="uid://bv6ptrditssow" path="res://scenes/gui/client_settings.tscn" id="1_yqjtg"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cbtp4rvg66ba1" path="res://scenes/main_menu.tscn" id="2_lnu2h"]
|
[ext_resource type="PackedScene" uid="uid://cbtp4rvg66ba1" path="res://scenes/main_menu.tscn" id="2_lnu2h"]
|
||||||
|
[ext_resource type="Script" uid="uid://dj4mlrime72hx" path="res://scripts/multiplayer/level_container.gd" id="3_lnu2h"]
|
||||||
|
|
||||||
[node name="Game" type="Node"]
|
[node name="Game" type="Node"]
|
||||||
|
|
||||||
|
|
@ -12,6 +13,7 @@ unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="LevelContainer" type="Node" parent="."]
|
[node name="LevelContainer" type="Node" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource("3_lnu2h")
|
||||||
|
|
||||||
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="LevelContainer"]
|
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="LevelContainer"]
|
||||||
_spawnable_scenes = PackedStringArray("uid://cqrh2cc7m2i7f", "uid://cc2v2f2ppu68w")
|
_spawnable_scenes = PackedStringArray("uid://cqrh2cc7m2i7f", "uid://cc2v2f2ppu68w")
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ grow_vertical = 2
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
|
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
script = ExtResource("1_xqyus")
|
script = ExtResource("1_xqyus")
|
||||||
|
|
||||||
|
|
@ -63,8 +62,14 @@ max_value = 1.0
|
||||||
step = 0.01
|
step = 0.01
|
||||||
value = 1.0
|
value = 1.0
|
||||||
|
|
||||||
|
[node name="LeaveButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Покинуть сессию"
|
||||||
|
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_pressed"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_pressed"]
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_toggled"]
|
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_toggled"]
|
||||||
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/Sensitivity/SensitivitySlider" to="CenterContainer/PanelContainer" method="_on_sensitivity_slider_value_changed"]
|
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/Sensitivity/SensitivitySlider" to="CenterContainer/PanelContainer" method="_on_sensitivity_slider_value_changed"]
|
||||||
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/Sensitivity/SensitivityBox" to="CenterContainer/PanelContainer" method="_on_sensitivity_box_value_changed"]
|
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/Sensitivity/SensitivityBox" to="CenterContainer/PanelContainer" method="_on_sensitivity_box_value_changed"]
|
||||||
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/GameplayMainAudio/GameplayMainSlider" to="CenterContainer/PanelContainer" method="_on_gameplay_main_slider_value_changed"]
|
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/GameplayMainAudio/GameplayMainSlider" to="CenterContainer/PanelContainer" method="_on_gameplay_main_slider_value_changed"]
|
||||||
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/LeaveButton" to="CenterContainer/PanelContainer" method="_on_leave_button_pressed"]
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,11 @@ extends Control
|
||||||
|
|
||||||
var cached_mouse_state: Input.MouseMode
|
var cached_mouse_state: Input.MouseMode
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
hide()
|
||||||
|
Session.session_started.connect(%LeaveButton.show)
|
||||||
|
Session.session_ended.connect(%LeaveButton.hide)
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("menu_settings"):
|
if event.is_action_pressed("menu_settings"):
|
||||||
visible = not visible
|
visible = not visible
|
||||||
|
|
@ -25,3 +30,7 @@ func _on_sensitivity_slider_value_changed(value: float) -> void:
|
||||||
func _on_sensitivity_box_value_changed(value: float) -> void:
|
func _on_sensitivity_box_value_changed(value: float) -> void:
|
||||||
$VBoxContainer/Sensitivity/HSlider.set_value_no_signal(value)
|
$VBoxContainer/Sensitivity/HSlider.set_value_no_signal(value)
|
||||||
ClientSettings.SENSITIVITY = value
|
ClientSettings.SENSITIVITY = value
|
||||||
|
|
||||||
|
|
||||||
|
func _on_leave_button_pressed() -> void:
|
||||||
|
Session.quit_session()
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ func _ready() -> void:
|
||||||
Lobby.lobby_created.connect(show_host_buttons)
|
Lobby.lobby_created.connect(show_host_buttons)
|
||||||
Lobby.lobby_closed.connect(cleanup_lobby)
|
Lobby.lobby_closed.connect(cleanup_lobby)
|
||||||
Lobby.update_teams_state.connect(on_player_switched_team)
|
Lobby.update_teams_state.connect(on_player_switched_team)
|
||||||
|
Session.session_ended.connect(on_session_ended)
|
||||||
|
|
||||||
$Lobby.hide()
|
$Lobby.hide()
|
||||||
$MainMenu.show()
|
$MainMenu.show()
|
||||||
|
|
@ -98,3 +99,12 @@ func _on_join_defence_button_pressed() -> void:
|
||||||
|
|
||||||
func _on_join_spectators_button_pressed() -> void:
|
func _on_join_spectators_button_pressed() -> void:
|
||||||
Lobby.switch_team(Session.TEAMS.SPECTATE)
|
Lobby.switch_team(Session.TEAMS.SPECTATE)
|
||||||
|
|
||||||
|
func on_session_ended() -> void:
|
||||||
|
show()
|
||||||
|
if Lobby.in_lobby:
|
||||||
|
$MainMenu.hide()
|
||||||
|
$Lobby.show()
|
||||||
|
else:
|
||||||
|
$MainMenu.show()
|
||||||
|
$Lobby.hide()
|
||||||
|
|
|
||||||
10
scripts/multiplayer/level_container.gd
Normal file
10
scripts/multiplayer/level_container.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
Session.session_ended.connect(destroy_level)
|
||||||
|
|
||||||
|
func destroy_level() -> void:
|
||||||
|
for child in get_children():
|
||||||
|
if child is MultiplayerSpawner:
|
||||||
|
continue
|
||||||
|
child.queue_free()
|
||||||
1
scripts/multiplayer/level_container.gd.uid
Normal file
1
scripts/multiplayer/level_container.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dj4mlrime72hx
|
||||||
|
|
@ -155,6 +155,15 @@ func end_session() -> void:
|
||||||
|
|
||||||
session_started_flag = false
|
session_started_flag = false
|
||||||
|
|
||||||
|
func quit_session() -> void:
|
||||||
|
if multiplayer.is_server():
|
||||||
|
end_session()
|
||||||
|
else:
|
||||||
|
session_ended.emit()
|
||||||
|
session_started_flag = false
|
||||||
|
Lobby.leave()
|
||||||
|
|
||||||
|
|
||||||
@rpc("authority","call_remote","reliable")
|
@rpc("authority","call_remote","reliable")
|
||||||
func start_round() -> void:
|
func start_round() -> void:
|
||||||
if not is_server_request():
|
if not is_server_request():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue