Ein shader asset aus einem anderen projekt kann bei einem sprite im aktuellen projekt zugewiesen und auch im shader tab ausgewählt und bearbeitet werden
Ein shader asset aus einem anderen projekt kann bei einem sprite im aktuellen projekt zugewiesen und auch im shader tab ausgewählt und bearbeitet werden
ShaderLibrary.source(project) → findAssetOf(project, id, 'shader'), sonst kein Filter
Es gibt keinen localStorage, keine Asset-Zwischenablage und kein Modul, das mehr als ein Projekt
im Speicher hält; loadProject ersetzt Projekt, Kommandostapel und Auswahl vollständig.
2. Im Browser nachgestellt. Projektwechsel in laufender Sitzung (E2E fixture → frisches leeres
Projekt, über das Project-Menü, ohne Reload): danach assets: [], Shader-Tab leer, Tab-Picker bietet
"Adjust colors" nicht an, und das Shader-Dropdown eines neu angelegten Sprites ebenso wenig.
3. Die eigentliche Ursache. Die Seeder legen in vier Projekten ein eigenes Shader-Asset mit derselben Id adjust-colors und demselben Namen "Adjust colors" an:
Projekt
Shader-Asset
E2E fixture
adjust-colors = Adjust colors
Jump and Run
adjust-colors = Adjust colors (ein Sprite trägt ihn neutral)
Tetris
adjust-colors = Adjust colors (ebenso)
Actor demo
adjust-colors = Adjust colors
Demo project
mjajnaq6vh = Adjust color — eigener, davon unabhängig
Vier Kopien, keine geteilte. Eine Änderung in einem Projekt bleibt dort. Dass derselbe Name und
dieselbe Id in jedem Demo-Projekt auftauchen, lässt es aber wie ein einziges projektübergreifendes
Asset aussehen — genau das war die Beobachtung.
Am Rand mitgemessen: gleiche Ids über Projektgrenzen sind hier der Normalfall, nicht die Ausnahme
(scene1, cam, crate, mover, spawner, player … kommen ebenfalls in mehreren Projekten vor,
weil die Seeder feste Ids vergeben). Harmlos, solange jede Auflösung im eigenen Projekt bleibt —
was sie tut. Berührt aber #65: ShaderLibrary schlüsselt seinen Compile-Cache auf die blanke
Asset-Id (der Fingerprint des Graphen rettet die Korrektheit).
## Kein Bug — die Shader-Assets sind vier getrennte Kopien, die gleich aussehen
Gemessen, nicht hergeleitet:
**1. Im Code gibt es keinen projektübergreifenden Weg.** Jede Stelle, die Shader-Assets anbietet oder
auflöst, liest ausschließlich `state.project`:
| Stelle | |
|---|---|
| Sprite-Dropdown `Shader` | `assetRefChoices(project, ['shader'])` |
| Shader-Tab-Picker | `AssetTabEditor.candidates()` → `state.project.assets` |
| Zeilen unter dem Dropdown | `shaderParamRows(project, id)` → `findAssetOf(project, ...)` |
| Renderer | `ShaderLibrary.source(project)` → `findAssetOf(project, id, 'shader')`, sonst kein Filter |
Es gibt keinen `localStorage`, keine Asset-Zwischenablage und kein Modul, das mehr als ein Projekt
im Speicher hält; `loadProject` ersetzt Projekt, Kommandostapel und Auswahl vollständig.
**2. Im Browser nachgestellt.** Projektwechsel in laufender Sitzung (E2E fixture → frisches leeres
Projekt, über das Project-Menü, ohne Reload): danach `assets: []`, Shader-Tab leer, Tab-Picker bietet
"Adjust colors" **nicht** an, und das Shader-Dropdown eines neu angelegten Sprites ebenso wenig.
**3. Die eigentliche Ursache.** Die Seeder legen in **vier** Projekten ein eigenes Shader-Asset mit
**derselben Id `adjust-colors` und demselben Namen "Adjust colors"** an:
| Projekt | Shader-Asset |
|---|---|
| E2E fixture | `adjust-colors` = Adjust colors |
| Jump and Run | `adjust-colors` = Adjust colors (ein Sprite trägt ihn neutral) |
| Tetris | `adjust-colors` = Adjust colors (ebenso) |
| Actor demo | `adjust-colors` = Adjust colors |
| Demo project | `mjajnaq6vh` = Adjust color — eigener, davon unabhängig |
Vier Kopien, keine geteilte. Eine Änderung in einem Projekt bleibt dort. Dass derselbe Name und
dieselbe Id in jedem Demo-Projekt auftauchen, lässt es aber wie ein einziges projektübergreifendes
Asset aussehen — genau das war die Beobachtung.
Am Rand mitgemessen: gleiche Ids über Projektgrenzen sind hier der Normalfall, nicht die Ausnahme
(`scene1`, `cam`, `crate`, `mover`, `spawner`, `player` … kommen ebenfalls in mehreren Projekten vor,
weil die Seeder feste Ids vergeben). Harmlos, solange jede Auflösung im eigenen Projekt bleibt —
was sie tut. Berührt aber #65: `ShaderLibrary` schlüsselt seinen Compile-Cache auf die blanke
Asset-Id (der Fingerprint des Graphen rettet die Korrektheit).
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.
Ein shader asset aus einem anderen projekt kann bei einem sprite im aktuellen projekt zugewiesen und auch im shader tab ausgewählt und bearbeitet werden
Kein Bug — die Shader-Assets sind vier getrennte Kopien, die gleich aussehen
Gemessen, nicht hergeleitet:
1. Im Code gibt es keinen projektübergreifenden Weg. Jede Stelle, die Shader-Assets anbietet oder
auflöst, liest ausschließlich
state.project:ShaderassetRefChoices(project, ['shader'])AssetTabEditor.candidates()→state.project.assetsshaderParamRows(project, id)→findAssetOf(project, ...)ShaderLibrary.source(project)→findAssetOf(project, id, 'shader'), sonst kein FilterEs gibt keinen
localStorage, keine Asset-Zwischenablage und kein Modul, das mehr als ein Projektim Speicher hält;
loadProjectersetzt Projekt, Kommandostapel und Auswahl vollständig.2. Im Browser nachgestellt. Projektwechsel in laufender Sitzung (E2E fixture → frisches leeres
Projekt, über das Project-Menü, ohne Reload): danach
assets: [], Shader-Tab leer, Tab-Picker bietet"Adjust colors" nicht an, und das Shader-Dropdown eines neu angelegten Sprites ebenso wenig.
3. Die eigentliche Ursache. Die Seeder legen in vier Projekten ein eigenes Shader-Asset mit
derselben Id
adjust-colorsund demselben Namen "Adjust colors" an:adjust-colors= Adjust colorsadjust-colors= Adjust colors (ein Sprite trägt ihn neutral)adjust-colors= Adjust colors (ebenso)adjust-colors= Adjust colorsmjajnaq6vh= Adjust color — eigener, davon unabhängigVier Kopien, keine geteilte. Eine Änderung in einem Projekt bleibt dort. Dass derselbe Name und
dieselbe Id in jedem Demo-Projekt auftauchen, lässt es aber wie ein einziges projektübergreifendes
Asset aussehen — genau das war die Beobachtung.
Am Rand mitgemessen: gleiche Ids über Projektgrenzen sind hier der Normalfall, nicht die Ausnahme
(
scene1,cam,crate,mover,spawner,player… kommen ebenfalls in mehreren Projekten vor,weil die Seeder feste Ids vergeben). Harmlos, solange jede Auflösung im eigenen Projekt bleibt —
was sie tut. Berührt aber #65:
ShaderLibraryschlüsselt seinen Compile-Cache auf die blankeAsset-Id (der Fingerprint des Graphen rettet die Korrektheit).