first commit
This commit is contained in:
38
scripts/main.gd
Normal file
38
scripts/main.gd
Normal file
@@ -0,0 +1,38 @@
|
||||
extends Node
|
||||
## Wechselt zwischen Menü und laufender Partie.
|
||||
|
||||
var menu: CanvasLayer
|
||||
var game: Node3D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
menu = preload("res://scripts/menu.gd").new()
|
||||
add_child(menu)
|
||||
Net.game_started.connect(_start_game)
|
||||
Net.server_closed.connect(_back_to_menu)
|
||||
|
||||
|
||||
## Das Spiel startet im Vollbild; F11 schaltet um.
|
||||
func _unhandled_key_input(event: InputEvent) -> void:
|
||||
if event is InputEventKey and event.pressed and event.keycode == KEY_F11:
|
||||
var full := DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN
|
||||
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED if full
|
||||
else DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||
get_viewport().set_input_as_handled()
|
||||
|
||||
|
||||
func _start_game(cfg: Dictionary) -> void:
|
||||
if game != null:
|
||||
return
|
||||
menu.queue_free()
|
||||
menu = null
|
||||
game = Node3D.new()
|
||||
game.set_script(preload("res://scripts/game.gd"))
|
||||
game.name = "Game" # fester Pfad, sonst findet das RPC-Routing den Knoten nicht
|
||||
add_child(game)
|
||||
game.setup(cfg)
|
||||
|
||||
|
||||
func _back_to_menu() -> void:
|
||||
if game != null:
|
||||
get_tree().change_scene_to_file("res://scenes/main.tscn")
|
||||
Reference in New Issue
Block a user