Der naheliegende Weg wäre falsch gewesen. isSymbolType liest sich wie „zeichnet ein Icon", heißt aber „ist Editor-Dekoration": vier Stellen hängen daran (collectWorldItems, GameViewport.collectFrame, syncDrawOrder, placementOf). Ein Eintrag 'particles' dort hätte der Quelle ein Icon gegeben und ihre Partikel genommen — im Spiel und in der Scene View.
Die zwei Fragen sind jetzt zwei Funktionen: hasSceneIcon (zeichnet ein Icon) und isSymbolType (ist Dekoration). Das Icon ist eine Dekoration von SceneViewport und damit umsonst editor-only, weil GameViewport Dekorationen nie synchronisiert.
Was drin ist
Ring (r 10, #c26a1f) mit vier Funken, aufrecht und unskaliert wie die anderen Symbole, Mitte offen — anders als Behavior und Container zeichnet eine Quelle selbst etwas, und genau dort ist das Feld am dichtesten. Name daneben, gestrichelte Linie zum Eltern-Objekt in derselben Farbe.
Beim Schreiben der Tests dazugekommen: der Greifrahmen wuchs mit der Skalierung der Quelle, das Icon nicht. placementOf gibt für 'particles' jetzt nur die Translation zurück, der Rahmen ist die aufrechte 24 × 24, die ihr Icon deckt. Die eigene Transform der Quelle geht weiterhin ungebremst in jedes Partikel.
Belege
./check.sh
CHECK EXIT 0, 921 Tests (920 + 1)
e2e Modul 31
ALL PASSED – 33 Checks (30 + 3), E2E EXIT 0
Angesehen
Screenshot: Ring, Funken, Fountain daneben, grünes Testpartikel scheint durch die Mitte
Fünf Gegenproben, jede beißt an ihrer Stelle:
Verbogen
Ergebnis
placementOf ignoriert das Icon
1 Unit-Test: Rahmen 48 statt 24
hasSceneIcon lässt Partikel fallen
2 Unit-Tests
Icon gar nicht gezeichnet
3 FAILED, sceneIcon liefert null
Ring gefüllt statt hohl
1 FAILED isoliert: centre: "#c26a1f" statt Grün
Elternlinie zurück auf isSymbolType
1 FAILED isoliert: link: false
Ein Zwischenfall gehört dazu: der Ring-Check fiel zuerst mit Abstand genau 30 bei Schwelle < 30. Ursache war mein eigenes alpha: 0.9, das Orange mit dem Grün darunter mischte — gefunden, indem ich den Screenshot des gescheiterten Laufs angesehen und die Pixelzeile nachgemessen habe. Das Icon war korrekt, meine Sonde nicht. Alpha ist raus, die Farbe misst exakt #c26a1f.
Zähler 824 in README und Wiki Development. Wiki-Commit d52f1c1 (Particles, Architecture, Development).
Gebaut, gemessen, fünffach gegengeprüft — Commit `78baf0c`.
### Die Falle vor dem Bauen
Der naheliegende Weg wäre falsch gewesen. `isSymbolType` liest sich wie *„zeichnet ein Icon"*, heißt aber **„ist Editor-Dekoration"**: vier Stellen hängen daran (`collectWorldItems`, `GameViewport.collectFrame`, `syncDrawOrder`, `placementOf`). Ein Eintrag `'particles'` dort hätte der Quelle ein Icon gegeben und **ihre Partikel genommen** — im Spiel und in der Scene View.
Die zwei Fragen sind jetzt zwei Funktionen: **`hasSceneIcon`** (zeichnet ein Icon) und **`isSymbolType`** (ist Dekoration). Das Icon ist eine Dekoration von `SceneViewport` und damit umsonst editor-only, weil `GameViewport` Dekorationen nie synchronisiert.
### Was drin ist
Ring (r 10, `#c26a1f`) mit vier Funken, aufrecht und unskaliert wie die anderen Symbole, **Mitte offen** — anders als Behavior und Container zeichnet eine Quelle selbst etwas, und genau dort ist das Feld am dichtesten. Name daneben, gestrichelte Linie zum Eltern-Objekt in derselben Farbe.
Beim Schreiben der Tests dazugekommen: der Greifrahmen wuchs mit der Skalierung der Quelle, das Icon nicht. `placementOf` gibt für `'particles'` jetzt nur die Translation zurück, der Rahmen ist die aufrechte 24 × 24, die ihr Icon deckt. Die eigene Transform der Quelle geht weiterhin ungebremst in jedes Partikel.
### Belege
| | |
|---|---|
| `./check.sh` | `CHECK EXIT 0`, **921 Tests** (920 + 1) |
| e2e Modul 31 | **ALL PASSED – 33 Checks** (30 + 3), `E2E EXIT 0` |
| Angesehen | Screenshot: Ring, Funken, `Fountain` daneben, grünes Testpartikel scheint durch die Mitte |
**Fünf Gegenproben, jede beißt an ihrer Stelle:**
| Verbogen | Ergebnis |
|---|---|
| `placementOf` ignoriert das Icon | 1 Unit-Test: Rahmen 48 statt 24 |
| `hasSceneIcon` lässt Partikel fallen | 2 Unit-Tests |
| Icon gar nicht gezeichnet | **3 FAILED**, `sceneIcon` liefert `null` |
| Ring gefüllt statt hohl | **1 FAILED** isoliert: `centre: "#c26a1f"` statt Grün |
| Elternlinie zurück auf `isSymbolType` | **1 FAILED** isoliert: `link: false` |
Ein Zwischenfall gehört dazu: der Ring-Check fiel zuerst mit Abstand **genau 30** bei Schwelle `< 30`. Ursache war mein eigenes `alpha: 0.9`, das Orange mit dem Grün darunter mischte — gefunden, indem ich den Screenshot des gescheiterten Laufs **angesehen** und die Pixelzeile nachgemessen habe. Das Icon war korrekt, meine Sonde nicht. Alpha ist raus, die Farbe misst exakt `#c26a1f`.
Zähler **824** in README und Wiki *Development*. Wiki-Commit `d52f1c1` (*Particles*, *Architecture*, *Development*).
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.
Wie bei Behavior oder Container: ein eigenes Icon in der Scene View
Gebaut, gemessen, fünffach gegengeprüft — Commit
78baf0c.Die Falle vor dem Bauen
Der naheliegende Weg wäre falsch gewesen.
isSymbolTypeliest sich wie „zeichnet ein Icon", heißt aber „ist Editor-Dekoration": vier Stellen hängen daran (collectWorldItems,GameViewport.collectFrame,syncDrawOrder,placementOf). Ein Eintrag'particles'dort hätte der Quelle ein Icon gegeben und ihre Partikel genommen — im Spiel und in der Scene View.Die zwei Fragen sind jetzt zwei Funktionen:
hasSceneIcon(zeichnet ein Icon) undisSymbolType(ist Dekoration). Das Icon ist eine Dekoration vonSceneViewportund damit umsonst editor-only, weilGameViewportDekorationen nie synchronisiert.Was drin ist
Ring (r 10,
#c26a1f) mit vier Funken, aufrecht und unskaliert wie die anderen Symbole, Mitte offen — anders als Behavior und Container zeichnet eine Quelle selbst etwas, und genau dort ist das Feld am dichtesten. Name daneben, gestrichelte Linie zum Eltern-Objekt in derselben Farbe.Beim Schreiben der Tests dazugekommen: der Greifrahmen wuchs mit der Skalierung der Quelle, das Icon nicht.
placementOfgibt für'particles'jetzt nur die Translation zurück, der Rahmen ist die aufrechte 24 × 24, die ihr Icon deckt. Die eigene Transform der Quelle geht weiterhin ungebremst in jedes Partikel.Belege
./check.shCHECK EXIT 0, 921 Tests (920 + 1)E2E EXIT 0Fountaindaneben, grünes Testpartikel scheint durch die MitteFünf Gegenproben, jede beißt an ihrer Stelle:
placementOfignoriert das IconhasSceneIconlässt Partikel fallensceneIconliefertnullcentre: "#c26a1f"statt GrünisSymbolTypelink: falseEin Zwischenfall gehört dazu: der Ring-Check fiel zuerst mit Abstand genau 30 bei Schwelle
< 30. Ursache war mein eigenesalpha: 0.9, das Orange mit dem Grün darunter mischte — gefunden, indem ich den Screenshot des gescheiterten Laufs angesehen und die Pixelzeile nachgemessen habe. Das Icon war korrekt, meine Sonde nicht. Alpha ist raus, die Farbe misst exakt#c26a1f.Zähler 824 in README und Wiki Development. Wiki-Commit
d52f1c1(Particles, Architecture, Development).