31e1942870
engine/wav.rs (Decoder) und render/audio.rs (Mixer, 8 SFX-Voices + Loop-Voice je Emitter) aus irl3d eingebettet; Emitter-Logik headless in engine/audio.rs. Empties mit sound/radius-Property senden positional, play_sound-Signale laufen als SFX über Session::take_sounds. Platzhalter-Sounds + Emitter in der Testszene; artist.md fasst die Content-Regeln für die Autorin zusammen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
45 lines
1.7 KiB
Rust
45 lines
1.7 KiB
Rust
//! Headless-Kern: alles, was läuft, ohne dass ein Frontend existiert.
|
|
//!
|
|
//! Schicht-Regel: `engine` kennt keine Frontends. Nach außen kommuniziert
|
|
//! der Kern nur über Rückgabewerte (`StoryState`, Tags) und die
|
|
//! [`game::Action`]-Queue — niemals über Aufrufe in Frontend-Module.
|
|
//! Frontends (CLI-REPL jetzt, Renderer später) sind Geschwister-Module,
|
|
//! die `engine` konsumieren; die Richtung kehrt sich nie um.
|
|
//!
|
|
//! Interner Abhängigkeitsgraph (azyklisch, Pfeil = „benutzt"):
|
|
//!
|
|
//! kv ← ink ← game ← story_ctrl ← signals
|
|
//! ↑ ↑
|
|
//! kv assets
|
|
//!
|
|
//! Bitte azyklisch halten: neue Querverbindungen lieber über Rückgabewerte
|
|
//! an den Aufrufer lösen (so wie story_ctrl Tags zurückgibt, statt selbst
|
|
//! signals::dispatch zu rufen).
|
|
//!
|
|
//! `gltf`, `tga` und `wav` sind reine Decoder (Bytes → owned Daten, hängen
|
|
//! an nichts) — die geteilte Heimat für Format-Dekodierung, die jedes
|
|
//! Frontend per Pull konsumiert. `gltf` ist DER 3D-Pfad (Blender-first:
|
|
//! Sichtgeometrie, Collider/Trigger via Custom Properties, Empties aus
|
|
//! einem Export) und produziert das neutrale `model::Model`. `audio` ist
|
|
//! die headless Emitter-Logik (Distance ramps) zum Frontend-Treiber
|
|
//! render::audio.
|
|
//!
|
|
//! `player` ist die First-Person-Physik, aus der der Renderer seine View
|
|
//! ableitet; `collision` (hängt an `model`) liefert ihr die Welt für den
|
|
//! Swept-AABB-Trace in `player::step`. Beide bleiben headless.
|
|
|
|
pub mod assets;
|
|
pub mod audio;
|
|
pub mod collision;
|
|
pub mod game;
|
|
pub mod gltf;
|
|
pub mod ink;
|
|
pub mod kv;
|
|
pub mod model;
|
|
pub mod player;
|
|
pub mod signals;
|
|
pub mod story_ctrl;
|
|
pub mod tga;
|
|
pub mod trigger;
|
|
pub mod wav;
|