Trigger in Halle der Ahnen eingebaut

This commit is contained in:
torsten 2026-02-16 13:32:59 +01:00
parent e7ebb20428
commit 69a5616ae9
3 changed files with 10 additions and 8 deletions

View file

@ -56,9 +56,9 @@ Alle Skripte und die dazugehörige Logik sollen thematisch in Unterordnern unter
- **Click-to-Move:** Die Spielerbewegung soll aus Performancegründen über eine AStar-Implementierung (`systems/navigation/`) gesteuert werden.
- **GDScript-Konvention: `async`-Schlüsselwort vermeiden:** In GDScript 4 wird jede Funktion, die `await` enthält, automatisch von der Engine als asynchron behandelt. Das `async`-Schlüsselwort in der Funktionssignatur (`async func...`) ist optional und hat in diesem Projekt wiederholt zu schwer diagnostizierbaren Syntaxfehlern geführt.
- **Regel:** Das `async`-Schlüsselwort **darf nicht** verwendet werden.
- **Korrekt:** `func my_function(): await get_tree().process_frame`
- **Falsch:** `async func my_function(): await get_tree().process_frame`
- **Regel:** Das `async`-Schlüsselwort **darf nicht** verwendet werden.
- **Korrekt:** `func my_function(): await get_tree().process_frame`
- **Falsch:** `async func my_function(): await get_tree().process_frame`
## 6. Globale Skripte (Autoloads)
@ -127,4 +127,4 @@ Die Konfiguration des `MultiplayerSynchronizer` für wiederverwendbare Szenen (w
### Dynamische Konfiguration des MultiplayerSpawner
- Handhabt nicht nur originäre Objekterzeugung in den Levels, sondern auch Objektaktualisierungen für "Late Joiner"
- Generischer MultiplayerSpawner in Basis Level, von dem alle Level erben, so dass die Spawnliste nur 1x bearbeitet werden muss
- Generischer MultiplayerSpawner in Basis Level, von dem alle Level erben, so dass die Spawnliste nur 1x bearbeitet werden muss

View file

@ -1,5 +1,7 @@
[gd_scene format=3 uid="uid://bef0tj7n6g8uo"]
[ext_resource type="PackedScene" uid="uid://coq1j1cdrvqyn" path="res://systems/interaction/portal/portal.tscn" id="1_4r2hu"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_d3jw7"]
sky_top_color = Color(0.055328622, 0.3637527, 0.67898166, 1)
ground_bottom_color = Color(0.28193337, 0.24096331, 0.19489476, 1)
@ -57,3 +59,7 @@ shape = SubResource("ConcavePolygonShape3D_0hy1c")
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="." unique_id=1610787579]
_spawnable_scenes = PackedStringArray("uid://bjurf8vfd1fg8")
spawn_path = NodePath("../SpawnPoints")
[node name="Portal" parent="." unique_id=988801188 instance=ExtResource("1_4r2hu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.1332607, 0.014829755, 8.73144)
target_area_key = "keuwin_grasland"

View file

@ -166,10 +166,6 @@ func _spawn_player_in_world(id, spawn_target_node):
player.set_multiplayer_authority(1)
spawn_target_node.add_child(player, true)
# SCHRITT 2: Explizit auf den nächsten Frame warten.
# Dies gibt Godot die Zeit, die _ready() Funktion des Spielers auszuführen.
await get_tree().process_frame
# SCHRITT 3: Jetzt ist der Spieler garantiert bereit und konfiguriert.
# Alle folgenden Operationen sind sicher.
var sync = player.get_node("MultiplayerSynchronizer")