# Apple Hills Editor Tools – Menu Items Overview A single-page overview of all editor tools exposed via Unity menu items in `Assets/Editor`. Outlines what’s 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 you’ll see in Unity’s 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 rarity‑based card system with live UI preview and asset management. - Typical use: Create/edit `CardDefinition` assets, preview via the in‑editor card UI, manage visuals using `CardVisualConfig`. - Notes: Auto‑creates `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/`. ### `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 shouldn’t 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; auto‑save 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 in‑place 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: Batch‑randomize 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 per‑component 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/built‑ins 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; auto‑detects renderers and manages naming/paths. - Notes: Warns on very large variant counts and can auto‑choose 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 (single‑prefab and multi‑prefab pools). Supports auto‑refresh. - Typical use: Inspect pool usage in Play Mode to spot leaks, over‑allocation, 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 edit‑mode 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. Edit‑mode caveats apply: objects are added to the current scene, de‑init 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.