feat: tavern.gd — spawn player at assigned room SpawnPoint
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user