File size: 3,425 Bytes
4c75d73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/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()