From 31e1942870f8805352e1afe4b4bb93dde6600d7d Mon Sep 17 00:00:00 2001 From: irrlicht Date: Thu, 16 Jul 2026 20:08:13 +0200 Subject: [PATCH] Audio: WAV + tinyaudio, Ambient-Emitter mit Distance ramps; artist.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- Cargo.lock | 204 +++++++++++++++++++++++++++++++- Cargo.toml | 1 + artist.md | 74 ++++++++++++ assets/maps/props/testscene.glb | Bin 7684 -> 7768 bytes assets/signals.toml | 6 +- assets/sounds/greet.wav | Bin 0 -> 26504 bytes assets/sounds/hum.wav | Bin 0 -> 176444 bytes assets/sounds/klick.wav | Bin 0 -> 5336 bytes assets/sounds/pickup.wav | Bin 0 -> 15920 bytes src/engine/audio.rs | 125 +++++++++++++++++++ src/engine/mod.rs | 10 +- src/engine/signals.rs | 7 +- src/engine/wav.rs | 132 +++++++++++++++++++++ src/render/audio.rs | 151 +++++++++++++++++++++++ src/render/mod.rs | 55 ++++++++- src/session.rs | 52 +++++++- 16 files changed, 796 insertions(+), 21 deletions(-) create mode 100644 artist.md create mode 100644 assets/sounds/greet.wav create mode 100644 assets/sounds/hum.wav create mode 100644 assets/sounds/klick.wav create mode 100644 assets/sounds/pickup.wav create mode 100644 src/engine/audio.rs create mode 100644 src/engine/wav.rs create mode 100644 src/render/audio.rs diff --git a/Cargo.lock b/Cargo.lock index b0e5e9b..6977e87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,6 +31,15 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -122,6 +131,24 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.13.0", + "cexpr", + "clang-sys", + "itertools", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.3", + "shlex 1.3.0", + "syn", +] + [[package]] name = "bit-set" version = "0.9.1" @@ -249,7 +276,16 @@ dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex", + "shlex 2.0.1", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", ] [[package]] @@ -275,6 +311,17 @@ dependencies = [ "rand_core", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "codespan-reporting" version = "0.13.1" @@ -345,6 +392,15 @@ dependencies = [ "libc", ] +[[package]] +name = "coreaudio-sys" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b4739a805a62757a83e5654fa3faabec0442666b263bb2287d5a8185bfd953" +dependencies = [ + "bindgen", +] + [[package]] name = "cpufeatures" version = "0.3.0" @@ -418,6 +474,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +[[package]] +name = "either" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" + [[package]] name = "equivalent" version = "1.0.2" @@ -552,6 +614,12 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + [[package]] name = "glow" version = "0.17.0" @@ -681,6 +749,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -811,6 +888,19 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +[[package]] +name = "libpulse-sys" +version = "1.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d74371848b22e989f829cc1621d2ebd74960711557d8b45cfe740f60d0a05e61" +dependencies = [ + "libc", + "num-derive", + "num-traits", + "pkg-config", + "winapi", +] + [[package]] name = "libredox" version = "0.1.17" @@ -871,6 +961,12 @@ dependencies = [ "libc", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "naga" version = "29.0.3" @@ -891,7 +987,7 @@ dependencies = [ "log", "num-traits", "once_cell", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "thiserror 2.0.18", "unicode-ident", @@ -927,6 +1023,27 @@ dependencies = [ "jni-sys 0.3.1", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1492,6 +1609,35 @@ dependencies = [ "bitflags 2.13.0", ] +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + [[package]] name = "renderdoc-sys" version = "1.1.0" @@ -1504,6 +1650,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -1628,6 +1780,12 @@ dependencies = [ "zmij", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "shlex" version = "2.0.1" @@ -1832,6 +1990,23 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tinyaudio" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2bb6a423a786a941cbc5a6544693727d832ec2c088d7da097a9d3bcf0431b5" +dependencies = [ + "core-foundation-sys", + "coreaudio-sys", + "js-sys", + "libpulse-sys", + "ndk", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winapi", +] + [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -2148,6 +2323,7 @@ dependencies = [ "bytemuck", "pollster", "serde_json", + "tinyaudio", "wgpu", "winit", ] @@ -2224,7 +2400,7 @@ dependencies = [ "portable-atomic", "profiling", "raw-window-handle", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.18", "wgpu-core-deps-apple", @@ -2340,6 +2516,22 @@ dependencies = [ "web-sys", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + [[package]] name = "winapi-util" version = "0.1.11" @@ -2349,6 +2541,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows" version = "0.62.2" diff --git a/Cargo.toml b/Cargo.toml index ccd276b..d3a41d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,5 +8,6 @@ bladeink = "1.2.5" bytemuck = { version = "1.25.0", features = ["derive"] } pollster = "0.4.0" serde_json = "1" +tinyaudio = { version = "2", default-features = false, features = ["pulse"] } wgpu = "29.0.3" winit = "0.30.13" diff --git a/artist.md b/artist.md new file mode 100644 index 0000000..8e31579 --- /dev/null +++ b/artist.md @@ -0,0 +1,74 @@ +Alles Inhaltliche kommt aus vier Quellen: **Blender** (Welt), **Ink** +(Dialoge/Story), **signals.toml** (Verdrahtung), **Assets-Ordner** +(Texturen/Sounds). Fehler in Inhalten stürzen nie ab — sie werden beim +Start in der Konsole gemeldet (`[model]`, `[audio]`, `[tex]`, …). + +## 3D / Blender + +- **Format:** glTF Binary (`.glb`) nach `assets/maps/props/` — alle Dateien + dort werden beim Start geladen. +- **Beim Export anhaken:** „Include → Custom Properties" (sonst kommen + keine der Properties unten an!). +- **Maßstab:** 1 Blender-Meter = 1 Engine-Meter. Augenhöhe 1,6 m, + Türen/Durchgänge ≥ 2 m hoch und ≥ 0,8 m breit denken. +- **Material-Name = Textur-Name:** Material `holz` → `assets/textures/holz.tga`. + Fehlt die Textur (oder das Material), erscheint die Platzhalter-Textur. +- **Texturen:** TGA, unkomprimiert oder RLE, 24/32 bit. + +### Custom Properties auf Mesh-Objekten + +| Property | Wirkung | +|---|---| +| *(keine)* | nur sichtbar, kein Anfassen | +| `collide = 1` | sichtbar **und** solide (Spieler kollidiert mit der konvexen Hülle des Meshes — Dellen/Löcher werden überspannt) | +| `collide = proxy` | unsichtbares Kollisionsvolumen (für Fein-Collider neben Sichtgeometrie) | +| `signal = ` **mit** collide | Klick-Ziel: Anklicken feuert das Signal `` | +| `signal = ` **ohne** collide | unsichtbare Trigger-Zone: Betreten feuert `` einmal (erneut erst nach Verlassen; „nur einmal überhaupt" selbst per KV-Flag bauen) | + +- `collide = 0` schaltet ab, ohne die Property zu löschen. +- Objektname ist der Interact-Key: Blender-Suffixe (`Ding.001`) werden beim + Signal-Lookup automatisch gestrippt — `[Ding]` in signals.toml trifft alle. + +### Custom Properties auf Empties + +| Property | Wirkung | +|---|---| +| `role = spawn` | Spieler-Startpunkt (Fußpunkt = Empty-Position) | +| `sound = ` | Ambient-Loop `assets/sounds/.wav` an dieser Position | +| `radius = ` | Hörradius des Sounds (linear leiser bis Stille; Default 8) | + +## Audio + +- **Format:** WAV, **mono, 16 bit, 44100 Hz** — nichts anderes. Ablage in + `assets/sounds/`, angesprochen ohne Endung (`pickup` → `pickup.wav`). +- **Ambient:** per Empty (siehe oben), loopt immer — Loop-Punkt sauber schneiden. +- **Einmal-SFX:** per Action `play_sound ` (aus signals.toml oder Ink-Tag). + +## Dialoge / Ink + +- `.ink` nach `assets/interactions/` — wird beim Build automatisch + kompiliert (bei Bedarf von Hand: `./tools/build-dialogues.sh`). +- Gestartet per Action `start_ink .ink.json`. +- **Variablen:** alle Ink-`VAR` landen automatisch im Spiel-KV und synchen + in beide Richtungen — `_`-Prefix (`VAR _tmp = 0`) bleibt Ink-lokal. +- **Tags feuern Actions:** `# set has_key true`, `# play_sound klick`, + `# mode play` … (gleiche Verben wie signals.toml). Unbekannte Tags sind + erlaubt (reine Metadaten). + +## signals.toml (`assets/signals.toml`) + +- Verdrahtet Signal → Aktionen. Signal-Namen: Objektname (Klick), Wert der + `signal`-Property (Zonen/Klick-Ziele), oder frei (aus Ink). +- Verben: `start_ink`, `set`, `inc`, `clear`, `debug_log`, `play_sound`, + `hide_object`, `mode play|free|menu`. +- `$self` = auslösender Objektname (für generische Einträge wie + `hide_object $self`). +- `[init]` feuert einmal beim Start — Ort für KV-Defaults. + +## Testen + +- `cargo run` — Konsole zeigt beim Start, was ankam: Objekte, Dreiecke, + Empties und **jede Custom Property**. Fehlt eine → Export-Haken prüfen. +- Im Spiel (Konsole = das Terminal, aus dem gestartet wurde): `noclip` zum + freien Fliegen, `kv` zeigt alle Variablen, `signal ` feuert jedes + Signal von Hand, `reload` lädt signals.toml neu. diff --git a/assets/maps/props/testscene.glb b/assets/maps/props/testscene.glb index 25a4536ec98d0946e0c8faeada2a67046dee4989..1cf9946ec0558c211348de554a43dac0b226941c 100644 GIT binary patch delta 120 zcmZp%xnaYbo)hB6#K6E1A;-Y*Wg>4UlaATOX(5chI@L<46(vQ9#Y$GyO2zr5c_~U( zN*SfON;*nKi7A<-KyfoYgIXP>yu{p8pj1*(X>M+69#9&nDX%yuu_QA;Psu9UK*vzW UVDk&cGd#=+3JROI@CEP#0K?oRs{jB1 delta 35 rcmca%(_+J$o)hB6#K6G7BFDh6U?Okl#u*`uo2{8n@oeVc58wv?vL6Y@ diff --git a/assets/signals.toml b/assets/signals.toml index 63da974..00f604b 100644 --- a/assets/signals.toml +++ b/assets/signals.toml @@ -9,7 +9,7 @@ # inc [] KV-Integer +Delta (Default +1) # clear KV-Eintrag entfernen # hide_object deferred (Frontend): Instance ausblenden -# play_sound deferred (Frontend): SFX abspielen +# play_sound deferred (Frontend): SFX aus assets/sounds/{name}.wav # # Reserviertes Signal `[init]` feuert einmal vor der Game-Loop — # idealer Ort für KV-Defaults. @@ -25,13 +25,13 @@ actions = [ [Mushroom] actions = [ "inc mushrooms_collected", - "play_sound pickup.wav", + "play_sound pickup", "hide_object $self", ] [Person] actions = [ - "play_sound greet.wav", + "play_sound greet", "start_ink person.ink.json", ] diff --git a/assets/sounds/greet.wav b/assets/sounds/greet.wav new file mode 100644 index 0000000000000000000000000000000000000000..57148d5cd4e1c65798171e55281910de80c4179b GIT binary patch literal 26504 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 literal 0 HcmV?d00001 diff --git a/assets/sounds/hum.wav b/assets/sounds/hum.wav new file mode 100644 index 0000000000000000000000000000000000000000..418674e32e415009d129ef50535db1b3ee4a7b0d GIT binary patch literal 176444 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 KKicb^i~j*ar!8dw literal 0 HcmV?d00001 diff --git a/assets/sounds/pickup.wav b/assets/sounds/pickup.wav new file mode 100644 index 0000000000000000000000000000000000000000..bac0fe789c17e36094414518f7351ef292426e74 GIT binary patch literal 15920 zcmWlgWmFYi7l5bdcGBG?pdu!AcXxL;)@yfncXxNUC>DaGh;+y8m^=NQZ_Uy_mvv^( zK6~#o+~;9%ukPKW+C$KYPQ$xRpSL7P13?fBuCBKsX!}SQLLdz^b<&ba82B0R31O9g z(Jt^T^V5b{B9=Eg(YSxJJuL>d-k;Q~-SYOH9ilqiY=5quv~7LszAc+3UTAVTwrkX` z&`klYyr1f2s*aNB$WHF5lQB=JXDfe~mPJ_tDXso@;m_0T#=rHyX8maSZ9{6`FDF0G{ru_knJ=!?%x~d84ZlJ%-{w5emlRzr zTT{KKA=MH@?c^AE3i(oD)k2l*(Xv6HCMrhV?w z)AvN+`Ox8!4`Ob{B{dnJpi1o7T-stl3*Q!Vn|DjRo^YZ`KzvdoDspt#yr5QoDW3lN zzN&H3(bzz-H#5kQY<^kaw7RS;x5%U5R^FLx+wTYIg=wpQ?)%~W!}rILA6tIbroBxU ze_zYKpQkVQT9jHwRIjNIG*{R^&^LsG=psp5Wwmyu$77$50XstAh~Vh*MxElDH+kJO zGhs=yi_OL~JD-r;G`I1uxQUJSM@tcdp$Hp~{KO27`zD@kxxE8TzW3EOGj<^weKWKq}gLe~;F1p4lPWl+11S|Ou zuC4Z&=J^d5YZR4FN-q@^70k^aoOd{jq4cp9z?Jr$ME&?8lZ;~EXZr1j3FY#*YHzF`52y8|{*8Z-o=^_b zmb!KHn(o^_z#P;)v~M^cF)V6Ov^lzQj5=n2^rNU%k#*r{*w5hJfgAi*dbjcTri)i6 z%g>Xq(JZl^Rl2&^kC^3#JGGmt4wqM#tS_4J@9f`3`IWvB?=~>(p*(*rceN-cRnfZ<3V;x;Rqf%EcmNYAVRJi`%*#cET*5CTSBMLnJ zMHFrZF$9zis`ywnx3)(^f75@~kB%UE4+lYu(7!~2Y_am7W|w}1huLd@?*jk6fn`B) zAb6023cdKYH=yZZ0PzfOf%kz4Wn5_Ora+@mVF2Ce^OxM_Z5%X6xj zLHu#32=ykr$c8CE9Z?fnwYoxIZYY(PE-3LWQJ3^7NiR8BdcBM;-(ESSdRXm_`Z~iBbC9jt z@!9o|y(XN6_hZXJ6jJ3ib+B%c+X0WYUd?=N`&RiC`X3B{0;2=vfmZ`~e~o{c?^2&M zFQZ3++euv$%_SuzOO#B&*CD6H7hEyzMoqA%So)aghRnKuHGb8HD|=P6EnietS9-Pd zTB)IQd0Ch8ffc7JgR6^cGU_Z1ZB4f=N%jio1$qwGR#YH=u;XMmS%G4(`l>cV|I7V^ zXT0}LpBuhA{G$A~_@DP*?yvBl;J4Vfr%$<8ch9BnOY}XpPSr+*T{@6Fjg`Q`;uP*a zEvHu7CDzBLt%gnY_i9x&m#UI0*HwHkA6gz%9#_7qTvm}+QC1mQeYs{>UCV~9#{bM2 z)~=3pYA)l(e-sxW9{7E-mF&8LQN?Hz^eXok9!dMs}EH@t#q%v zU$L{|LIqW^qjF@`gzB?3y1J+J+YOsc7cHf>HqINaNcJ9|1bsnz|pAA0md_MSW^-=qb_fGa2?8&(=bNiqx*A%N>DOSotB`@)A=yzy< z@Q0m4tEeybT~tC8l-M+J!<%3ylZ}L zEwKkt$#gc`PPhT-(WUrzQXy-p=&ov}VYMgqa`%27V?CRD<#~1TUhF-~JJS2M7wxI_ zw7Xw(YoyAJdHF-8F{Vpxq6DW zO4rV9y8C#KFwZBRYOh4E5U+gC(Vo{l-n-v$o2s{I$7s%~-YZgNPbCM530N3XC0^$j zv0dp%D#+2)Hp%kP6lMI{aHxJy-HTd}+Uqq7YUb3Ou0d)~*UqY&UVosW+A!TDv!q)e z*l#;uy9yYbPZX!Z2hb<@5Av7vm3+6dgZh`Ig>I>So7-%6e~&XBbsnf^jmJq3FOO;N z8{8J^o9WUtoz+K_-{qCkI8su1S`)O%y{$|{0nA)(U{$X8E z-G|ykwI^zS*Cy5F)?KJS+3?mNH?1}6t*N%7j@8r>dKJ5iKQBIlKcV08PvlMMN_k`D z7gdsGr}m-lo_?KMkoy7m-|i*uZ{26RSGhHF8=~)_(`lcp+o(<}%4Irf9N7wQjW&a0 z#YjGiZ9xyEwmLFwEv;|NGfXXvjSYhvF4hOt|EjxP_p;7aH?1CS_zq$yFb0^nSQNH< z_PNe>t{_Iu5ds7;uo2D2pOG7-E#$cx5#qGP>1-D*qpY&RN zqAp&GXdbFMDIdw@vVM{^#5wF4@*OG^telE%NiU>cJA&;OtQ{?|xyooWL>YE8cr;|x zKdVox*EDQs@HdnjvWzvR5X%~?)3(ErNLgL)m}A^BVFc6)(P8EIRdR&XDqEt+R|cp% zYT9evbnkVY^(XY7^zZfi_09Enb-XrA8>WHOuaqMce`KAcN636!i*-b1Lq~-aj$zu- z`zVKFv0Y|+Z#iZ@V7hOl3^NRfA+_OoLw19oVXq;^Xf)=Vs?DC(>9$P!FsF$+K@Vo# z_(I_-G#_b#)!+xo80j6Er(&A&uJXw$VvwavA6G@?3QourCVQu5of-qI|xH}M#AN9V(-VxX{^D`SSzxzuc@yCdKB z()!$zXZAL)Gs#VFj7N>fjPHyp(+P%DfDdyJZ4AUOd0@HHSC6mK6$BbFtSx#6F z+OFEO9G=tyS03GuP2+|Lh2k{09+`y|;$6t&l6)yDcT-4}rOFek#_CIIn>t7nsgY^E zsi&z6Rn1j%m0J~?X{*$F%+k%`X2C69mVTB?7H{ia>ttI~yRRd_*@Bwv zI!o6u?YUFDAWVWj!NKSXECol%CXznVL9z~Vz2b*rhO%7QNwr3GLUmX*UlpbLplqu= zp~#nuGNlZYR+BG?)p#?k4A}`chH`|pd@NVNT&GvLCQu`s(;U0)X|`zFC2L!&-SWfo z$x>j^TW4EKtjV@eyTP8}_~y)`C|4vig}uQ!`JUnls19y{uEZYU#RN;@Qbw95J1y^_ z$WioAo>cw%6lp9D`-W8GEo_>q!f1)-4!YFNcke!W$6dW5AqXn z2j7W}M`I8x^g>)O^yU3I7gJ1UyZ%x(XOMHMV0wqZosco;JZuTRfEZ0S zm++GN(tffmSx5OH`A>PB+#t`DUy=`(n`Mh+1=7aS`I1xQQ{of;344KFMfQQ(93^%T zVt7B!gY{>c(nDQ4sVrv`=M_g&M~?lFeU5#ceU^Q{J;NU3IPC~`es=yxb#!^rA`OCK zIZiGFhzU?PcsMc%oq~Glh#w-15+^{@;2FpibR^ap4p5q>FP==m@?)QdzU-M9})J6+oARFQV>ON zEE1>im&80$BRMbelWvk`gZfC6b(Xb~dCH2V2c&V*Cz2S+ZnBUFB!=Q^u+!)xBn8fd zip2(j`JHlQ>D)B&TdX`CkiefXAkF2P!9vC3~Gvtq+imjm|ko! z2lLf@rtn_84IPKqgB?l23iuT=|1TQsZ@GZ(o}MT z)Q~fX`*;HufOSV_BAel}&@(YZXy8?R3vLE`iK(YM)7M=Au4_~m&@0cJ`U3!V=h6rTwtypr$4t!2M3KFlh* z-Zj@HP#39DR2YR)PNx7mvp2Pus-*h6zPg6c4fG+VJBxDPxTE|`p`ECQYN0pq9%KaS zg=JuC@BrdI(Tu!85|Uw(1Cke#U*LKrIV>3^QAqBPZOPX}EU^!-#F}8q=pCdC*2A5l z#o|RF7v!QpcZ{uNdNPmbIQp4ukc+2YQM;*y)J!UwIzWA-2-jHGCs!N#Jw23hFc;Vn zoE!g#zaY#NTS6%O6W)&uKymCLHVm)FlL-Scg1k?<$T-PB$wbLGNe@Y&q=Gy~wjqBK z1Betn7T;XL>N(haqshp|}v1>TCdLCDE*NiHP2lXCJsF`eMS=QzFsD@8k@rw}9D9^M805yQk} z;S2B2ujb0xA#6G`oT;OC)9q*;Jo_EjIoEmDBUi3VO82GD(gHn)sbuD`410)c#^>{! zgr;JtxDRRv*T8#`cr+CqffZsS@Gp2Iv66U4*a>eko@_=&kqWYuxJryAFybuOjk{O` zb_C^+vB+~+4Nrq!iW+gIkiv)adpMq5&N9qSCY(v9w}QI{(*(`BM3)=gik?H?0WpkW zzA$asHy{)F++toUJQhZa5Ofvl0~_F-NHF>UZG}C-qVRoqE#87yLR=ErZb zdJH{;9!)Q#kI>&}88eD`%=off=0k*cr&6$Pomz~K8(Re z;dgKw9!rcMlEK~A6AOvKLD1*+#eq!PHV*C+ag)510q6z3rUxEYE>?l3}=dtrxD=ZacA`R(|yn-9S zCm;e^B9;q7h3|Y<{xjE~D`x*=1K3|+R|YdtjErGu7mYH0OlM{p^Mrxf5$tm|lsn34 z`GdTda7kz)z7zXH|DahQie-o$nG5Q(3%HLJYlANZPyPijz{~JL{5yUVUxRnWMeH6n z6f=WpRp=o^hwO$?cm-q-CyRfCL7-Cy^7-6M4&pAd{aBPuVGc5LKqTG3HJF*p90K)# zvHjVLEX2*=a=E^ID&JH1DGU({#3@i6v;geLJfs2{hQ37uu%*}s48>dHQ}7M=A^bSL zA771+!5iaF>=8B%Q)0K#E@&30%u;v~Tnvqda>c=7x-dY<=Ew03+$Jsrbn7a%1dI(`#R^GgJqkSsbtpE{sq*a%NWvXS=ad9WwF zu>;sIOa%MV5$}%=0<$^+*Wwk}9c&I3h^$}?o6q`lv$=PiAHSBb z0&f*5LQCG)|(r{UFBThz2-iz7gh_^!Z0xfyk%X0RPcXbc6LF|BQB&TdH~HtWms!$Jhl?s z1!CEYZ2&R#zTc!KtGJchG1Q>SWJc$qqo3kv1lm*W<62_uZ4Z#r_cbXR@^B1i7$ka z;4SAeKbXh)_uNLVFBix$;MvpI6!tTl!B(&^7s(9=lj7-S9d9nqiz(e3Cnv>4@49jL`%kOMhpMKjQ=XfoOwbs_hVNr(!03Xg#~ z=oHijoFU6a5AnG$P9TIw{B%B$FXAq9$y_fkic^EGrCE+8IX|uqHxb0}iG#pY*~=I5 zO@$poh0s~N0H*f@=q=;}FNJ@=0mvNW5#m6afUNIFAEW7L8QOpv&`LBLeTAL?d1#Lk z=oe%?(j2LT4}ktChBkrP{3gy5wIGVgf=2krujE_uEcb;w&Mo4GaP7DzTrBw4mK)41 z0DJL~b8-oMGXIh%gb~6m0TIWDPelzh2TFnb;6?B!Sc{BC&L9Pd7Mzu{K_^@Sb@~ci z4?*{C16A7=RiHV@F=QyBK;FUgVIMdJnhUu>uf?gN3hc;C!B@xxPdNab?^WC@5XTzO z4HLMr+$0de7EmpzoQ;d%C-Ud`3O-I)Df|F$|H>5q?~p%O^A(ICJ&|q5d&GtW zq218Q=n8Zzx(D5bZa^2H!_Y(!Lm_evnTs?6nK%XahXv>sG!jCg`{FoJ4ytp35FwQE z7x)=`Gf*2v+*{BKN4VYGPVNAAj(Y-54T=llhw{7mZ@e5#+EYS}&`R6^=4LFk7D@+E z%z_`nPEenV!F_TO5uC1VL4AxxC!*uf!DvS`0>!}_&3$Aw(iy>!5AaI330w{xfx1CX z@v1mnl!8uOCNvc+{1bj1-=7cVA-)XM;al!0_YC}>2Bs9mhk;MlfuAt*jfG_4rGSY8 z#WP~P*b2<7Ot2$U;Tv!*91f=PUgRZG0^;yQqtIq(bF?XVtJ9-2k`JcI7GwzGi<}8x z6T3WNLCZc#u6DCK9PhBXeL~xNtyGEA;iZ9=F}q zE~eeVq@S&-6P=CqG2=p=zNp(>c`&-2QCbUYgUW=zr?NfL_k4FteV20V)1^JT{?U{HExd&=dYoJtnI^kr33;b<;ex_DI>de}%bC zGUxxg@x%13*SF{2+Wz>FHu85yPC!9;>6hvfV}EBIzX#VT2fIc3E(}&imNv?6oR#n^ z@pbbP&8H0%zu#w$k?=}uiINpp%oZIYY)25BDHtGz6`m9V}u2dKlYM9q%v+qhlRW(m;=K}`c1$H$J3`V^WRu*)l2H&6Z_wwPb( zd}8WW+qb-`ut|QWoVZLhBkkA0UxU-7zwc!w=4~rDSdvsVwZUY4Nne0Al5JHt-R}5A z1kqvY=)tj%;vEG_|AyNtG%UC`Y1=<3%i_)>V=Xe72et~}lp zuZ-^;do10Jv5+}#9PHT-D0mZ{*6Pl5ly4lHZsI6kMoVoZ}dF+bA&4NYQSah z5Vs_iTJjp6!iG5lObcsUR_rO>S*bJ6AHb@?PCE^9<*4 zE*HV2nEJ6B?fop^Pe}I&bJX{kZ;fgj#WdO<9U5r~l?JW%o##=j(aCYVO!(sZZ4EJG zSEJ=$i&_*+{xc#sIOj`t_ndRN-~YTSm{NSdd{<3@VT)}Zy+mAzPmyc1Q$4!+9uMpl z+C5@jR9*DCn53AH=$4V&!u*4k{&T$g>whb?l4zt2H^KSLJfS|hN?O*Y$gAMdACJ7= zxr1}#^YZ`nE?8RBtL#zLsrp*;MrSWB5UC?~D$8|$J%{^s4B8Uv7Euye7Nw6)jv^wn z!m5J%2L$-ccJHGpkhR2DiJ$0Ld$uvRws&QZ(z3$Xf`oh_?`R&I*C;=zAfqs@G`#Xs z?LlLnZ4^xlr?CjxD)l-yFYl)QkAn7wJ_`4Wd>XkU@^C~!*vydbf!loBd#=|_Q%WUU z5t>^=#ap8cn`%Z>yexTBxS*gQU!D);zs_%6u()t!NpZQYdVRxu%Vnp8TLae;O%yG) zmF~eldH(jGS)ozkF%h#Ps=_aZT?ugo-thb3wb1RZ`kZVm4t~pGW;v#s@7GTQ4#@bD zFNOaKZvAcbcgx=c1;Yxz6&IK7sCrn}-4ti#gOSi+x+!DejZP?E(Js8AeZ?KuC2D8#yNE>s}$u4C2Zkhz|1!lg#24xxUx93 zY;t8p?RbODlIF~24Zv}-%kHW@+&sKa`5p*p2s#^bF0>(ZL+Ip?BSE17-oD#B*XrHW z<7Lb6B~UWE)0t(NW*AxfzVdEaLdoc&*un?@YW`&w&Mv-My1L?D_0xKXX^Xud-CPJo zA;}{}n6|BZm6yivR>1WjG5AKv#gO{o9YGrcihUn=5$;yaPDMHCfwmLo(eLg3&G8LO zY7#3~myIncERqxz7fvlYR6M;jr~G$Szq;neWmeXCi(LRU#~NN}g%u0fXrX8N7+9^`REw_4>R+lK#z8gU1xP@BsbQU9(wyJBhC?UK#KaB)Pj zwRmFbta7v}sP=xt1#^*o2wlx@Ms(zA`3?1EJ?FuD|K~R);9=l|pqW8G1NQ|y^Xu<3 z(Ua3BYJ3%`WM4Ez=*$#59$L~3z3URI&sH2R3o7kh;$E_`WM65^@`aU+Yo^!ZCYLpi z+RZ}HVk}MKQj}^IyPfpx<+I375`YIz3k(nJ9`MWWvrnQ|wEJUil`>1ZA5VaPbL(9r z?Q_k)8;;jzRqd%lfEH+UD+R zuX#RQ{dV~$1q=%K<^Rx+@cr!-;KA!wtMACKkjv2|5oN2Kv~_@qtJlBWwZmNCYG^>=HwR25ddFK<@fy8L%JRdKBZz54j<@NMHa*3al`^_k~A)6?K4(S1{Ol&>RCpqIr5 zY%UdUe`wxo_+GcT=3rIx%83(sMXH8s zqudUA?D3NL2tIRs`}$t;N%sEWdE6b*D>Ppe9i_YRw{R^V#4L64)~}}OhM9FEYu;Dg ztn{hWRUWQ9T@_XnUU#@*nrVmC;@C-d;Ys*2Hd|6I4^Yc>r`$exBzs-=9u2s7BcDFr z^`3f<@A?3(pDJ56jC_PbP=D^etF?o%pr)w}(RJf%6xFS(>M8@P{#0pdKGv4k&oTD4 zB-?YTNh~5>L6V63QmewEKC7#DOY=zbit|3}y~msNs`Z@UF~tqmbyX)R?2?VR9iAX$ zF;l2OySHVM5orK^N6ivI*wd@pR!7zBuANkW&d}N%YU}H~N(b_np>S+JnI$VyUeu`d zzV5F)sy$D5rFm`kdh5B)Bi-$(uDxcda+WNb{EQBS{&6el7S1T!7;}l?L%qB%rN&-; zuKIKJjGFbe@_NWH%p_P0cD-vN`$>pFw&I^9x$+yTrrL@6IQQKi|9Kic>pbUrF89#5 zchD=en^lkG*CmVb5ag?{jBV?RaSXD)HLWw8tBY>?wZ(ON8qOFo%QM?G z=NB5``$C7&Z^U2eGsO_~dF>&6uzME|yGIjGr$-NuDEBk^d)is*Yy~7^h~MZ@Xbd06 z1W@hmCoP>!?F=XDC)6FRZB;v{wy3tCu1ka3*xY=}I>j-_HI>~fyoSp#BbgyvsVq`k zwAb~lTbcW4kBJ_3cW?JBeY7rA^HbSGK2|aw?}0>!QVyYmoC|G;rPSzUxL1F#&bQ84 z+o_JN3u?Gw*bAJ29(I_jp$)(;(xH07A-N_GQ1#VB=q~AByUlUGDSJn>t^4S)M38O8h}dI8m6zK65p4X4;-vs!TJDT@33Q{2PKBb~X$* ztT!U&T#MP(!xZYrBc-7F*u*NXg_}J9nl3*L*ct9mG+1w^E0m;KA zk)NfMyiR#cZPU=&OFE-2UpG~EP&-3Ys|r%O$$v|x5IJZfyic&OvuTVOtt1?)*bf8P8GeA^%I^zeb98gxn!YisiKYQsk&72Oq-w^sMG3} zYd34!sc$MX9X11`p@>q zLAu5<>D(YO8|>bF!Yo1L1&T$gx9V4#$=dtc%i0dwjhe-3H`RQ_PT3+!V_mMUsE!at0sRQtwjrR(_Tf zGB*i>e?1F)ooN1LdSzlvyUepJ2d$#*x?>Bqn|{Qa`R34n z$UQ8L_$oOfYoyq$Jf@nU&R3(F0`+9|Db+4z3&kbbKS?$58@q(egyIC2EuzaPwR53e zVXL!fEt|~U%p=Ut&C@LttY>Uqjvvn3u7}KT4icNe6VU(gM0_R`{WUse+TlWE0KEiU#($gAa>uwZih* zVzx}Odf7Dgu8zCT9)S2(vblVwme6mkGrZb2WTLY-yyzc!6+yS1COr**&8-&SvP+FLnqQ@v>^Tf(IZkDyb? zQmiHMmmDfRBYPmgJc+dF%KBbvJG>dHV|27goB3yw%8VDi?PkHRoc$mk2u~sJzPiV zM7Du@D6E0HBPezgZ%&?+WJ>da4UweSuehREsZc9s$hXQC0M7lAh{o5UpI``TCu{}| z$RN5JI3ULyukF6}r?&mJn>NIL%s$OA+j*AaUF#S>?kB%Z>;k)xvsf%~f-I5H(qh>j z0AyPz;uSUW>GGSh=fE!ML1yFKu=9u!Y9sF8E7=iDmFonx!nxh?%ib3-bKaI{@+|p%`5^gAS%b7*@|K)UII&si zPdEbFAe3{%*%Eq}Yb-SitZcCFuurll+uz%}J5Z;^sRESoInx?MJWG_o7m;}EGR_kT zl6F!r*?U=2`797^jQojACX15>Ng9a5co23R!Qi=KF5j2SWmeK1UGY>e=TV23Bh#J& z$o5c&(ecvxl=|liXLhj?{*Vv`J%QVz4>1kVpPV5XCe_Q%$Sg9I+$uXK^N@`O6n`Wc zK%`(pfOFIXdMmWyQ`l)tD2=&PR1fEU#{fr|qlqKgQSUhBTulAvx^xx@i-uVjK0k}Z&3m)(*rm#Jk-q}L@6$iu`ioJ02^9`JF|Pq@YPVNs^Ql}GW; zLC##jzt=i0I#|b6XJ;xJFuqyLQ`Vc`0ZfEta3#_W+Y6kG&*U}9SZSHGg>0Ctql}WS zl4eLKk|MJ4Ls(lh8=eZ;h3$L{SIpd}&%2&cF6Rs<>HO;`b@)2BIm0LeRpheMQS1^f z6ZlY9ASE&jeT-G(EKyHBlJu9pklLiIG+nw_S}AEH=}C4ZyzoEhW+V)LCyo_h{wceW znN26VE>j|4=AE5!&fd-wPESB+kGT%ex0q5khTkZZitXW}ND1nJClK)@E_ozLlx~$? z2Yh^#v`*4bvW+}R?8c{HVQ3D#1_~E5_-))kHUT&iLtJMlE%n&B1w{J-@aOB)Bv%Kz zBQu^o$o=7?#8uEwSdaF>=Hd&9p`=c7O`?(ZmJXLTl@>|HOCFQugb6Rg9;3^V#&DT< zL>S0>a};Bwak_)+0u@iyIDb29oN?4SDhV*eD!QJLaqaju!e>zd2*hUeI`$a9NX#eQ z0l_Yl5K>N(0tj*@=}UGZdg6(g9L<6cLIXvu@Q-`W-ejK9m9Cbq2h=bsoC*ad!DTAK z^~-gd-oYGXA8;kSw>TU+2!BRuQ3f;PUx_uOLb6zL8*uS6k|B~}vMafXxQJiD_M@|r zmY}D<3CH;*++=nZvzyLvwRU}@HdC{y)zot;&~?`}iEhb6v(31H{3_v&SPXWr3E*fQ z@L-~x*g!I5FUbPQEJ8eSwMM$$7KQn7Q;9S2tG!AnZ@5 zd@9m)+SQV_(dkSIo6gnpD!>cJ!E2EH=zi=!ygOk9W+4B+)`UB_KM^gDVpGnE~~P32b#$Hk}6Z@3(( zM6Yv+3$AHQ1IDjtMR z!KaaZ=mM-YUW2b7YKTN~49IR9(n@S47{F|IVt3K^z%F?QJr^GW-tnF*Vzt0=Nu>wU zoa=|{o$HUwonA^)^fBNJgmE%nM}w z@ED{6s>d?16*x@HC7uz*L%Rz$fjQzZ zs68BnIFYx&1XKeCOXHo1*~DUE6tH(v@xk~9%o`hv?nNHMzo7<^05;PAek+&G#)Hae z4Qk^BeS>~Z*MQ!*#Kf@Q*tJ|&K%E^zp7;Xzh4Yb?s2MmJ!T4dk4i6!ch(tm~e8s2Z zHP~S63R;c$Af178uuZ%v z{37Owtw2)&ckBo+f-Z_#f?VjwpW#GyDd6BY0sHR5bO(;Y5vGb61ZrY7uw;Jn`+&g} z4q2e*fW1coCu103sxkO{{1|=-KZsAm{qdJrN9+NrM#mxN;Q~kp^%ge^setG%=E~UV zVCCn)HCe{21^F#!+OhZ8mfUY{HQx+G{9IfMb%F)>KA`C}=nUWi1>wW-g&^9&xG(+< zn}C&|ebMU(1-FG)1Fyp+v=w&p6~H0*$xZ;QIt?)ME6hu#j%fz?sFFLuwctzmqrzZO z3uQn%;dX%2uR>ug8A}7T(GqwXt#A$Kjinfltw-ySZpab12nvB_h<5?=9Lm4q61X?) zIM#!$X0iYWcQFa~?)()!# z9FRfgBROz0VDOZRt;9ougP+X*1NH;PJz>|dW7t6;+nd=Btd3j3nYd+u_+Axyix%-1 zlmzDk8{+>?MkZK!3bqp%0Ea++J7Ny>D4=Oq5Km+sh&Ty4E;;~NPT||~AGnbm%)Mm~ z0P|rrdzk&m65M$1E7zI-!H*Yc;e^-*Du9;53gif)L)W7DARB|R`Cu0(V{I@VQ0<;* zHZmAY%{X{JWEF=1P8$a1g)e^_R0axa;}(04y$RSk4CwU@&XYgP`wRDko??Z#4wzPV z;8w_UBpQ&r`l9!M zb?^v|fDeP7o+}mr`y!1W4oLqYt`G1Y9Bd71VO3lQ;2-?q+Jn7oB0Lv*i234duzOoz z2_V!Bz$`e7rlB_Asv%fC`W{#p&467p4XKA`z=cqM=$+U^yefnWH$j#Q0UaO2MF3{5 z;QT?nE4dU<6We$Woc^%52b_9Wp~mndI1V|D@W?>mEW8I^O$EsI3&5niq9$ZF;)h&> z1L0$k0@^4t!gA0fyZIc_@b@@i6!ira@sz{)Df}A*MYmZ0g68dL6HNn7jTX| zp`*YeI4wj8Zvhoo^J&~EZWRZ9U*)!O_qb}V39vnC`QgCp=^=g*y8%+)9zulI>njLU#L5L8` löst zu +//! `assets/sounds/{name}.wav` auf (macht der Frontend-Treiber), `radius` +//! (Meter, optional) bestimmt die Distance ramp. +//! +//! Headless wie `trigger`: hier lebt nur die *Logik* — wer sendet wo, und +//! wie laut ist das gerade für den Hörer ([`Emitters::gains`], lineare +//! Rampe [`distance_gain`]). Gerätezugriff und Mixing sind Sache des +//! Frontend-Treibers (render::audio), der die Gains jeden Frame zieht und +//! auf seine Voices legt — die Engine ruft nie ins Frontend. +//! +//! Einmal-SFX laufen nicht hier, sondern über den Signal-Dispatcher +//! (`play_sound ` → `Action::PlaySound` → `Session::take_sounds`). + +use crate::engine::model::Model; + +/// Custom-Property-Schlüssel, der ein Empty zum Ambient-Emitter macht +/// (Wert = Sound-Name). Emitter loopen immer; „an/aus" macht die Autorin +/// über Distanz/Radius oder (später) per Signal. +pub const SOUND_PROP: &str = "sound"; +/// Optionaler Hörradius in Metern (Custom Property am selben Empty). +pub const RADIUS_PROP: &str = "radius"; +const DEFAULT_RADIUS: f32 = 8.0; + +pub struct Emitter { + pub sound: String, + pos: [f32; 3], + radius: f32, +} + +#[derive(Default)] +pub struct Emitters { + list: Vec, +} + +impl Emitters { + pub fn new() -> Self { Self::default() } + + /// Emitter eines Modells übernehmen: alle Empties mit `sound`-Property. + pub fn add_model(&mut self, model: &Model) { + for e in &model.empties { + let Some(sound) = e.props.get(SOUND_PROP) else { continue; }; + let radius = e.props.get(RADIUS_PROP) + .and_then(|r| r.parse::().ok()) + .filter(|r| *r > 0.0) + .unwrap_or(DEFAULT_RADIUS); + self.list.push(Emitter { sound: sound.clone(), pos: e.pos, radius }); + } + } + + /// Die Emitter in fester Reihenfolge (Voice-Zuordnung des Treibers). + pub fn list(&self) -> &[Emitter] { &self.list } + + /// Aktueller Gain je Emitter (parallel zu [`Emitters::list`]) für einen + /// Hörer bei `listener` — jeden Frame ziehen, auf die Voices legen. + pub fn gains(&self, listener: [f32; 3]) -> Vec { + self.list.iter().map(|e| { + let d = [ + e.pos[0] - listener[0], + e.pos[1] - listener[1], + e.pos[2] - listener[2], + ]; + let dist = (d[0] * d[0] + d[1] * d[1] + d[2] * d[2]).sqrt(); + distance_gain(dist, e.radius) + }).collect() + } +} + +/// Lineare Distance ramp: volle Lautstärke am Emitter, Stille ab `radius`. +/// Bewusst linear statt 1/d² — bei Zimmer-Skalen klingt die gerade Rampe +/// kontrollierbarer, und die Autorin kann per `radius` direkt denken. +pub fn distance_gain(dist: f32, radius: f32) -> f32 { + (1.0 - dist / radius).clamp(0.0, 1.0) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::engine::model::{Empty, Props}; + + fn model(empties: Vec) -> Model { + Model { objects: Vec::new(), empties, materials: Vec::new() } + } + + fn empty(name: &str, pos: [f32; 3], props: &[(&str, &str)]) -> Empty { + let mut p = Props::new(); + for (k, v) in props { p.insert((*k).into(), (*v).into()); } + Empty { name: name.into(), pos, props: p } + } + + #[test] + fn collects_sound_empties_with_radius() { + let mut em = Emitters::new(); + em.add_model(&model(vec![ + empty("Radio", [5.0, 0.0, 0.0], &[("sound", "hum"), ("radius", "4")]), + empty("spawn", [0.0, 0.0, 0.0], &[("role", "spawn")]), + empty("Bach", [9.0, 0.0, 0.0], &[("sound", "wasser")]), + ])); + assert_eq!(em.list().len(), 2, "nur Empties mit sound-Property"); + assert_eq!(em.list()[0].sound, "hum"); + assert_eq!(em.list()[1].radius, DEFAULT_RADIUS); + } + + #[test] + fn gains_ramp_linearly_to_radius() { + let mut em = Emitters::new(); + em.add_model(&model(vec![ + empty("Radio", [0.0, 0.0, 0.0], &[("sound", "hum"), ("radius", "4")]), + ])); + assert_eq!(em.gains([0.0, 0.0, 0.0]), vec![1.0]); + assert_eq!(em.gains([2.0, 0.0, 0.0]), vec![0.5]); + assert_eq!(em.gains([4.0, 0.0, 0.0]), vec![0.0]); + assert_eq!(em.gains([9.0, 0.0, 0.0]), vec![0.0], "hinter dem Radius still"); + } + + #[test] + fn broken_radius_falls_back_to_default() { + let mut em = Emitters::new(); + em.add_model(&model(vec![ + empty("A", [0.0; 3], &[("sound", "x"), ("radius", "kaputt")]), + empty("B", [0.0; 3], &[("sound", "y"), ("radius", "-2")]), + ])); + assert!(em.list().iter().all(|e| e.radius == DEFAULT_RADIUS)); + } +} diff --git a/src/engine/mod.rs b/src/engine/mod.rs index 022787f..846f78f 100644 --- a/src/engine/mod.rs +++ b/src/engine/mod.rs @@ -16,17 +16,20 @@ //! an den Aufrufer lösen (so wie story_ctrl Tags zurückgibt, statt selbst //! signals::dispatch zu rufen). //! -//! `gltf` und `tga` sind reine Decoder (Bytes → owned Daten, hängen an -//! nichts) — die geteilte Heimat für Format-Dekodierung, die jedes +//! `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`. +//! 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; @@ -38,3 +41,4 @@ pub mod signals; pub mod story_ctrl; pub mod tga; pub mod trigger; +pub mod wav; diff --git a/src/engine/signals.rs b/src/engine/signals.rs index a37a3ae..3f26e3d 100644 --- a/src/engine/signals.rs +++ b/src/engine/signals.rs @@ -15,7 +15,8 @@ //! `inc []` KV-Integer inkrementieren (Default +1) //! `clear ` KV-Eintrag entfernen //! `hide_object ` → Action::HideObject (deferred) -//! `play_sound ` → Action::PlaySound (deferred) +//! `play_sound ` → Action::PlaySound (deferred): SFX aus +//! `assets/sounds/{name}.wav` //! `mode ` → Action::SetMode (deferred): Anzeige-/ //! Eingabemodus wechseln //! @@ -182,7 +183,7 @@ mod tests { let mut signals = Signals::new(); signals.insert("pickup".into(), vec![ "inc items".into(), - "play_sound pickup.wav".into(), + "play_sound pickup".into(), "hide_object $self".into(), ]); let mut game = Game::new(signals); @@ -192,7 +193,7 @@ mod tests { assert_eq!(game.kv["items"].coerce_to_int().unwrap(), 1); assert_eq!(game.actions, vec![ - Action::PlaySound("pickup.wav".into()), + Action::PlaySound("pickup".into()), Action::HideObject("Mushroom.005".into()), ]); } diff --git a/src/engine/wav.rs b/src/engine/wav.rs new file mode 100644 index 0000000..a740d25 --- /dev/null +++ b/src/engine/wav.rs @@ -0,0 +1,132 @@ +//! Minimaler WAV-Decoder (Blender-/DAW-Export) → Mono-Samples. +//! +//! Eingebettete Fassung des irl3d-Loaders (../irl3d/src/wav.rs), auf die +//! WDS-Loader-Regeln gebracht: reiner Decoder (Bytes → owned Daten), +//! `Result` statt Panic — Sounds sind Autorinnen-Content, ein kaputtes +//! File wird gemeldet und bleibt still, nie fatal. +//! +//! Akzeptiert ausschließlich PCM (`format = 1`), 1 Kanal, 16 bit, 44100 Hz, +//! little-endian — das feste Format des Mixers (render::audio). „Als WAV +//! mono 16-bit 44,1 kHz exportieren" ist die ganze Anleitung; alles andere +//! ist eine klare Fehlermeldung mit Pfad. Über unbekannte RIFF-Chunks +//! (`LIST`, `INFO`, `bext`, …) wird hinweggesprungen. + +/// Sample-Rate des gesamten Audio-Pfads (Decoder-Kontrakt und Mixer-Takt). +pub const SAMPLE_RATE: u32 = 44100; + +pub struct Wav { + pub samples: Vec, +} + +pub fn load(path: &str) -> Result { + let bytes = std::fs::read(path).map_err(|e| format!("wav load {path}: {e}"))?; + parse(&bytes).map_err(|e| format!("wav {path}: {e}")) +} + +pub fn parse(data: &[u8]) -> Result { + if data.len() < 12 || &data[0..4] != b"RIFF" || &data[8..12] != b"WAVE" { + return Err("kein RIFF/WAVE".into()); + } + + let mut fmt_found = false; + let mut samples: Option> = None; + + let mut i = 12; + while i + 8 <= data.len() { + let id = &data[i..i + 4]; + let size = u32::from_le_bytes(data[i + 4..i + 8].try_into().unwrap()) as usize; + let body = i + 8; + let end = body + size; + if end > data.len() { return Err("Chunk länger als Datei".into()); } + match id { + b"fmt " => { + if size < 16 { return Err("fmt-Chunk zu kurz".into()); } + let format = u16::from_le_bytes(data[body..body + 2].try_into().unwrap()); + let channels = u16::from_le_bytes(data[body + 2..body + 4].try_into().unwrap()); + let rate = u32::from_le_bytes(data[body + 4..body + 8].try_into().unwrap()); + let bits = u16::from_le_bytes(data[body + 14..body + 16].try_into().unwrap()); + if format != 1 || channels != 1 || bits != 16 || rate != SAMPLE_RATE { + return Err(format!( + "brauche PCM mono 16-bit {SAMPLE_RATE} Hz, ist format={format} \ + channels={channels} bits={bits} rate={rate}")); + } + fmt_found = true; + } + b"data" => { + if !fmt_found { return Err("data-Chunk vor fmt".into()); } + samples = Some(data[body..end].chunks_exact(2) + .map(|c| i16::from_le_bytes([c[0], c[1]])) + .collect()); + } + _ => {} // LIST, INFO, bext, … überspringen + } + // Chunks sind word-aligned (Padding-Byte bei ungerader Größe). + i = end + (size & 1); + } + + match samples { + Some(samples) if !samples.is_empty() => Ok(Wav { samples }), + Some(_) => Err("data-Chunk leer".into()), + None => Err("kein data-Chunk".into()), + } +} + +#[cfg(test)] +mod tests { + use super::*; + + /// Minimale WAV-Datei bauen, wie ein Exporter sie schriebe. + fn wav_bytes(format: u16, channels: u16, rate: u32, bits: u16, samples: &[i16]) -> Vec { + let data_len = samples.len() * 2; + let mut out = Vec::new(); + out.extend(b"RIFF"); + out.extend(((4 + 8 + 16 + 8 + data_len) as u32).to_le_bytes()); + out.extend(b"WAVE"); + out.extend(b"fmt "); + out.extend(16u32.to_le_bytes()); + out.extend(format.to_le_bytes()); + out.extend(channels.to_le_bytes()); + out.extend(rate.to_le_bytes()); + out.extend((rate * 2).to_le_bytes()); // byte rate + out.extend(2u16.to_le_bytes()); // block align + out.extend(bits.to_le_bytes()); + out.extend(b"data"); + out.extend((data_len as u32).to_le_bytes()); + for s in samples { out.extend(s.to_le_bytes()); } + out + } + + #[test] + fn parses_pcm_mono_16bit() { + let w = parse(&wav_bytes(1, 1, SAMPLE_RATE, 16, &[0, 1000, -1000])).unwrap(); + assert_eq!(w.samples, vec![0, 1000, -1000]); + } + + #[test] + fn skips_unknown_chunks() { + // LIST-Chunk zwischen fmt und data. + let base = wav_bytes(1, 1, SAMPLE_RATE, 16, &[7]); + let mut out = base[..36].to_vec(); // bis inkl. fmt + out.extend(b"LIST"); + out.extend(4u32.to_le_bytes()); + out.extend(b"INFO"); + out.extend(&base[36..]); // data-Chunk + let len = (out.len() - 8) as u32; + out[4..8].copy_from_slice(&len.to_le_bytes()); + assert_eq!(parse(&out).unwrap().samples, vec![7]); + } + + #[test] + fn rejects_wrong_formats() { + assert!(parse(b"OggS...nope").is_err()); + assert!(parse(&wav_bytes(1, 2, SAMPLE_RATE, 16, &[0])).is_err(), "stereo"); + assert!(parse(&wav_bytes(1, 1, 22050, 16, &[0])).is_err(), "falsche Rate"); + assert!(parse(&wav_bytes(1, 1, SAMPLE_RATE, 8, &[0])).is_err(), "8 bit"); + assert!(parse(&wav_bytes(3, 1, SAMPLE_RATE, 16, &[0])).is_err(), "float-PCM"); + } + + #[test] + fn load_missing_file_is_err() { + assert!(load("/nonexistent/x.wav").is_err()); + } +} diff --git a/src/render/audio.rs b/src/render/audio.rs new file mode 100644 index 0000000..820e917 --- /dev/null +++ b/src/render/audio.rs @@ -0,0 +1,151 @@ +//! Audio-Treiber auf tinyaudio — Frontend-Gegenstück zur headless +//! Emitter-Logik in engine::audio (wie `Gpu` zu `scene`: die Engine kennt +//! dieses Modul nie). +//! +//! Eingebettete Fassung des irl3d-Mixers (../irl3d/src/audio.rs), auf die +//! WDS-Regeln gebracht: kein Panic — kein Gerät oder fehlende/kaputte +//! WAVs sind eine Meldung und Stille, nie fatal ([`Audio::open`] liefert +//! `None`, alle Aufrufe darauf entfallen still beim Aufrufer). +//! +//! Mono, 44100 Hz (fest, siehe engine::wav). Zwei Voice-Klassen: +//! - 8 SFX-Voices: einmal durchlaufen, dann geräumt; sind alle belegt, +//! wird die am weitesten gespielte verdrängt (`play`). +//! - Ambient-Voices: eine je Emitter, loopen immer; ihr Gain ist die +//! Distance ramp, die das Frontend jeden Frame aus +//! `Session::emitter_gains` zieht ([`Audio::set_ambient_gains`]). +//! +//! Gemischt wird im Callback-Thread in f32 über alle aktiven Voices +//! (Sample × Gain), am Ende auf [-1, 1] geklemmt. Der Mixer hängt hinter +//! einem Mutex; Frontend-Seite fasst ihn nur kurz pro Frame/SFX an. + +use std::sync::{Arc, Mutex}; + +use tinyaudio::{run_output_device, OutputDevice, OutputDeviceParameters}; + +use crate::engine::wav; + +const SFX_VOICES: usize = 8; +/// Callback-Puffergröße in Samples (~6 ms bei 44,1 kHz). +const BUFFER_LEN: usize = 256; + +/// Dekodierte Mono-Samples, geteilt zwischen Cache und laufenden Voices. +#[derive(Clone)] +pub struct Sound { + samples: Arc>, +} + +impl Sound { + pub fn new(w: wav::Wav) -> Self { + Sound { samples: Arc::new(w.samples) } + } +} + +struct Voice { + samples: Arc>, + cursor: usize, + gain: f32, +} + +#[derive(Default)] +struct Mixer { + sfx: Vec>, + /// Loop-Voices der Ambient-Emitter, Index = Emitter-Reihenfolge. + ambient: Vec, +} + +impl Mixer { + fn mix(&mut self, out: &mut [f32]) { + for s in out.iter_mut() { + let mut acc = 0.0f32; + for slot in self.sfx.iter_mut() { + if let Some(v) = slot { + acc += v.samples[v.cursor] as f32 * v.gain; + v.cursor += 1; + if v.cursor >= v.samples.len() { *slot = None; } + } + } + for v in self.ambient.iter_mut() { + // Auch bei Gain 0 weiterlaufen lassen: ein Emitter, in dessen + // Radius man zurückkehrt, spielt mitten in seiner Schleife — + // nicht jedes Mal von vorn. + acc += v.samples[v.cursor] as f32 * v.gain; + v.cursor = (v.cursor + 1) % v.samples.len(); + } + *s = (acc / 32768.0).clamp(-1.0, 1.0); + } + } +} + +pub struct Audio { + mixer: Arc>, + _device: OutputDevice, // lebt, solange Audio lebt +} + +impl Audio { + /// Ausgabegerät öffnen. `None`, wenn keins da ist (Meldung, Spiel läuft + /// stumm weiter). + pub fn open() -> Option { + // pipewire-pulse/PulseAudio respektiert diese Variable als + // Ziel-Latenz des Streams (Default ~50–200 ms) — herabsetzen für + // snappige SFX. Muss vor `run_output_device` gesetzt sein; auf + // Windows/macOS ignoriert. + // SAFETY: einmalig beim Start, bevor weitere Threads laufen (wird + // in render::run vor dem stdin-Thread gerufen). + unsafe { std::env::set_var("PULSE_LATENCY_MSEC", "15"); } + + let mixer = Arc::new(Mutex::new(Mixer { + sfx: (0..SFX_VOICES).map(|_| None).collect(), + ambient: Vec::new(), + })); + let cb_mixer = Arc::clone(&mixer); + let device = run_output_device( + OutputDeviceParameters { + channels_count: 1, + sample_rate: wav::SAMPLE_RATE as usize, + channel_sample_count: BUFFER_LEN, + }, + move |buf: &mut [f32]| { cb_mixer.lock().unwrap().mix(buf); }, + ); + match device { + Ok(device) => Some(Audio { mixer, _device: device }), + Err(e) => { + eprintln!("[audio] kein Ausgabegerät ({e}) — Spiel läuft stumm"); + None + } + } + } + + /// Einmal-SFX starten: freier Slot, sonst wird die am weitesten + /// gespielte Voice verdrängt. + pub fn play(&self, s: &Sound) { + if s.samples.is_empty() { return; } + let mut m = self.mixer.lock().unwrap(); + let target = m.sfx.iter().enumerate() + .max_by_key(|(_, slot)| slot.as_ref().map_or(usize::MAX, |v| v.cursor)) + .map_or(0, |(i, _)| i); + m.sfx[target] = Some(Voice { + samples: Arc::clone(&s.samples), cursor: 0, gain: 1.0, + }); + } + + /// Die Ambient-Loop-Voices anlegen — einmal beim Start, Reihenfolge = + /// `Session::emitters` (die Gains kommen dann parallel dazu, deshalb + /// bekommt auch ein nicht ladbarer Sound seine — stille — Voice). + pub fn set_ambients(&self, sounds: &[Option]) { + let mut m = self.mixer.lock().unwrap(); + m.ambient = sounds.iter().map(|s| Voice { + samples: s.as_ref().map_or_else(|| Arc::new(vec![0]), |s| Arc::clone(&s.samples)), + cursor: 0, + gain: 0.0, + }).collect(); + } + + /// Distance-ramp-Gains auf die Ambient-Voices legen — jeden Frame, aus + /// `Session::emitter_gains`. + pub fn set_ambient_gains(&self, gains: &[f32]) { + let mut m = self.mixer.lock().unwrap(); + for (v, g) in m.ambient.iter_mut().zip(gains) { + v.gain = *g; + } + } +} diff --git a/src/render/mod.rs b/src/render/mod.rs index 6849194..0a75a41 100644 --- a/src/render/mod.rs +++ b/src/render/mod.rs @@ -14,6 +14,7 @@ //! Schicht-Regel wie `cli`: Geschwister von `engine`/`session`, konsumiert //! deren Schnittstellen — nie umgekehrt. +mod audio; mod camera; mod font; mod gpu; @@ -23,6 +24,7 @@ mod scene; mod sprite; mod ui; +use std::collections::HashMap; use std::sync::mpsc::{self, Receiver}; use std::sync::Arc; use std::time::Instant; @@ -35,7 +37,7 @@ use winit::window::{CursorGrabMode, Window, WindowId}; use crate::engine::player; use crate::engine::tga::Image; -use crate::engine::{assets, gltf, model, tga}; +use crate::engine::{assets, gltf, model, tga, wav}; use crate::session::{FrameInput, Mode, Session}; use camera::Camera; use gpu::Gpu; @@ -79,10 +81,22 @@ pub fn run(mut session: Session) { println!("[scene] {} Modelle, Texturen {:?} → {} Vertices, {} Dreiecke", models.len(), tex_names, mesh.verts.len(), mesh.indices.len() / 3); - // Sim-Welt (Collider, Trigger, Spawn-Empty) in die Session einspielen — - // die Simulation gehört der Session, nicht dem Render-Frontend. + // Sim-Welt (Collider, Trigger, Emitter, Spawn-Empty) in die Session + // einspielen — die Simulation gehört der Session, nicht dem + // Render-Frontend. for (_, m) in &models { session.load_props(m); } + // Audio-Treiber öffnen (vor dem stdin-Thread, siehe Audio::open) und je + // Ambient-Emitter eine Loop-Voice anlegen; die Gains zieht redraw() + // dann jeden Frame aus der Session. Ohne Gerät läuft das Spiel stumm. + let audio = audio::Audio::open(); + if let Some(a) = &audio { + let sounds: Vec> = session.emitters().iter() + .map(|e| load_sound(&e.sound)) + .collect(); + a.set_ambients(&sounds); + } + // UI-Texturen, Reihenfolge = die Index-Konstanten in ui (WHITE, FONT_EGA, // FONT_CGA, CURSORS, ORN). Decode (CPU) bleibt in run(); Fonts, Cursor und // Ornament sind weiß-auf-schwarz und bekommen ihre Alpha-Maske aus der @@ -126,7 +140,7 @@ pub fn run(mut session: Session) { // Poll statt Wait: wir rendern kontinuierlich (Spiel, kein Editor) und // pollen nebenbei den Befehls-Channel. event_loop.set_control_flow(ControlFlow::Poll); - let mut app = App::new(session, rx, mesh, images, ui_textures, fonts); + let mut app = App::new(session, rx, mesh, images, ui_textures, fonts, audio); event_loop.run_app(&mut app).expect("winit: run"); } @@ -170,6 +184,18 @@ fn load_models(dir: &str) -> Vec<(String, model::Model)> { /// Eine Welt-Textur laden: `assets/textures/{name}.tga`. Fehlt die Datei /// (Material ohne Textur, Tippfehler im Blender-Materialnamen), gibt es den /// Platzhalter statt eines Boot-Panics — Texturnamen sind Autorinnen-Content. +/// Sound laden: `name` → `assets/sounds/{name}.wav`. Autorinnen-Content — +/// Fehler werden gemeldet und ergeben Stille (`None`), nie einen Absturz. +fn load_sound(name: &str) -> Option { + match wav::load(&assets::path(&format!("assets/sounds/{name}.wav"))) { + Ok(w) => Some(audio::Sound::new(w)), + Err(e) => { + eprintln!("[audio] {e}"); + None + } + } +} + fn load_texture(name: &str) -> Image { let path = assets::path(&format!("assets/textures/{name}.tga")); if std::path::Path::new(&path).exists() { @@ -220,6 +246,11 @@ struct App { images: Vec, ui_textures: Vec, fonts: font::Fonts, + /// Audio-Treiber (`None` = kein Gerät, Spiel läuft stumm) und der + /// Lazy-Cache der Einmal-SFX (`None` = Laden schlug fehl, nur einmal + /// melden, nicht jeden Klick). + audio: Option, + sfx_cache: HashMap>, } impl App { @@ -230,6 +261,7 @@ impl App { images: Vec, ui_textures: Vec, fonts: font::Fonts, + audio: Option, ) -> Self { // Kamera-Augenhöhe initial auf den Spawn des Players (gehört der Session). let eye_y = session.player.pos[1] + player::EYE_HEIGHT; @@ -249,6 +281,8 @@ impl App { images, ui_textures, fonts, + audio, + sfx_cache: HashMap::new(), } } @@ -412,6 +446,19 @@ impl App { self.input.mouse_dy = 0.0; self.input.jump = false; + // Audio: Distance ramps der Ambient-Emitter nachführen und + // aufgelaufene Einmal-SFX (play_sound-Actions) starten. Die Queue + // immer leeren, auch ohne Gerät — sonst wüchse sie unbegrenzt. + let sfx = self.session.take_sounds(); + if let Some(a) = &self.audio { + a.set_ambient_gains(&self.session.emitter_gains()); + for name in sfx { + let sound = self.sfx_cache.entry(name.clone()) + .or_insert_with(|| load_sound(&name)); + if let Some(s) = sound { a.play(s); } + } + } + // Eye-Height-Smoothing: die Kamera-Augenhöhe gleitet am Boden sanft auf // den Zielwert nach, statt Step-up-/Slope-Kanten-Sprüngen sofort zu // folgen (versteckt den AABB-auf-Slope-„Pop" und macht Treppen weich). diff --git a/src/session.rs b/src/session.rs index 4a2c733..ee6f611 100644 --- a/src/session.rs +++ b/src/session.rs @@ -1,3 +1,4 @@ +use crate::engine::audio::Emitters; use crate::engine::collision::CollisionWorld; use crate::engine::game::{Action, Game, ModeTarget}; use crate::engine::ink::StoryState; @@ -43,6 +44,13 @@ pub struct Session { /// Klick-Ziele und Betretens-Zonen aus den Blender-Modellen /// (`signal`-Property, siehe engine::trigger). triggers: Triggers, + /// Ambient-Emitter aus den Blender-Modellen (`sound`-Property auf + /// Empties, siehe engine::audio). + emitters: Emitters, + /// Von `Action::PlaySound` aufgelaufene Einmal-SFX — das Fenster-Frontend + /// zieht sie per [`Session::take_sounds`] und spielt sie; die CLI lässt + /// sie liegen (ihr reicht die `[action]`-Textzeile). + pending_sounds: Vec, signals_path: String, /// Aufgelaufene, noch nicht simulierte Zeit (s) für den Fixed-Timestep. sim_accum: f32, @@ -87,6 +95,8 @@ impl Session { player: Player::new([0.0, 1.0, 0.0]), collision: CollisionWorld::empty(), triggers: Triggers::new(), + emitters: Emitters::new(), + pending_sounds: Vec::new(), signals_path, sim_accum: 0.0, pending_jump: false, @@ -96,13 +106,14 @@ impl Session { /// Sim-Seite eines Blender-Modells in die Welt einfügen — einmal pro /// Modell vom Fenster-Frontend beim Start gerufen: Collider (`collide`- /// Property → konvexe Hülle), Trigger (`signal`-Property → Klick-Ziele/ - /// Zonen) und der Spieler-Spawn (Empty mit `role = spawn`; bringen - /// mehrere Modelle einen mit, gewinnt der zuletzt geladene). Die - /// Sichtgeometrie desselben Modells ist Sache des Renderers - /// (render::props). + /// Zonen), Ambient-Emitter (`sound`-Property auf Empties) und der + /// Spieler-Spawn (Empty mit `role = spawn`; bringen mehrere Modelle + /// einen mit, gewinnt der zuletzt geladene). Die Sichtgeometrie + /// desselben Modells ist Sache des Renderers (render::props). pub fn load_props(&mut self, model: &model::Model) { self.collision.add_model(model); self.triggers.add_model(model); + self.emitters.add_model(model); for e in &model.empties { if e.props.get(model::ROLE_PROP).map(String::as_str) == Some(model::ROLE_SPAWN) { self.player = Player::new(e.pos); @@ -110,6 +121,25 @@ impl Session { } } + /// Die Ambient-Emitter in fester Reihenfolge — der Audio-Treiber legt + /// beim Start je Emitter eine Loop-Voice an. + pub fn emitters(&self) -> &[crate::engine::audio::Emitter] { + self.emitters.list() + } + + /// Aktuelle Emitter-Gains (parallel zu [`Session::emitters`]) für die + /// Ohrposition des Spielers — jeden Frame vom Audio-Treiber gezogen. + pub fn emitter_gains(&self) -> Vec { + let p = self.player.pos; + self.emitters.gains([p[0], p[1] + player::EYE_HEIGHT, p[2]]) + } + + /// Aufgelaufene Einmal-SFX (`play_sound`-Actions) abholen — jeden Frame + /// vom Fenster-Frontend gerufen, das sie an den Audio-Treiber gibt. + pub fn take_sounds(&mut self) -> Vec { + std::mem::take(&mut self.pending_sounds) + } + /// Einen Simulationsschritt treiben — das kontinuierliche Gegenstück zu /// `exec`. Nur im Spielmodus bewegt sich der Spieler; Menü/Dialog/Flycam /// pausieren die Sim (die Flycam ist reine Frontend-Sicht). Rückgabe: @@ -328,7 +358,10 @@ impl Session { for a in actions { match a { Action::HideObject(n) => out.push(format!("[action] hide_object {n}")), - Action::PlaySound(n) => out.push(format!("[action] play_sound {n}")), + Action::PlaySound(n) => { + out.push(format!("[action] play_sound {n}")); + self.pending_sounds.push(n); + } Action::SetMode(t) => { self.set_mode(t); out.push(format!("[action] mode {}", t.label())); @@ -561,6 +594,15 @@ mod tests { assert_eq!(s.pick([5.5, 0.5, 0.0], [0.0, 0.0, 1.0], INTERACT_REACH), None); } + #[test] + fn play_sound_action_queues_for_frontend() { + let mut s = empty_session(); + // Fall-through-Builtin über den Signal-Trichter, wie ein Ink-Tag. + s.exec("signal play_sound klick"); + assert_eq!(s.take_sounds(), vec!["klick".to_string()]); + assert!(s.take_sounds().is_empty(), "take leert die Queue"); + } + #[test] fn spawn_empty_places_player() { let mut s = empty_session();