Files
wds/assets/signals.toml
T
irrlicht 31e1942870 Audio: WAV + tinyaudio, Ambient-Emitter mit Distance ramps; artist.md
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>
2026-07-16 20:37:18 +02:00

58 lines
1.4 KiB
TOML

# Signal → Action Mapping. Trigger feuern Signals (Strings); hier wird
# definiert, was bei jedem Signal passiert. Signal-Name = Trigger-Quelle:
# für Objekt-Interaktion ist es der Instance-Name ohne Blender-Suffix.
#
# Actions sind Strings im Format "verb args". Verben:
# start_ink <script> Story laden (Frontend treibt sie)
# debug_log <text> eprintln!
# set <name> <value> KV setzen (true/false/i32/f32/string)
# inc <name> [<delta>] KV-Integer +Delta (Default +1)
# clear <name> KV-Eintrag entfernen
# hide_object <name> deferred (Frontend): Instance ausblenden
# play_sound <name> deferred (Frontend): SFX aus assets/sounds/{name}.wav
#
# Reserviertes Signal `[init]` feuert einmal vor der Game-Loop —
# idealer Ort für KV-Defaults.
[init]
actions = [
"set cube_clicks 0",
"set mushrooms_collected 0",
"set quest_mushroom_active false",
"set quest_mushroom_done false",
]
[Mushroom]
actions = [
"inc mushrooms_collected",
"play_sound pickup",
"hide_object $self",
]
[Person]
actions = [
"play_sound greet",
"start_ink person.ink.json",
]
[Suzanne]
actions = [
"start_ink suzanne.ink.json",
]
[Cube]
actions = [
"inc cube_clicks",
"start_ink cube.ink.json",
]
[person_farewell]
actions = [
"debug_log Person hat sich verabschiedet",
]
[tiffany]
actions = [
"start_ink cinema.ink.json",
]