# Transition Configurator Plugin

A Godot 4.x editor plugin that simplifies configuring TransitionPiece exits in the King's Quest IV remake.

## Features

- **Fuzzy search** for finding rooms quickly
- **Visual selection** of destination TransitionPieces as arrival points
- **Bidirectional wiring** - automatically updates return transitions
- **Validation** - warns if destination doesn't have appropriate arrival points
- **Auto-reload** - refreshes scenes in editor after changes

## Installation

1. Copy the `addons/transition_configurator/` folder to your project's `addons/` directory
2. Enable the plugin in Project Settings → Plugins
3. Restart the editor (recommended)

## Usage

1. Select a TransitionPiece node in your scene
2. In the Inspector, click the **"Configure Exit..."** button
3. Use the search box to filter rooms (fuzzy matching)
4. Click on a room to see its available TransitionPieces
5. Select an arrival point
6. Click **Apply Changes**

The plugin will:
- Update the selected TransitionPiece's `target` and `appear_at_node` properties
- Update (or create) the return transition in the destination room
- Reload the destination scene in the editor

## How It Works

- **Room Discovery**: Scans `res://scenes/` for `.tscn` files starting with `kq4_`
- **Arrival Points**: Lists all TransitionPiece instances in the selected room
- **Bidirectional Updates**: Finds or creates a return TransitionPiece named after the current room
- **UID Resolution**: Extracts UIDs from scene files for proper target references

## Files

- `plugin.cfg` - Plugin metadata
- `transition_configurator.gd` - Main EditorPlugin entry point
- `transition_inspector_plugin.gd` - Adds UI to TransitionPiece inspector
- `config_dialog.gd` - Configuration dialog with search and selection
- `fuzzy_search.gd` - Fuzzy text matching utility

## Requirements

- Godot 4.x
- TransitionPiece class (class_name TransitionPiece)
- Room scenes in `res://scenes/` following `kq4_XXX_*` naming convention

## Notes

- The plugin uses UndoRedo for source scene changes
- Destination scene changes are saved and reloaded automatically
- If bidirectional update fails, the source changes are still applied
