From 2abcf5c76a12232ec4bf9dcf2dc7c93623b72b80 Mon Sep 17 00:00:00 2001 From: Michal Adam Pikulski Date: Tue, 21 Oct 2025 14:54:58 +0200 Subject: [PATCH] Cleanup the editor assembly and provide a tool overview doc --- Assets/Editor/CustomEditorsAndDrawers.meta | 3 + .../DivingGameManagerEditor.cs | 0 .../DivingGameManagerEditor.cs.meta | 0 .../InteractableEditor.cs | 0 .../InteractableEditor.cs.meta | 0 .../InteractionTimelineActionEditor.cs | 0 .../InteractionTimelineActionEditor.cs.meta | 0 .../LayerPropertyDrawer.cs | 0 .../LayerPropertyDrawer.cs.meta | 0 .../TimelineEventMappingDrawer.cs | 0 .../TimelineEventMappingDrawer.cs.meta | 0 .../TrenchTileSpawnerEditor.cs | 0 .../TrenchTileSpawnerEditor.cs.meta | 0 .../PuzzleAssetProcessor.cs | 0 .../PuzzleAssetProcessor.cs.meta | 0 Assets/Editor/Settings.meta | 3 + .../DeveloperSettingsEditorWindow.cs | 0 .../DeveloperSettingsEditorWindow.cs.meta | 0 .../{ => Settings}/EditorSettingsProvider.cs | 0 .../EditorSettingsProvider.cs.meta | 0 .../{ => Settings}/SettingsEditorWindow.cs | 0 .../SettingsEditorWindow.cs.meta | 0 Assets/Editor/Tools.meta | 3 + .../{ => Tools}/BatchRandomizerWindow.cs | 0 .../{ => Tools}/BatchRandomizerWindow.cs.meta | 0 Assets/Editor/{ => Tools}/ItemPrefabEditor.cs | 0 .../{ => Tools}/ItemPrefabEditor.cs.meta | 0 .../Editor/{ => Tools}/PrefabCreatorWindow.cs | 0 .../{ => Tools}/PrefabCreatorWindow.cs.meta | 0 .../Editor/{ => Tools}/PrefabEditorUtility.cs | 0 .../{ => Tools}/PrefabEditorUtility.cs.meta | 0 .../PrefabVariantGeneratorWindow.cs | 0 .../PrefabVariantGeneratorWindow.cs.meta | 0 .../Editor/{ => Tools}/SceneBrowserWindow.cs | 0 .../{ => Tools}/SceneBrowserWindow.cs.meta | 0 .../{ => Tools}/SceneObjectLocatorWindow.cs | 0 .../SceneObjectLocatorWindow.cs.meta | 0 docs/editor_tools_overview.md | 160 ++++++++++++++++++ 38 files changed, 169 insertions(+) create mode 100644 Assets/Editor/CustomEditorsAndDrawers.meta rename Assets/Editor/{ => CustomEditorsAndDrawers}/DivingGameManagerEditor.cs (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/DivingGameManagerEditor.cs.meta (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/InteractableEditor.cs (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/InteractableEditor.cs.meta (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/InteractionTimelineActionEditor.cs (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/InteractionTimelineActionEditor.cs.meta (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/LayerPropertyDrawer.cs (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/LayerPropertyDrawer.cs.meta (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/TimelineEventMappingDrawer.cs (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/TimelineEventMappingDrawer.cs.meta (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/TrenchTileSpawnerEditor.cs (100%) rename Assets/Editor/{ => CustomEditorsAndDrawers}/TrenchTileSpawnerEditor.cs.meta (100%) rename Assets/Editor/{ => PuzzleSystem}/PuzzleAssetProcessor.cs (100%) rename Assets/Editor/{ => PuzzleSystem}/PuzzleAssetProcessor.cs.meta (100%) create mode 100644 Assets/Editor/Settings.meta rename Assets/Editor/{ => Settings}/DeveloperSettingsEditorWindow.cs (100%) rename Assets/Editor/{ => Settings}/DeveloperSettingsEditorWindow.cs.meta (100%) rename Assets/Editor/{ => Settings}/EditorSettingsProvider.cs (100%) rename Assets/Editor/{ => Settings}/EditorSettingsProvider.cs.meta (100%) rename Assets/Editor/{ => Settings}/SettingsEditorWindow.cs (100%) rename Assets/Editor/{ => Settings}/SettingsEditorWindow.cs.meta (100%) create mode 100644 Assets/Editor/Tools.meta rename Assets/Editor/{ => Tools}/BatchRandomizerWindow.cs (100%) rename Assets/Editor/{ => Tools}/BatchRandomizerWindow.cs.meta (100%) rename Assets/Editor/{ => Tools}/ItemPrefabEditor.cs (100%) rename Assets/Editor/{ => Tools}/ItemPrefabEditor.cs.meta (100%) rename Assets/Editor/{ => Tools}/PrefabCreatorWindow.cs (100%) rename Assets/Editor/{ => Tools}/PrefabCreatorWindow.cs.meta (100%) rename Assets/Editor/{ => Tools}/PrefabEditorUtility.cs (100%) rename Assets/Editor/{ => Tools}/PrefabEditorUtility.cs.meta (100%) rename Assets/Editor/{ => Tools}/PrefabVariantGeneratorWindow.cs (100%) rename Assets/Editor/{ => Tools}/PrefabVariantGeneratorWindow.cs.meta (100%) rename Assets/Editor/{ => Tools}/SceneBrowserWindow.cs (100%) rename Assets/Editor/{ => Tools}/SceneBrowserWindow.cs.meta (100%) rename Assets/Editor/{ => Tools}/SceneObjectLocatorWindow.cs (100%) rename Assets/Editor/{ => Tools}/SceneObjectLocatorWindow.cs.meta (100%) create mode 100644 docs/editor_tools_overview.md diff --git a/Assets/Editor/CustomEditorsAndDrawers.meta b/Assets/Editor/CustomEditorsAndDrawers.meta new file mode 100644 index 00000000..6d930d58 --- /dev/null +++ b/Assets/Editor/CustomEditorsAndDrawers.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fc97ce67a71641a3bbaac656c7052db7 +timeCreated: 1761050037 \ No newline at end of file diff --git a/Assets/Editor/DivingGameManagerEditor.cs b/Assets/Editor/CustomEditorsAndDrawers/DivingGameManagerEditor.cs similarity index 100% rename from Assets/Editor/DivingGameManagerEditor.cs rename to Assets/Editor/CustomEditorsAndDrawers/DivingGameManagerEditor.cs diff --git a/Assets/Editor/DivingGameManagerEditor.cs.meta b/Assets/Editor/CustomEditorsAndDrawers/DivingGameManagerEditor.cs.meta similarity index 100% rename from Assets/Editor/DivingGameManagerEditor.cs.meta rename to Assets/Editor/CustomEditorsAndDrawers/DivingGameManagerEditor.cs.meta diff --git a/Assets/Editor/InteractableEditor.cs b/Assets/Editor/CustomEditorsAndDrawers/InteractableEditor.cs similarity index 100% rename from Assets/Editor/InteractableEditor.cs rename to Assets/Editor/CustomEditorsAndDrawers/InteractableEditor.cs diff --git a/Assets/Editor/InteractableEditor.cs.meta b/Assets/Editor/CustomEditorsAndDrawers/InteractableEditor.cs.meta similarity index 100% rename from Assets/Editor/InteractableEditor.cs.meta rename to Assets/Editor/CustomEditorsAndDrawers/InteractableEditor.cs.meta diff --git a/Assets/Editor/InteractionTimelineActionEditor.cs b/Assets/Editor/CustomEditorsAndDrawers/InteractionTimelineActionEditor.cs similarity index 100% rename from Assets/Editor/InteractionTimelineActionEditor.cs rename to Assets/Editor/CustomEditorsAndDrawers/InteractionTimelineActionEditor.cs diff --git a/Assets/Editor/InteractionTimelineActionEditor.cs.meta b/Assets/Editor/CustomEditorsAndDrawers/InteractionTimelineActionEditor.cs.meta similarity index 100% rename from Assets/Editor/InteractionTimelineActionEditor.cs.meta rename to Assets/Editor/CustomEditorsAndDrawers/InteractionTimelineActionEditor.cs.meta diff --git a/Assets/Editor/LayerPropertyDrawer.cs b/Assets/Editor/CustomEditorsAndDrawers/LayerPropertyDrawer.cs similarity index 100% rename from Assets/Editor/LayerPropertyDrawer.cs rename to Assets/Editor/CustomEditorsAndDrawers/LayerPropertyDrawer.cs diff --git a/Assets/Editor/LayerPropertyDrawer.cs.meta b/Assets/Editor/CustomEditorsAndDrawers/LayerPropertyDrawer.cs.meta similarity index 100% rename from Assets/Editor/LayerPropertyDrawer.cs.meta rename to Assets/Editor/CustomEditorsAndDrawers/LayerPropertyDrawer.cs.meta diff --git a/Assets/Editor/TimelineEventMappingDrawer.cs b/Assets/Editor/CustomEditorsAndDrawers/TimelineEventMappingDrawer.cs similarity index 100% rename from Assets/Editor/TimelineEventMappingDrawer.cs rename to Assets/Editor/CustomEditorsAndDrawers/TimelineEventMappingDrawer.cs diff --git a/Assets/Editor/TimelineEventMappingDrawer.cs.meta b/Assets/Editor/CustomEditorsAndDrawers/TimelineEventMappingDrawer.cs.meta similarity index 100% rename from Assets/Editor/TimelineEventMappingDrawer.cs.meta rename to Assets/Editor/CustomEditorsAndDrawers/TimelineEventMappingDrawer.cs.meta diff --git a/Assets/Editor/TrenchTileSpawnerEditor.cs b/Assets/Editor/CustomEditorsAndDrawers/TrenchTileSpawnerEditor.cs similarity index 100% rename from Assets/Editor/TrenchTileSpawnerEditor.cs rename to Assets/Editor/CustomEditorsAndDrawers/TrenchTileSpawnerEditor.cs diff --git a/Assets/Editor/TrenchTileSpawnerEditor.cs.meta b/Assets/Editor/CustomEditorsAndDrawers/TrenchTileSpawnerEditor.cs.meta similarity index 100% rename from Assets/Editor/TrenchTileSpawnerEditor.cs.meta rename to Assets/Editor/CustomEditorsAndDrawers/TrenchTileSpawnerEditor.cs.meta diff --git a/Assets/Editor/PuzzleAssetProcessor.cs b/Assets/Editor/PuzzleSystem/PuzzleAssetProcessor.cs similarity index 100% rename from Assets/Editor/PuzzleAssetProcessor.cs rename to Assets/Editor/PuzzleSystem/PuzzleAssetProcessor.cs diff --git a/Assets/Editor/PuzzleAssetProcessor.cs.meta b/Assets/Editor/PuzzleSystem/PuzzleAssetProcessor.cs.meta similarity index 100% rename from Assets/Editor/PuzzleAssetProcessor.cs.meta rename to Assets/Editor/PuzzleSystem/PuzzleAssetProcessor.cs.meta diff --git a/Assets/Editor/Settings.meta b/Assets/Editor/Settings.meta new file mode 100644 index 00000000..16ddb6ea --- /dev/null +++ b/Assets/Editor/Settings.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a956d152a2bb4c6f94b172d90e3f7a5e +timeCreated: 1761049993 \ No newline at end of file diff --git a/Assets/Editor/DeveloperSettingsEditorWindow.cs b/Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs similarity index 100% rename from Assets/Editor/DeveloperSettingsEditorWindow.cs rename to Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs diff --git a/Assets/Editor/DeveloperSettingsEditorWindow.cs.meta b/Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs.meta similarity index 100% rename from Assets/Editor/DeveloperSettingsEditorWindow.cs.meta rename to Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs.meta diff --git a/Assets/Editor/EditorSettingsProvider.cs b/Assets/Editor/Settings/EditorSettingsProvider.cs similarity index 100% rename from Assets/Editor/EditorSettingsProvider.cs rename to Assets/Editor/Settings/EditorSettingsProvider.cs diff --git a/Assets/Editor/EditorSettingsProvider.cs.meta b/Assets/Editor/Settings/EditorSettingsProvider.cs.meta similarity index 100% rename from Assets/Editor/EditorSettingsProvider.cs.meta rename to Assets/Editor/Settings/EditorSettingsProvider.cs.meta diff --git a/Assets/Editor/SettingsEditorWindow.cs b/Assets/Editor/Settings/SettingsEditorWindow.cs similarity index 100% rename from Assets/Editor/SettingsEditorWindow.cs rename to Assets/Editor/Settings/SettingsEditorWindow.cs diff --git a/Assets/Editor/SettingsEditorWindow.cs.meta b/Assets/Editor/Settings/SettingsEditorWindow.cs.meta similarity index 100% rename from Assets/Editor/SettingsEditorWindow.cs.meta rename to Assets/Editor/Settings/SettingsEditorWindow.cs.meta diff --git a/Assets/Editor/Tools.meta b/Assets/Editor/Tools.meta new file mode 100644 index 00000000..20b36abf --- /dev/null +++ b/Assets/Editor/Tools.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4f39fa0ac2854017ad4c58bcef5aa669 +timeCreated: 1761049837 \ No newline at end of file diff --git a/Assets/Editor/BatchRandomizerWindow.cs b/Assets/Editor/Tools/BatchRandomizerWindow.cs similarity index 100% rename from Assets/Editor/BatchRandomizerWindow.cs rename to Assets/Editor/Tools/BatchRandomizerWindow.cs diff --git a/Assets/Editor/BatchRandomizerWindow.cs.meta b/Assets/Editor/Tools/BatchRandomizerWindow.cs.meta similarity index 100% rename from Assets/Editor/BatchRandomizerWindow.cs.meta rename to Assets/Editor/Tools/BatchRandomizerWindow.cs.meta diff --git a/Assets/Editor/ItemPrefabEditor.cs b/Assets/Editor/Tools/ItemPrefabEditor.cs similarity index 100% rename from Assets/Editor/ItemPrefabEditor.cs rename to Assets/Editor/Tools/ItemPrefabEditor.cs diff --git a/Assets/Editor/ItemPrefabEditor.cs.meta b/Assets/Editor/Tools/ItemPrefabEditor.cs.meta similarity index 100% rename from Assets/Editor/ItemPrefabEditor.cs.meta rename to Assets/Editor/Tools/ItemPrefabEditor.cs.meta diff --git a/Assets/Editor/PrefabCreatorWindow.cs b/Assets/Editor/Tools/PrefabCreatorWindow.cs similarity index 100% rename from Assets/Editor/PrefabCreatorWindow.cs rename to Assets/Editor/Tools/PrefabCreatorWindow.cs diff --git a/Assets/Editor/PrefabCreatorWindow.cs.meta b/Assets/Editor/Tools/PrefabCreatorWindow.cs.meta similarity index 100% rename from Assets/Editor/PrefabCreatorWindow.cs.meta rename to Assets/Editor/Tools/PrefabCreatorWindow.cs.meta diff --git a/Assets/Editor/PrefabEditorUtility.cs b/Assets/Editor/Tools/PrefabEditorUtility.cs similarity index 100% rename from Assets/Editor/PrefabEditorUtility.cs rename to Assets/Editor/Tools/PrefabEditorUtility.cs diff --git a/Assets/Editor/PrefabEditorUtility.cs.meta b/Assets/Editor/Tools/PrefabEditorUtility.cs.meta similarity index 100% rename from Assets/Editor/PrefabEditorUtility.cs.meta rename to Assets/Editor/Tools/PrefabEditorUtility.cs.meta diff --git a/Assets/Editor/PrefabVariantGeneratorWindow.cs b/Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs similarity index 100% rename from Assets/Editor/PrefabVariantGeneratorWindow.cs rename to Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs diff --git a/Assets/Editor/PrefabVariantGeneratorWindow.cs.meta b/Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs.meta similarity index 100% rename from Assets/Editor/PrefabVariantGeneratorWindow.cs.meta rename to Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs.meta diff --git a/Assets/Editor/SceneBrowserWindow.cs b/Assets/Editor/Tools/SceneBrowserWindow.cs similarity index 100% rename from Assets/Editor/SceneBrowserWindow.cs rename to Assets/Editor/Tools/SceneBrowserWindow.cs diff --git a/Assets/Editor/SceneBrowserWindow.cs.meta b/Assets/Editor/Tools/SceneBrowserWindow.cs.meta similarity index 100% rename from Assets/Editor/SceneBrowserWindow.cs.meta rename to Assets/Editor/Tools/SceneBrowserWindow.cs.meta diff --git a/Assets/Editor/SceneObjectLocatorWindow.cs b/Assets/Editor/Tools/SceneObjectLocatorWindow.cs similarity index 100% rename from Assets/Editor/SceneObjectLocatorWindow.cs rename to Assets/Editor/Tools/SceneObjectLocatorWindow.cs diff --git a/Assets/Editor/SceneObjectLocatorWindow.cs.meta b/Assets/Editor/Tools/SceneObjectLocatorWindow.cs.meta similarity index 100% rename from Assets/Editor/SceneObjectLocatorWindow.cs.meta rename to Assets/Editor/Tools/SceneObjectLocatorWindow.cs.meta diff --git a/docs/editor_tools_overview.md b/docs/editor_tools_overview.md new file mode 100644 index 00000000..9066d9b5 --- /dev/null +++ b/docs/editor_tools_overview.md @@ -0,0 +1,160 @@ +# 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. \ No newline at end of file