IDs, Events und Signals
Tatsächliche ID-Formate
| Domain | Beispiele | Regel/Verwendung |
|---|---|---|
| Weapon | weapon.pulse_rifle |
lowercase Präfix; Loadout/Replay/Replication/Unlock |
| Modification | mod.extended_magazine |
lowercase; Slot/Compatibility/Hash |
| Perk | perk.pulse.controlled_burst |
lowercase; Track/Tier/Loadout |
| Unlock | unlock.weapon.rail_rifle |
lowercase; Progression/Validator |
| Mastery track | mastery.assault_rifle |
Definition↔Perk↔Progression exakt gleich |
| Effect | effect.chain_lightning |
deklarativ; Runtime-Resolver fehlt |
| Power-up | powerup_overcharged_rounds |
runlokaler Catalog, physischer Drop, Replay und State-Hash |
| Room template | combat_small_example_01 |
lowercase snake_case; Catalog/Seed-Auswahl |
| Runtime encounter | encounter-{roomId} |
pro generiertem Raum |
| Run session | run_<suffix> |
Nakama generiert; Storage key |
| Hub | hub_local_001, Shared social-hub-main-v1 |
Registry vs. HubDefinition nicht verwechseln |
| Run mode | official, fun, community |
RunRules; noch nicht end-to-end |
Erlaubte Zeichen werden nicht überall zentral validiert. Persistente IDs deshalb auf lowercase ASCII [a-z0-9._-] beschränken. Umbenennung bricht Saves, Loadouts, Replays und Storage; es gibt keine Alias-/Migrationsschicht. Version ist ein separates Feld, nicht Teil jeder ID.
Zentrale EventBus-Events
- Scene:
SceneTransitionStartedEvent, Progress, Completed, Failed. - Network:
ConnectedToServerEvent,GameServerConnectionFailedEvent,GameServerDisconnectedEvent, PeerConnected/Disconnected. - Online:
AuthStateChangedEvent, HubJoined/Left/Presence, SocketConnectionChanged, UserProfileChanged. - Gameplay:
PlayerMovedEvent,PlayerStateChangedEvent,PlayerInteractionPromptChangedEvent,TerminalInteractionRequestedEvent. - Hub:
HubRemotePlayerUpsertedEvent, Moved, Removed,HubLocalPlayerAuthoritySnapshotEvent. - Dungeon:
DungeonObjectiveProgressChangedEvent,DungeonObjectivesCompletedEvent,DungeonExitUnlockedEvent. - Chat: ChannelJoined/Left/Updated, HistoryLoaded, MessageReceived, PresenceChanged.
Publisher/Subscriber müssen Thread-/Godot-Mainloop berücksichtigen; UI-Updates häufig über Callable.CallDeferred. Subscribe in Inject/Ready und Unsubscribe in ExitTree. Events sind keine Persistenz und kein Netzwerkvertrag.
Godot-Signals
Wichtige C#-Events: Player HealthChanged/Died, DungeonStartTerminal Activated, DungeonEnemy3D Died, DungeonChest3D Looted, RoomTracker CurrentRoomChanged, Encounter/Room Completed, Godot Area BodyEntered sowie Button/LineEdit-Signals. Handler genau einmal binden und lösen.
Verwandt: Services, Replay, Konventionen.