From 9efced2ac855b74373e49c69e7394f3b7c86e3d2 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Tue, 14 Apr 2026 03:08:04 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20add=20GameState=20autoload=20=E2=80=94?= =?UTF-8?q?=20overlay=20states=20and=20player=20positions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruf-der-pilze/project.godot | 1 + ruf-der-pilze/scripts/game_state.gd | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 ruf-der-pilze/scripts/game_state.gd diff --git a/ruf-der-pilze/project.godot b/ruf-der-pilze/project.godot index 305a9ff..81d7f06 100644 --- a/ruf-der-pilze/project.godot +++ b/ruf-der-pilze/project.godot @@ -20,6 +20,7 @@ config/icon="res://icon.svg" MCPGameBridge="res://addons/godot_mcp/game_bridge/mcp_game_bridge.gd" NetworkManager="*res://scripts/network_manager.gd" SceneManager="*res://scripts/scene_manager.gd" +GameState="*res://scripts/game_state.gd" [editor_plugins] diff --git a/ruf-der-pilze/scripts/game_state.gd b/ruf-der-pilze/scripts/game_state.gd new file mode 100644 index 0000000..3273fc4 --- /dev/null +++ b/ruf-der-pilze/scripts/game_state.gd @@ -0,0 +1,21 @@ +extends Node + +# Overlay-Zustand pro Spieler (nur auf dem DM-Client befüllt via RPC) +# "default" = kein Overlay aktiv +var overlay_states: Dictionary = {} # peer_id (int) → String + +# Spieler-Positionen (nur auf dem DM-Client befüllt via sync_player_position) +var player_positions: Dictionary = {} # peer_id (int) → {position: Vector3, rotation: Vector3} + + +func get_overlay(peer_id: int) -> String: + return overlay_states.get(peer_id, "default") + + +func set_overlay_local(peer_id: int, overlay_name: String) -> void: + overlay_states[peer_id] = overlay_name + print("[GameState] Overlay für %d → %s" % [peer_id, overlay_name]) + + +func update_player_transform(peer_id: int, position: Vector3, rotation: Vector3) -> void: + player_positions[peer_id] = {position = position, rotation = rotation}