[gd_scene load_steps=5 format=3 uid="uid://ma1if3sjox6i"] [ext_resource type="PackedScene" uid="uid://boviiugcnfyrj" path="res://modes/demo.tscn" id="1_50a80"] [ext_resource type="PackedScene" uid="uid://bjctlqvs33nqy" path="res://interfaces/menus/boot/boot.tscn" id="1_acy5o"] [ext_resource type="PackedScene" uid="uid://c7ae4jw5d8mue" path="res://modes/multiplayer.tscn" id="2_g8xeb"] [sub_resource type="GDScript" id="GDScript_e61dq"] script/source = "class_name Game extends Node3D @export_category(\"Modes\") @export var SINGLEPLAYER : PackedScene @export var MULTIPLAYER : PackedScene var mode : Node func _ready(): $BootMenu.start_demo.connect(_start_demo) $BootMenu/Multiplayer.start_server.connect(_start_server) $BootMenu/Multiplayer.join_server.connect(_join_server) func _start_demo(): if mode: mode.queue_free() mode = SINGLEPLAYER.instantiate() # demo scene add_child(mode) $BootMenu.hide() func _start_server(port): if mode: mode.queue_free() mode = MULTIPLAYER.instantiate() # server scene add_child(mode) mode.start_server(port) $BootMenu.hide() func _join_server(host, port): if mode: mode.queue_free() mode = MULTIPLAYER.instantiate() # client scene add_child(mode) mode.connected_to_server.connect($BootMenu/Multiplayer._on_connected_to_server) mode.connection_failed.connect($BootMenu/Multiplayer._on_connection_failed) mode.join_server(host, port) 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) # switch mouse mode if OS.is_debug_build() and Input.is_action_just_pressed(\"toggle_mouse_capture\"): if Input.mouse_mode == Input.MOUSE_MODE_VISIBLE: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED elif Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE " [node name="Game" type="Node3D"] script = SubResource("GDScript_e61dq") SINGLEPLAYER = ExtResource("1_50a80") MULTIPLAYER = ExtResource("2_g8xeb") [node name="BootMenu" parent="." instance=ExtResource("1_acy5o")]