feat: tavern.gd — spawn player at assigned room SpawnPoint

This commit is contained in:
2026-04-14 03:11:06 +02:00
parent fb189ef534
commit 22b256a910

View File

@@ -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)