#!/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()