Post-Effekte über Action::SetPost statt Engine-Zustand

Die PostChain lag als engine::post im Kern, nur damit die Konsole
`post` durch den exec-Trichter schalten konnte — Zustand, der allein
das Render-Frontend angeht und nichts mit der Simulation zu tun hat.

Jetzt kennt der Kern Post-Effekte nur als deferred Action (wie
play_sound): das `post <name> on|off`-Verb queued Action::SetPost,
die Session reicht sie als take_post()-Queue durch, das Fenster wendet
sie auf seine eigene PostChain an. Damit schalten Trigger und Ink-Tags
Effekte, die vorher nur der Konsolenbefehl erreichte.

- engine/post.rs entfällt; PostChain wandert nach render::post
- Session verliert das post-Feld, bekommt pending_post + take_post
- der `post`-Konsolenbefehl ist ein Shim wie `mode`; Ketten-Listing
  und nackter Toggle fallen weg (letzterer bewusst, vgl. 8bee832)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0196AM4UyAJEXVtPvp5DdKr8
This commit is contained in:
irrlicht
2026-09-01 22:47:32 +02:00
co-authored by Claude Sonnet 5
parent b3d08d4a8c
commit 247f7ef9fe
8 changed files with 170 additions and 142 deletions
+3 -4
View File
@@ -16,9 +16,9 @@
//!
//! `gltf`, `tga` und `wav` sind reine Decoder (Bytes → owned Daten); `gltf`
//! ist DER 3D-Pfad und produziert das neutrale `model::Model`. `audio` ist
//! die Emitter-Logik zum Frontend-Treiber render::audio, `post` analog die
//! Effekt-Schalter zu render::post, `player` die First-Person-Physik auf der
//! Welt aus `collision`.
//! die Emitter-Logik zum Frontend-Treiber render::audio, `player` die
//! First-Person-Physik auf der Welt aus `collision`. Post-Effekte kennt der
//! Kern nur als `game::Action::SetPost` — die Kette lebt in render::post.
pub mod assets;
pub mod audio;
@@ -29,7 +29,6 @@ pub mod ink;
pub mod kv;
pub mod model;
pub mod player;
pub mod post;
pub mod signals;
pub mod story_ctrl;
pub mod tga;