mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-01-20 03:54:47 +00:00
59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
[gd_scene load_steps=3 format=3 uid="uid://58gb6qi4jojs"]
|
|
|
|
[ext_resource type="PackedScene" uid="uid://bjctlqvs33nqy" path="res://interfaces/menus/boot/boot.tscn" id="1_acy5o"]
|
|
|
|
[sub_resource type="GDScript" id="GDScript_e61dq"]
|
|
script/source = "
|
|
extends Node3D
|
|
class_name Main
|
|
|
|
@onready var main_menu = $MainMenu
|
|
@onready var game_mode = $GameMode
|
|
|
|
func _ready():
|
|
$MainMenu.start_demo.connect(_start_demo)
|
|
$MainMenu.start_server.connect(_start_server)
|
|
$MainMenu.join_server.connect(_join_server)
|
|
|
|
func _unhandled_input(event):
|
|
# exit the program
|
|
if event.is_action_pressed(\"exit\"):
|
|
get_tree().quit()
|
|
# switch window mode
|
|
if event.is_action_pressed(\"window_mode\"):
|
|
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
|
else:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
|
|
|
func game_mode_cleanup():
|
|
for c in game_mode.get_children():
|
|
game_mode.remove_child(c)
|
|
c.queue_free()
|
|
|
|
func start_game_mode(game_mode_scene : PackedScene):
|
|
main_menu.hide()
|
|
game_mode_cleanup()
|
|
var scene_instance = game_mode_scene.instantiate()
|
|
game_mode.add_child(scene_instance)
|
|
return scene_instance
|
|
|
|
func _start_demo():
|
|
start_game_mode(load(\"res://game_modes/demo.tscn\"))
|
|
|
|
func _start_server(peer):
|
|
var server_scene = start_game_mode(load(\"res://game_modes/multiplayer.tscn\"))
|
|
server_scene.start_server(peer)
|
|
|
|
func _join_server(peer):
|
|
var client_scene = start_game_mode(load(\"res://game_modes/multiplayer.tscn\"))
|
|
client_scene.join_server(peer)
|
|
"
|
|
|
|
[node name="Game" type="Node3D"]
|
|
script = SubResource("GDScript_e61dq")
|
|
|
|
[node name="MainMenu" parent="." instance=ExtResource("1_acy5o")]
|
|
|
|
[node name="GameMode" type="Node3D" parent="."]
|