Files
AppleHillsProduction/docs/editor_tools_overview.md
2025-10-21 14:54:58 +02:00

160 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.