From 22b256a9106ec81dfeab70f0f46c830506aae044 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Tue, 14 Apr 2026 03:11:06 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20tavern.gd=20=E2=80=94=20spawn=20player?= =?UTF-8?q?=20at=20assigned=20room=20SpawnPoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruf-der-pilze/scripts/tavern.gd | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/ruf-der-pilze/scripts/tavern.gd b/ruf-der-pilze/scripts/tavern.gd index d3810a7..23583a2 100644 --- a/ruf-der-pilze/scripts/tavern.gd +++ b/ruf-der-pilze/scripts/tavern.gd @@ -1,5 +1,29 @@ extends Node3D +const ROOM_COUNT := 8 + func _ready() -> void: - print("[Tavern] Scene loaded. Room index: %d" % SceneManager.pending_room_index) + var args := OS.get_cmdline_args() + OS.get_cmdline_user_args() + if OS.has_feature("dedicated_server") or "--server" in args: + return + var room_index := SceneManager.pending_room_index + _spawn_player(room_index) + + +func _spawn_player(room_index: int) -> void: + var room_num := (room_index % ROOM_COUNT) + 1 # Zimmer heißen Room1..Room8 + var spawn_path := "UpperFloor/Room%d/SpawnPoint" % room_num + var spawn := get_node_or_null(spawn_path) as Marker3D + if spawn == null: + push_error("[Tavern] SpawnPoint nicht gefunden: %s" % spawn_path) + return + var controller := Node3D.new() + controller.name = "PlayerController" + var camera := Camera3D.new() + camera.name = "Camera3D" + camera.current = true + controller.add_child(camera) + add_child(controller) + controller.global_transform = spawn.global_transform + print("[Tavern] Spieler gespawnt in %s" % spawn_path)