Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python3 | |
| """ | |
| Debug script to investigate the entity name resolution issue | |
| """ | |
| import sys | |
| import os | |
| # Add the src directory to Python path | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) | |
| def debug_entity_names(): | |
| try: | |
| # Import required modules | |
| from src.core.game_engine import get_game_engine | |
| from src.facades.game_facade import GameFacade | |
| from src.ui.interface_manager import InterfaceManager | |
| from src.ui.huggingface_ui import HuggingFaceUI | |
| print("🔍 Debugging Entity Name Resolution...") | |
| # Get game instances | |
| facade = GameFacade() | |
| ui = HuggingFaceUI(facade) | |
| interface_manager = InterfaceManager(facade, ui) | |
| engine = get_game_engine() | |
| # Add test players | |
| player1_id = facade.join_game('TestPlayer1') | |
| player2_id = facade.join_game('TestPlayer2') | |
| print(f"✅ Created players:") | |
| print(f" - TestPlayer1: {player1_id}") | |
| print(f" - TestPlayer2: {player2_id}") | |
| # Move players close to each other | |
| facade.move_player(player1_id, "right") | |
| facade.move_player(player2_id, "right") | |
| # Debug: Check what entities are actually in the world | |
| print(f"\n🌍 World contents:") | |
| world = engine.get_world() | |
| print(f" - NPCs: {list(world.npcs.keys())}") | |
| print(f" - Players: {list(world.players.keys())}") | |
| # Check each player object | |
| for pid in [player1_id, player2_id]: | |
| player = world.players.get(pid) | |
| if player: | |
| print(f" - Player {pid}: name='{player.name}', type={type(player)}") | |
| else: | |
| print(f" - Player {pid}: NOT FOUND!") | |
| # Check NPC details | |
| for npc_id, npc in world.npcs.items(): | |
| print(f" - NPC {npc_id}: {npc}") | |
| # Test proximity detection raw data | |
| proximity_data = facade.get_proximity_info(player1_id) | |
| print(f"\n📡 Raw proximity data:") | |
| print(f" - Data: {proximity_data}") | |
| nearby_entities = proximity_data.get("nearby_entities", []) | |
| print(f"\n🎯 Processing each nearby entity:") | |
| for i, entity in enumerate(nearby_entities): | |
| entity_id = entity['id'] | |
| print(f" Entity {i+1}: ID='{entity_id}'") | |
| # Test name resolution | |
| resolved_name = interface_manager._get_entity_name(entity_id) | |
| print(f" - Resolved name: '{resolved_name}'") | |
| # Check if it's in NPCs | |
| npc = world.npcs.get(entity_id) | |
| if npc: | |
| print(f" - Found as NPC: {npc}") | |
| else: | |
| print(f" - Not found in NPCs") | |
| # Check if it's in players | |
| player = world.players.get(entity_id) | |
| if player: | |
| print(f" - Found as Player: name='{player.name}', type={type(player)}") | |
| else: | |
| print(f" - Not found in Players") | |
| return True | |
| except Exception as e: | |
| print(f"❌ Debug failed: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| return False | |
| if __name__ == "__main__": | |
| debug_entity_names() | |