MMORPG_AI_NPC_MCP_CLIENT_SERVER / tests /debug_entity_names.py
Chris4K's picture
Upload 195 files
4c75d73 verified
#!/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()