25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
---
|
|
name: ashwild-database-tool
|
|
description: Custom UI Toolkit editor window (Tools ▸ Ashwild ▸ Database) to browse/create ItemData & CraftingRecipe and generate prefabs.
|
|
metadata:
|
|
type: project
|
|
---
|
|
|
|
A custom editor window lives at `Assets/GAME/Script/Editor/Database/` (namespace
|
|
`Ashwild.EditorTools`), opened via **Tools ▸ Ashwild ▸ Database**. Built with UI Toolkit
|
|
(first UI Toolkit usage in the project) + a `.uss` stylesheet (`AshwildDatabase.uss`).
|
|
|
|
Pieces:
|
|
- `AshwildDatabaseWindow.cs` — shell: Items/Recipes tabs, search, list, action bar.
|
|
- `ItemEditorView.cs` — custom context-aware ItemData form (cards reveal by type).
|
|
- `RecipeEditorView.cs` — visual ingredient list builder ("A + B = Result" equation strip).
|
|
- `ItemAssetFactory.cs` / `RecipeAssetFactory.cs` — asset + prefab creation.
|
|
- `AshwildUI.cs` — shared styled builders (cards, type badges, type colours).
|
|
|
|
**Prefab generation** wraps a chosen source GameObject (model/prefab) as a child of a
|
|
generated root: world prefab = Pickable layer + auto-fit BoxCollider + `Pickable` (no
|
|
NetworkObject, see [[pickable-vestigial-networkobject]]); hand prefab = Tools layer +
|
|
`ToolBehaviour` (mask = Harvestable) + `HeldItemOffset`. Item creation rebuilds the
|
|
ItemDatabase automatically. Asset folders: items → `ScriptableObjects/Items/`, recipes →
|
|
`ScriptableObjects/Recipes/`, world prefabs → `Prefabs/Pickable/`, hand prefabs → `Prefabs/Tools/`.
|