Files
Blockline/docs/NODE_ARCHITECTURE.md
T

20 lines
2.6 KiB
Markdown

# Node-Architektur
## Umgesetzter Kern
Fighter besitzt PlayerMovement, PlayerWeaponController und ReplicationState als Kind-Nodes. PlayerMovement berechnet Bewegung ausschließlich aus übergebenen Werten; PlayerWeaponController aktualisiert Timer/Munitionswerte ohne Referenz auf Bewegung, Parent oder HUD. Fighter koordiniert CharacterBody3D-Kollisionen, Mantling und Zustandsübergänge. Serverweite Trefferlogik verbleibt in CombatSystem.
Fighter meldet Respawn, Combat-Actions, Bot-Update, Fallschaden und Schritte per Signal an Game. GameUI meldet Host, Join, Leave und Speichern per Signal. Granaten melden Detonation; WreckFire meldet Schadensintervalle. Game verbindet diese Ereignisse und ruft seine Kind-Systeme auf.
Direkte get_parent/get_node/find_child-Aufrufe in _process/_physics_process wurden entfernt. WeaponView cached Magazin, Verschluss und Mündungsmarker beim Modellwechsel. Die Reflex-Linse wird beim Anbau im Modell hinterlegt. Für diese dynamisch ausgetauschten Nodes wäre allein @onready veraltet; Cache-Aktualisierung erfolgt bei jedem Neuaufbau.
ReplicationState exportiert position, velocity, yaw, pitch, shot_serial, weapon und life. configuration() liefert eine SceneReplicationConfig mit sieben Properties. Für eine spätere MultiplayerSynchronizer-Instanz muss root_path auf den ReplicationState-Node zeigen und replication_config auf dessen configuration(). Der bestehende serverautoritäre RPC-Snapshot bleibt derzeit allein aktiv. Vor Aktivierung sind ein MultiplayerSpawner und die Empfangsanwendung/Prediction-Abstimmung erforderlich; der Synchronizer ist nicht bereits als Ersatznetzwerk getestet.
## Verbleibende Abhängigkeiten
Dies ist ein vorbereitender Kernumbau, keine vollständig abgeschlossene projektweite Umsetzung von Call Down / Signal Up. Fighter liest weiterhin Game-Zustand und fragt die Todeskamera ab. HUD fragt Gegnerbeziehungen, Sichtlinien und Killcam-Zustand ab. Killstreaks, Objectives, Dedizierter Server und einige RefCounted-Helfer besitzen weiterhin direkte Game-/Subsystemzugriffe. Bewegungskollision/Mantling und Waffenstatus werden weiterhin durch Fighter koordiniert. Diese Stellen benötigen weitere gezielte Extraktion in Zustands-/Abfrageschnittstellen. Keine vollständige Unabhängigkeit sämtlicher bestehender Systeme behauptet.
## Prüfung
map_weapon_corrections: 24/24; auto_reload: 15/15; node_architecture: unabhängige Bewegungs-/Waffenberechnung und sieben auflösbare Replikationsproperties bestanden. Bestehender FPS-LAN-Test: Host und Client erfolgreich. Vollständiger Parseraudit über tests/audit_gdscript.py, JSON-Ergebnis unter logs/gdscript-audit.json.