Files
AppleHillsProduction/docs/editor_tools_overview.md

160 lines
9.0 KiB
Markdown
Raw Normal View History

# Apple Hills Editor Tools Menu Items Overview
A single-page overview of all editor tools exposed via Unity menu items in `Assets/Editor`. Outlines whats available from the toolbar, what each tool does, and when to use it.
## Table of Contents
- [How to Read This Page](#how-to-read-this-page)
- [AppleHills Menu](#applehills-menu)
- [`AppleHills/Card Editor`](#applehillscard-editor)
- [`AppleHills/Settings Editor`](#applehillssettings-editor)
- [`AppleHills/Developer Settings Editor`](#applehillsdeveloper-settings-editor)
- [`AppleHills/Item Prefab Creator`](#applehillsitem-prefab-creator)
- [`AppleHills/Item Prefab Editor`](#applehillsitem-prefab-editor)
- [`AppleHills/Scene Object Locator`](#applehillsscene-object-locator)
- [Tools Menu](#tools-menu)
- [`Tools/Batch Property Randomizer`](#toolsbatch-property-randomizer)
- [`Tools/Batch Component Adder`](#toolsbatch-component-adder)
- [`Tools/Component Transfer Tool`](#toolscomponent-transfer-tool)
- [`Tools/Sprite Variant Generator`](#toolssprite-variant-generator)
- [`Tools/Scene Browser`](#toolsscene-browser)
- [`Tools/Pool Monitor`](#toolspool-monitor)
- [`Tools/Sprite Collider Generator`](#toolssprite-collider-generator)
- [Bootstrap Menu](#bootstrap-menu)
- [`Bootstrap/Editor Initialise` (toggle)](#bootstrapeditor-initialise-toggle)
- [Assets/Create Menu](#assetscreate-menu)
- [`Assets/Create/Dialogue Graph`](#assetscreatedialogue-graph)
- [Paths & References](#paths--references)
## How to Read This Page
- Menu Path: the exact path youll see in Unitys top menu. Click it to open/run the tool.
- File: where the tool is implemented (for quick code lookup). All names/paths are shown as inline code.
- What it does: a brief, practical summary.
- Typical use: when to use it.
- Notes: caveats or behavior details.
---
## AppleHills Menu
### `AppleHills/Card Editor`
- File: `Assets/Editor/CardSystem/CardEditorWindow.cs`
- What it does: Opens the card authoring window for the raritybased card system with live UI preview and asset management.
- Typical use: Create/edit `CardDefinition` assets, preview via the ineditor card UI, manage visuals using `CardVisualConfig`.
- Notes: Autocreates `Assets/Data/Cards` on first run and discovers all `CardDefinition` assets there. Loads `Assets/Prefabs/UI/Cards/SIngleCardDisplayUI.prefab` for preview.
### `AppleHills/Settings Editor`
- File: `Assets/Editor/Settings/SettingsEditorWindow.cs`
- What it does: Centralized editor for project settings assets derived from `BaseSettings` (e.g., `PlayerFollowerSettings`, `InteractionSettings`, `DivingMinigameSettings`).
- Typical use: Create/edit settings assets under `Assets/Settings/` and sync editor-time previews via `SettingsAccess`.
- Notes: Ensure Addressables keys are correct for runtime: `Settings/<TypeName>`.
### `AppleHills/Developer Settings Editor`
- File: `Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs`
- What it does: Opens the developer-focused settings page (QA/dev toggles, diagnostics). Useful for dev-only configuration.
- Typical use: Adjust developer options that shouldnt ship to players but are useful during iteration.
### `AppleHills/Item Prefab Creator`
- File: `Assets/Editor/Tools/PrefabCreatorWindow.cs`
- What it does: Creates new item prefabs quickly and optionally wires data (`PickupItemData`, `PuzzleStepSO`) and components (`Interactable`, `Pickup`, `ItemSlot`, `ObjectiveStepBehaviour`).
- Typical use: Rapidly scaffold interactable items with correct layers and components; autosave to chosen `Assets/Prefabs/...` and `Assets/Data/...` paths.
- Notes: Uses helper `PrefabEditorUtility` for folder selection and ScriptableObject creation.
### `AppleHills/Item Prefab Editor`
- File: `Assets/Editor/Tools/ItemPrefabEditor.cs`
- What it does: Edits selected item prefabs/objects that include `Interactable`, toggling between `Pickup`/`ItemSlot`, and adding `ObjectiveStepBehaviour`. Allows inplace editing/creation of linked `PickupItemData` and `PuzzleStepSO`.
- Typical use: Convert/update existing prefab setup without leaving the inspector flow.
### `AppleHills/Scene Object Locator`
- File: `Assets/Editor/Tools/SceneObjectLocatorWindow.cs`
- What it does: Scans the current scene and lists `ObjectiveStepBehaviour` and `Pickup` objects with useful metadata (paths, data references). Provides ping shortcuts.
- Typical use: Quickly find puzzle steps and items across the scene for debugging and content reviews.
---
## Tools Menu
### `Tools/Batch Property Randomizer`
- File: `Assets/Editor/Tools/BatchRandomizerWindow.cs`
- What it does: Batchrandomize selected serialized properties across many objects/components, with child inclusion and path filtering.
- Typical use: Variations pass for sprites, colors, numbers on many selected GameObjects (and their children) at once.
- Notes: Preserves expanded paths in UI; tall window with percomponent grouping.
### `Tools/Batch Component Adder`
- File: `Assets/Editor/Utilities/BatchComponentAdder.cs`
- What it does: Adds a selected `Component` type to multiple prefabs/assets in bulk. Includes filtering for scripts/builtins and a searchable component list.
- Typical use: Ensure a set of prefabs all have the same helper component.
### `Tools/Component Transfer Tool`
- File: `Assets/Editor/Utilities/ComponentTransferWindow.cs`
- What it does: Copies selected components from one GameObject (source) to another (target) with a checklist UI.
- Typical use: Migrate components during refactors; clone setups between similar objects.
- Notes: Guards against selecting the same source/target.
### `Tools/Sprite Variant Generator`
- File: `Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs`
- What it does: Generates multiple prefab variants by assigning different sprites to detected `SpriteRenderer` components within a source prefab.
- Typical use: Produce skins/variants en masse for a base prefab; autodetects renderers and manages naming/paths.
- Notes: Warns on very large variant counts and can autochoose a save folder next to the source prefab.
### `Tools/Scene Browser`
- File: `Assets/Editor/Tools/SceneBrowserWindow.cs`
- What it does: Lists all scenes under `Assets/Scenes` grouped by folders, with buttons to open/locate and toggle inclusion in Build Settings.
- Typical use: Navigate/open scenes quickly; manage Build Settings membership from one place.
### `Tools/Pool Monitor`
- File: `Assets/Editor/Utilities/PoolMonitorWindow.cs`
- What it does: Displays runtime object pool statistics (singleprefab and multiprefab pools). Supports autorefresh.
- Typical use: Inspect pool usage in Play Mode to spot leaks, overallocation, or churn.
- Notes: Play Mode only; shows a helpful message otherwise.
### `Tools/Sprite Collider Generator`
- File: `Assets/Editor/Utilities/SpriteColliderGenerator.cs`
- What it does: Generates polygon colliders for sprites based on their alpha, for one or many selected sprites/assets.
- Typical use: Quickly add colliders to 2D sprites without manual tracing.
---
## Bootstrap Menu
### `Bootstrap/Editor Initialise` (toggle)
- File: `Assets/Editor/Bootstrap/CustomBootEditorUtils.cs`
- What it does: Toggles editmode bootstrapping. When enabled, `CustomBoot` initialises in Edit Mode so you can preview booted systems in the Scene view.
- Typical use: Designer/dev preview of booted singletons/services without entering Play Mode.
- Notes: This menu item has a validator (`[MenuItem(EDITOR_INIT_MENU, true)]`) to show a checkmark when enabled. Editmode caveats apply: objects are added to the current scene, deinit occurs on scene save and when entering Play Mode.
---
## Assets/Create Menu
### `Assets/Create/Dialogue Graph`
- File: `Assets/Editor/Dialogue/DialogueGraph.cs`
- What it does: Creates a new `RuntimeDialogueGraph` asset for the dialogue system.
- Typical use: Start a new NPC conversation graph; then open it in the dialogue editor.
---
## Paths & References
- Bootstrap
- `Assets/Editor/Bootstrap/CustomBootEditorUtils.cs`
- `Assets/Editor/Bootstrap/CustomBootSettingsProvider.cs` (Project Settings provider, not a menu item)
- `Assets/Editor/Bootstrap/CustomBootProjectSettings.cs` (settings asset class, not a menu item)
- Card System
- `Assets/Editor/CardSystem/CardEditorWindow.cs`
- Dialogue
- `Assets/Editor/Dialogue/DialogueGraph.cs`
- Settings
- `Assets/Editor/Settings/SettingsEditorWindow.cs`
- `Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs`
- Tools & Utilities
- `Assets/Editor/Tools/BatchRandomizerWindow.cs`
- `Assets/Editor/Tools/PrefabCreatorWindow.cs`
- `Assets/Editor/Tools/ItemPrefabEditor.cs`
- `Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs`
- `Assets/Editor/Tools/SceneBrowserWindow.cs`
- `Assets/Editor/Tools/SceneObjectLocatorWindow.cs`
- `Assets/Editor/Utilities/BatchComponentAdder.cs`
- `Assets/Editor/Utilities/ComponentTransferWindow.cs`
- `Assets/Editor/Utilities/PoolMonitorWindow.cs`
- `Assets/Editor/Utilities/SpriteColliderGenerator.cs`
If you add a new tool with `[MenuItem("...")]`, please also add it to this page to keep the overview current.