# How to Use the Visual Map Names System

## Quick Setup

1. **Make sure you have the MapSceneSetup script** attached to any GameObject in your scene
2. **Play the scene** - it will automatically set up all components
3. **Names will appear on the map** by default as white text labels
4. **Press N key** to toggle names on/off
5. **Hover over locations** to see tooltips and highlighting

## What You'll See

### Visual Names on Map
- **Towns**: Large names at the center of 3x3 town areas
- **Villages**: Names above single village tiles  
- **Forests**: Names at the center of connected forest regions
- **Lakes/Waters**: Names at the center of water bodies

### Interactive Features
- **Hover tooltips**: Move mouse over named areas to see tooltips
- **Region highlighting**: Primary (yellow) on hovered tile, secondary (light yellow) on connected tiles
- **Toggle display**: Press **N key** to show/hide all names
- **Road naming removed**: Roads no longer get names (as requested)

## Controls

- **WASD**: Move camera around map
- **Mouse Scroll**: Zoom in/out
- **Mouse Hover**: Show tooltips and highlighting  
- **N Key**: Toggle permanent name display on/off

## Customization

### In MapNameDisplay Component Inspector:
- **Text Font**: Assign a custom font (optional)
- **Font Size**: Adjust text size (default: 14)
- **Text Color**: Change text color (default: white)
- **Text Outline Color**: Change outline color (default: black)
- **Text Height**: How high above tiles the text appears
- **Show Names On Start**: Whether names show immediately when scene loads
- **Toggle Display Key**: Which key toggles names (default: N)

### Debugging
- Set **Debug Mode** to true in both TileHoverHandler and MapNameDisplay
- Check console for name generation and display messages

## Troubleshooting

### No Names Visible
1. Make sure MapSceneSetup script is on a GameObject in the scene
2. Check that MapNameDisplay component was created (look in hierarchy)
3. Try pressing N key to toggle names
4. Check console for error messages

### Names Don't Update After Map Regeneration
- Use the "Regenerate Map" context menu on MapSceneSetup component
- Or manually call nameDisplay.RefreshLabels() in code

### Names Not Facing Camera
- Make sure camera is tagged as "MainCamera"
- Check that MapNameDisplay found the camera (debug messages)

## Technical Notes

- Names are generated once when the map creates
- Text uses Unity's TextMesh component for 3D world-space rendering
- Reflection is used to access name data from TileHoverHandler
- Labels automatically face the camera and include black outlines for readability
