Jeder Gruppenname mit passenden Icon (auch wieder SVG)
Alphabetisch sortieren (Gruppen und Assets in den Gruppen)
<img width="290" alt="image.png" src="attachments/2e481e0e-0a53-4922-9a81-32436e527f5f">
1. Gruppieren nach Asset Type
2. Jeder Gruppenname mit passenden Icon (auch wieder SVG)
3. Alphabetisch sortieren (Gruppen und Assets in den Gruppen)
Assets stehen gruppiert nach Art unter einem Kopf (Sprites, Behaviors, …), rechts die Anzahl. Leere Gruppen erscheinen nicht.
Beim Öffnen eines Projekts sind alle Gruppen zugeklappt. Ein Klick auf den Kopf klappt auf und zu.
Wird ein Asset anderswo ausgewählt (Picker, Graph, neu angelegt), klappt seine Gruppe auf.
Wird die Gruppe des ausgewählten Assets zugeklappt, wird die Auswahl aufgehoben und die Gruppe klappt trotzdem zu.
Jede Asset-Art hat ein SVG-Icon (src/editor/panels/icons/) vor dem Namen. Die Regel für Gruppen und Sortierung steht als reine Funktion in assetGroups.ts.
Nachgereicht in derselben Runde
Tabs und »-Menü zeigen das Icon statt des Typ-Namens. Der List-Tab hat ein eigenes Icon. Damit ist auch der Nebenfund aus #162 behoben (× über dem Textende des aktiven Tabs).
Das +-Menü hat vor jedem Eintrag das Icon (Button hat dafür eine icon-Option).
Scene objects: rechts das Icon statt sprite, camera usw.
Das Farbfeld neben Sprite-Namen ist aus beiden Panels entfernt.
Tests
npm run check → 116 Files, 1690 Tests, CHECK EXIT 0
npm run build → BUILD EXIT 0
node tools/e2e.mjs (alle Module) → ALL PASSED – 1102 checks
Gegenprobe: Ohne das Aufheben der Auswahl fällt 4g mit expanded: true, selected: "crate".
Die Check-Summe 1102 ist lokal gemessen, CI zu e3ebf44 läuft noch.
Wiki: Concepts (gruppiertes Asset-Panel, Icons, Tab-Leiste), Architecture, Development (212d6c2).
## Umgesetzt in `e3ebf44`
**Asset-Panel**
- Assets stehen gruppiert nach Art unter einem Kopf (Sprites, Behaviors, …), rechts die Anzahl. Leere Gruppen erscheinen nicht.
- Beim Öffnen eines Projekts sind alle Gruppen zugeklappt. Ein Klick auf den Kopf klappt auf und zu.
- Wird ein Asset anderswo ausgewählt (Picker, Graph, neu angelegt), klappt seine Gruppe auf.
- Wird die Gruppe des ausgewählten Assets zugeklappt, wird die Auswahl aufgehoben und die Gruppe klappt trotzdem zu.
- Jede Asset-Art hat ein SVG-Icon (`src/editor/panels/icons/`) vor dem Namen. Die Regel für Gruppen und Sortierung steht als reine Funktion in `assetGroups.ts`.
**Nachgereicht in derselben Runde**
- Tabs und `»`-Menü zeigen das Icon statt des Typ-Namens. Der List-Tab hat ein eigenes Icon. Damit ist auch der Nebenfund aus #162 behoben (× über dem Textende des aktiven Tabs).
- Das `+`-Menü hat vor jedem Eintrag das Icon (`Button` hat dafür eine `icon`-Option).
- Scene objects: rechts das Icon statt `sprite`, `camera` usw.
- Das Farbfeld neben Sprite-Namen ist aus beiden Panels entfernt.
**Tests**
```
npm run check → 116 Files, 1690 Tests, CHECK EXIT 0
npm run build → BUILD EXIT 0
node tools/e2e.mjs (alle Module) → ALL PASSED – 1102 checks
```
- e2e 4g (Gruppen, Zuklappen, Auswahl, Icons), 4h (`+`-Menü, Scene-Objects-Icon), 14 (`»`-Menü) und 44a (Tab-Icon).
- Gegenprobe: Ohne das Aufheben der Auswahl fällt 4g mit `expanded: true, selected: "crate"`.
- Die Check-Summe **1102** ist lokal gemessen, CI zu `e3ebf44` läuft noch.
Wiki: Concepts (gruppiertes Asset-Panel, Icons, Tab-Leiste), Architecture, Development (`212d6c2`).
Nachtrag 4b5b91e — Open asset im Kontextmenü der Scene objects
Auf Zuruf nachgereicht, deshalb kein eigenes Issue:
Im Kontextmenü einer Scene-Object-Zeile steht unter Select asset jetzt Open asset. Der Eintrag macht dasselbe wie ein Doppelklick auf das Asset im Asset-Panel: Das Asset wird ausgewählt und bekommt seinen Tab (state.openAsset).
Arten ohne eigenen Editor (Sprite, Kamera, Text, Collider) werden nur ausgewählt — genau wie beim Doppelklick im Asset-Panel. Der Eintrag ist immer aktiv, wie Select asset auch.
Tests:npm run check → 116 Dateien, 1690 Tests, CHECK EXIT 0; npm run build → BUILD EXIT 0; GM_STEPS=1,2 frisch geseedet → ALL PASSED. Neuer e2e-Check in Modul 01: echter Rechtsklick auf die Behavior-Zeile Spawner, Klick auf Open asset, danach ist asset:spawner offen und aktiv; der Check räumt den Tab wieder weg, Modul 02 bleibt grün. Die übrigen Module und die Smokes zeigt CI.
Check-Summe 1103 (1102 + 1) in README und Wiki — gerechnet, von CI noch nicht bestätigt.
CI zu e3ebf44 ist grün
Job
Ergebnis
Gate (Task 162)
116 Testdateien, 1690 Tests, CHECK EXIT 0
Suite (Task 163)
ALL PASSED – 1102 checks, Smokes 24 / 19 / 21
Damit ist die Check-Summe 1102 bestätigt.
## Nachtrag `4b5b91e` — Open asset im Kontextmenü der Scene objects
Auf Zuruf nachgereicht, deshalb kein eigenes Issue:
- Im Kontextmenü einer Scene-Object-Zeile steht unter **Select asset** jetzt **Open asset**. Der Eintrag macht dasselbe wie ein Doppelklick auf das Asset im Asset-Panel: Das Asset wird ausgewählt und bekommt seinen Tab (`state.openAsset`).
- Arten ohne eigenen Editor (Sprite, Kamera, Text, Collider) werden nur ausgewählt — genau wie beim Doppelklick im Asset-Panel. Der Eintrag ist immer aktiv, wie *Select asset* auch.
**Tests:** `npm run check` → 116 Dateien, 1690 Tests, `CHECK EXIT 0`; `npm run build` → `BUILD EXIT 0`; `GM_STEPS=1,2` frisch geseedet → `ALL PASSED`. Neuer e2e-Check in Modul 01: echter Rechtsklick auf die Behavior-Zeile *Spawner*, Klick auf *Open asset*, danach ist `asset:spawner` offen und aktiv; der Check räumt den Tab wieder weg, Modul 02 bleibt grün. Die übrigen Module und die Smokes zeigt CI.
**Check-Summe 1103** (1102 + 1) in README und Wiki — gerechnet, von CI noch nicht bestätigt.
## CI zu `e3ebf44` ist grün
| Job | Ergebnis |
|---|---|
| Gate (Task 162) | 116 Testdateien, 1690 Tests, `CHECK EXIT 0` |
| Suite (Task 163) | `ALL PASSED – 1102 checks`, Smokes 24 / 19 / 21 |
Damit ist die Check-Summe 1102 bestätigt.
Nachtrag 60ea56a — Open asset ausgegraut, Tabs als Registerkarten
Open asset
Der Eintrag ist nur noch anklickbar, wenn die Asset-Art einen eigenen Editor hat (Behavior, State machine, Shader, Particles, Texture, Animation, Tile, Container). Für Sprite, Camera, Text, Collider, Variables, Rigidbody, Tilemap, Font, Sound ist er ausgegraut; Select asset bleibt unverändert.
Die Tabelle, welche Art in welchen Tab öffnet, liegt jetzt im neuen Modul src/editor/assetTabs.ts (hasAssetEditor), damit Kontextmenü und Editor dieselbe Liste lesen.
Tab-Optik (auf Zuruf, ohne eigenes Issue)
Tabs sehen aus wie Registerkarten: oben abgerundet, unten bündig auf der Leiste.
Der aktive Tab ist ein helles Grau statt des bisherigen Blaus.
Seine Schrift ist normal, wird aber fett vermessen, damit er den eigenen Namen nie abschneidet.
Mouse down auf dem bereits aktiven Tab ändert die Farbe nicht mehr.
Der Einzug links und rechts ist 4 → 6 px, an einer Stelle (TAB_PADDING in src/editor/TabButton.ts) für beide Tab-Arten.
Scene und Game haben jetzt ein Icon: Scene das Szenen-Icon aus dem Asset-Panel, Game ein neues game.svg (Play-Zeichen im Kreis). Plugins und der Tab eines Plugins bleiben ohne — ein Plugin hat kein eigenes Bild.
Neuer Hook menuEnabled() neben menuRows() und menuIcons().
e2e 01: Rechtsklick auf eine Sprite-Zeile, Open asset meldet sich als nicht anklickbar, Select asset als anklickbar. Gegenprobe mit einer Regel, die nur den Sprite-Fall bricht, lässt genau diesen Check fallen.
e2e 14a-ii: Karte des aktiven Tabs, Icons von Scene und Game, Plugins ohne.
e2e 44a und der »-Menü-Check sind auf den größeren Einzug bzw. das Game-Icon nachgezogen.
Die 1109 ist lokal gemessen, nicht gerechnet; CI hat sie noch nicht gesehen. Sie steht in README und Wiki (Concepts, Architecture, Development).
Korrektur vor dem Commit: In den Kommentaren stand zuerst (#177) als Verweis auf die Tab-Optik. #177 ist aber „User Management" und hat damit nichts zu tun — die Verweise zeigen jetzt auf dieses Issue.
CI-Nachtrag zu 4b5b91e
Grün, Logs selbst gelesen:
Gate (Task 164): 116 Testdateien, CHECK EXIT 0
Suite (Task 165): ALL PASSED – 1103 checks, Smokes 24 / 19 / 21
Damit ist die Check-Summe 1103 bestätigt.
## Nachtrag `60ea56a` — Open asset ausgegraut, Tabs als Registerkarten
**Open asset**
- Der Eintrag ist nur noch anklickbar, wenn die Asset-Art einen eigenen Editor hat (Behavior, State machine, Shader, Particles, Texture, Animation, Tile, Container). Für Sprite, Camera, Text, Collider, Variables, Rigidbody, Tilemap, Font, Sound ist er ausgegraut; `Select asset` bleibt unverändert.
- Die Tabelle, welche Art in welchen Tab öffnet, liegt jetzt im neuen Modul `src/editor/assetTabs.ts` (`hasAssetEditor`), damit Kontextmenü und Editor dieselbe Liste lesen.
**Tab-Optik** (auf Zuruf, ohne eigenes Issue)
- Tabs sehen aus wie Registerkarten: oben abgerundet, unten bündig auf der Leiste.
- Der aktive Tab ist ein **helles Grau** statt des bisherigen Blaus.
- Seine Schrift ist **normal**, wird aber fett vermessen, damit er den eigenen Namen nie abschneidet.
- **Mouse down auf dem bereits aktiven Tab** ändert die Farbe nicht mehr.
- Der Einzug links und rechts ist 4 → **6 px**, an einer Stelle (`TAB_PADDING` in `src/editor/TabButton.ts`) für beide Tab-Arten.
- **Scene und Game haben jetzt ein Icon**: Scene das Szenen-Icon aus dem Asset-Panel, Game ein neues `game.svg` (Play-Zeichen im Kreis). Plugins und der Tab eines Plugins bleiben ohne — ein Plugin hat kein eigenes Bild.
**Tests**
```
./check.sh → 116 Files, 1692 Tests, CHECK EXIT 0
npm run build → BUILD EXIT 0
node tools/e2e.mjs (alle Module) → ALL PASSED – 1109 checks
```
- Neuer Hook `menuEnabled()` neben `menuRows()` und `menuIcons()`.
- e2e 01: Rechtsklick auf eine Sprite-Zeile, `Open asset` meldet sich als nicht anklickbar, `Select asset` als anklickbar. Gegenprobe mit einer Regel, die nur den Sprite-Fall bricht, lässt genau diesen Check fallen.
- e2e 14a-ii: Karte des aktiven Tabs, Icons von Scene und Game, Plugins ohne.
- e2e 44a und der `»`-Menü-Check sind auf den größeren Einzug bzw. das Game-Icon nachgezogen.
- Die **1109 ist lokal gemessen**, nicht gerechnet; CI hat sie noch nicht gesehen. Sie steht in README und Wiki (Concepts, Architecture, Development).
**Korrektur vor dem Commit:** In den Kommentaren stand zuerst `(#177)` als Verweis auf die Tab-Optik. #177 ist aber „User Management" und hat damit nichts zu tun — die Verweise zeigen jetzt auf dieses Issue.
## CI-Nachtrag zu `4b5b91e`
Grün, Logs selbst gelesen:
- Gate (Task 164): 116 Testdateien, `CHECK EXIT 0`
- Suite (Task 165): `ALL PASSED – 1103 checks`, Smokes 24 / 19 / 21
Damit ist die Check-Summe **1103** bestätigt.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Umgesetzt in
e3ebf44Asset-Panel
src/editor/panels/icons/) vor dem Namen. Die Regel für Gruppen und Sortierung steht als reine Funktion inassetGroups.ts.Nachgereicht in derselben Runde
»-Menü zeigen das Icon statt des Typ-Namens. Der List-Tab hat ein eigenes Icon. Damit ist auch der Nebenfund aus #162 behoben (× über dem Textende des aktiven Tabs).+-Menü hat vor jedem Eintrag das Icon (Buttonhat dafür eineicon-Option).sprite,camerausw.Tests
+-Menü, Scene-Objects-Icon), 14 (»-Menü) und 44a (Tab-Icon).expanded: true, selected: "crate".e3ebf44läuft noch.Wiki: Concepts (gruppiertes Asset-Panel, Icons, Tab-Leiste), Architecture, Development (
212d6c2).Nachtrag
4b5b91e— Open asset im Kontextmenü der Scene objectsAuf Zuruf nachgereicht, deshalb kein eigenes Issue:
state.openAsset).Tests:
npm run check→ 116 Dateien, 1690 Tests,CHECK EXIT 0;npm run build→BUILD EXIT 0;GM_STEPS=1,2frisch geseedet →ALL PASSED. Neuer e2e-Check in Modul 01: echter Rechtsklick auf die Behavior-Zeile Spawner, Klick auf Open asset, danach istasset:spawneroffen und aktiv; der Check räumt den Tab wieder weg, Modul 02 bleibt grün. Die übrigen Module und die Smokes zeigt CI.Check-Summe 1103 (1102 + 1) in README und Wiki — gerechnet, von CI noch nicht bestätigt.
CI zu
e3ebf44ist grünCHECK EXIT 0ALL PASSED – 1102 checks, Smokes 24 / 19 / 21Damit ist die Check-Summe 1102 bestätigt.
Nachtrag
60ea56a— Open asset ausgegraut, Tabs als RegisterkartenOpen asset
Select assetbleibt unverändert.src/editor/assetTabs.ts(hasAssetEditor), damit Kontextmenü und Editor dieselbe Liste lesen.Tab-Optik (auf Zuruf, ohne eigenes Issue)
TAB_PADDINGinsrc/editor/TabButton.ts) für beide Tab-Arten.game.svg(Play-Zeichen im Kreis). Plugins und der Tab eines Plugins bleiben ohne — ein Plugin hat kein eigenes Bild.Tests
menuEnabled()nebenmenuRows()undmenuIcons().Open assetmeldet sich als nicht anklickbar,Select assetals anklickbar. Gegenprobe mit einer Regel, die nur den Sprite-Fall bricht, lässt genau diesen Check fallen.»-Menü-Check sind auf den größeren Einzug bzw. das Game-Icon nachgezogen.Korrektur vor dem Commit: In den Kommentaren stand zuerst
(#177)als Verweis auf die Tab-Optik. #177 ist aber „User Management" und hat damit nichts zu tun — die Verweise zeigen jetzt auf dieses Issue.CI-Nachtrag zu
4b5b91eGrün, Logs selbst gelesen:
CHECK EXIT 0ALL PASSED – 1103 checks, Smokes 24 / 19 / 21Damit ist die Check-Summe 1103 bestätigt.
CI-Nachtrag zu
60ea56a(Ausgrauen von Open asset und die Tab-Optik): grün.CHECK EXIT 0,Job succeededALL PASSED – 1109 checks, Smokes 24 / 19 / 21,Job succeededDamit ist die Check-Summe 1109 von CI bestätigt.