The asset panel only listed the categories and types that hold assets.
To make the first asset of a kind you had to know its category in the
`+` menu. A switch now lists all of them, and a right-click on a
heading offers just what sits under it.
- General settings has "Show empty asset categories and types", off by
default and kept in this browser. Applying it refreshes the panel at
once through a new `onGeneralSettings` listener.
- `groupAssets(assets, empty)` gives every category and type when
asked. The empty ones stand faint with a count of 0, and an empty
type has no chevron, since there is nothing to unfold.
- `ListItem.faint` draws a row's label, hint and icons at half opacity,
like a disabled widget.
- A right-click on a category heading offers the types of that
category without a submenu, on a type heading only that type. The
empty space below the rows still opens the whole `+` menu.
`ListView.onListMenu` passes the heading's id for this.
- Every menu of new assets says "Create asset" above its entries, so a
click on a type reads as making one. `MenuOptions.title` draws that
muted line. It is not an entry and matches no search.
Tests:
- Unit asset-groups and view-tween: 23 green, 2 new. Counter-test
with the empty flag ignored: the new groups test fails.
- e2e 04 (melektaus-atx): ALL PASSED, 67 checks, 4 new and 1
rewritten. Counter-test with the heading id dropped: the 3 menu
checks fail. The title is checked on the `+` button and on a type
heading (2 checks extended), the rerun passed with 67 checks.
- Gate (melektaus-atx): CHECK EXIT 0, 272 files, 4212 tests. It ran
before the menu title. Afterwards only the menu and asset-groups
units, typecheck and lint ran, all clean.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The asset panel listed one heading per type, 30 of them side by side.
Now the types sit under five categories, and each type heading reads
like its entry in the + menu.
- ASSET_GROUPS replaces ASSET_GROUP_LABELS and gives every type a name
and a category: Basics, Visuals, Logics, Physics or Audio.
- The categories keep that fixed order. The groups in a category and
the assets in a group stay sorted by name.
- A category heading folds like a group heading. A project opens with
every category open and every group folded, as before.
- Selecting an asset unfolds its category and its group. Folding the
category of the selected asset lets go of the selection.
- The headings are singular now (Scene, Sprite, Sound FX). The old
plural names only kept them apart from the + menu entries.
- locate looks in the popup layer first. A click by text meant for a
menu entry hit the heading of the same name, since the panel is drawn
first. Below an open menu a click only closes the menu anyway.
- New test hook __gm.assetCategories().
Tests:
- Unit asset-groups: 6 green, counter-check (empty categories kept)
1 red
- e2e 04: ALL PASSED, 63 checks (1 new). Counter-check with locate
taking the first hit again: 2 red, the click on Behavior created
no asset
- Gate: CHECK EXIT 0, 261 files, 4040 tests
- The category names got their final plural form after these runs.
The unit test ran again on them (6 green), e2e 04 did not.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>