diff --git a/mods/bespoke_sfx/COPYRIGHT.md b/mods/bespoke_sfx/COPYRIGHT.md deleted file mode 100644 index 4ea494fb..00000000 --- a/mods/bespoke_sfx/COPYRIGHT.md +++ /dev/null @@ -1,17 +0,0 @@ -# Assets - -## Recorded Foley - -All audio assets within the bespoke_sfx/sounds/foley folder are sounds recorded using a microphone and foley techniques, and edited and released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). - -## Text-To-Speech Placeholder Audio - -All audio within the bespoke_sfx/sounds/tts folder is released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). It is text-to-speech generated using formant synthesis (not voice samples) via [eSpeak-NG](https://github.com/espeak-ng/espeak-ng). - -## Generated Waveforms - -All audio within the bespoke_sfx/sounds/gen folder is released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). These are procedurally generated waveforms produced using tools such as [sfxr](http://www.drpetter.se/project_sfxr.html) and [wafxr](https://fenomas.github.io/wafxr/). - -## Mixed/Layered Sound Effects - -All audio within the bespoke_sfx/sounds/mix folder is released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). These are composite sound effects assembled by layering and mixing sources from the other folders in this mod (foley, gen, etc.), all of which are themselves CC0. diff --git a/mods/bespoke_sfx/README.md b/mods/bespoke_sfx/README.md deleted file mode 100644 index da6c2185..00000000 --- a/mods/bespoke_sfx/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Bespoke SFX (Public Domain Sound Assets) - -## Usage - -This is a glorified sounds folder in the guise of a mod. -You still have to specify the use of a sound by string in order to use it. -I mostly just made this as a means of clear organization between stuff -we need to be super clear on the license for (not in this mod) and stuff that's -free and clear of copyright issues, which would be foley recorded and edited personally, -text-to-speech generated via formant synthesis, generated waveforms, or layered mixes -of the above. - -## Contents - -**sounds/foley** — Sounds recorded using a microphone and foley techniques, edited and released as CC0 1.0 (Public Domain). - -**sounds/tts** — Text-to-speech placeholder audio generated using formant synthesis (not voice samples) via eSpeak-NG. No voice samples, no copyright concerns. CC0 1.0 (Public Domain). - -**sounds/gen** — Procedurally generated waveforms, made using tools such as sfxr and wafxr. CC0 1.0 (Public Domain). - -**sounds/mix** — Composite sound effects assembled by layering and mixing sources from the other folders (foley, sfxr, etc.). All source material is CC0, and so are the results. CC0 1.0 (Public Domain). - -## License - -Everything in this mod is [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). See COPYRIGHT.md for per-folder details. diff --git a/mods/bespoke_sfx/init.lua b/mods/bespoke_sfx/init.lua deleted file mode 100644 index cf3781a3..00000000 --- a/mods/bespoke_sfx/init.lua +++ /dev/null @@ -1 +0,0 @@ --- Empty stub file just so that it registers this "mod" as a resource location. \ No newline at end of file diff --git a/mods/bespoke_sfx/mod.conf b/mods/bespoke_sfx/mod.conf deleted file mode 100644 index 583e9f78..00000000 --- a/mods/bespoke_sfx/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = bespoke_sfx -description = Public domain sound assets (CC0 1.0): foley recordings, eSpeak-NG text-to-speech placeholders, and generated waveforms \ No newline at end of file diff --git a/mods/sbz_audio/COPYRIGHT.md b/mods/sbz_audio/COPYRIGHT.md new file mode 100644 index 00000000..01494344 --- /dev/null +++ b/mods/sbz_audio/COPYRIGHT.md @@ -0,0 +1,71 @@ +# Assets Organized by License and Type + +## New, Internally-Created Audio + +### Recorded Foley + +All audio assets within the cc0/foley folder are sounds recorded using a microphone and foley techniques, and edited and released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain) by someone we _personally_ know and trust ONLY. + +### Text-To-Speech Audio + +All audio within the cc0/tts folder is released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). It is text-to-speech generated using formant synthesis (not voice samples) via [eSpeak-NG](https://github.com/espeak-ng/espeak-ng). + +### Generated Waveforms + +All audio within the cc0/gen folder is released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain). These are procedurally generated waveforms produced using tools such as [sfxr](http://www.drpetter.se/project_sfxr.html) and [wafxr](https://fenomas.github.io/wafxr/). + +### Mixed/Layered Sound Effects + +All audio within the cc0/mix folder is released [CC0 1.0](https://creativecommons.org/public-domain/cc0/) (Public Domain), created by someone we _personally_ know and trust ONLY. These are composite sound effects assembled by layering and mixing sources from the other folders in this mod (foley, gen, etc.), all of which are themselves CC0. + +## Legacy Audio Assets + +### Sounds and SFX + +`legacy/antistep.ogg` by ChefZander. CC0. Derivative of "Step 4.wav" by carrigsound. CC0. . + +`legacy/block_annihilated.ogg` +- "[SFX Hit] deep kick boom" Copyright (C) 2014 waveplaySFX. CC BY 4.0. . +- Derivative asset for Skyblock: Zero. + - Copyright (C) 2024 ChefZander. CC BY 4.0. + - Copyright (C) 2026 AbbyRead. CC BY 4.0. + +`legacy/charged_field_shutdown.ogg` is "hard_drive_shut_down_01.wav" by Noisehag. CC0. . + +`legacy/decay.ogg` is "pop.ogg" by dodrio. CC0. . + +`legacy/drill_dig.ogg` +- "[SFX Hit] deep kick boom" Copyright (C) 2014 waveplaySFX. CC BY 4.0. . +- Derivative asset for Skyblock: Zero. + - Copyright (C) 2024 TheEt1234. CC BY 4.0. + - Copyright (C) 2026 AbbyRead. CC BY 4.0. + +`legacy/firework_explode.ogg` is "Firework single shot 2" Copyright (C) 2022 MilanKovanda. CC BY 4.0. . + +`legacy/firework_launch.ogg` is "Firework launch (1)" by LukaCafuka. CC0. . + +`legacy/machine_build.ogg` by ChefZander. CC0. Derivative of "Key - Llave" by Lunevix. CC0. . + +`legacy/machine_open.ogg` by TheEt1234, corpserot. CC0. + +`legacy/punch_core.ogg` by corpserot. CC0. + +`legacy/step.ogg` is "Step 4.wav" by carrigsound. CC0. . + +`legacy/tnt_explode.ogg` is "tnt_explode.ogg" by TumeniNodes. CC0. . Derivative of "Explosion2.wav" Copyright (C) 2009 steveygos03. CC BY 3.0. + +`legacy/tnt_ignite.ogg` is "tnt_ignite.ogg" by TumeniNodes, theneedle.tv. CC0. . Derivative of "sparkler_fuse_nm.wav" by Alex_hears_things. CC0. + +### Music + +`legacy/bgm1.ogg` is "Cave Theme" by Brandon Morris. CC0. + +`legacy/bgm2.ogg` is "Background space track" by yd. CC0. + +`legacy/bgm3.ogg` is "Bleeding Out" by Brandon Morris. CC0. + +`legacy/bgm4.ogg` is "Factory Ambiance" by yd. CC0. + +`legacy/bgm5.ogg` is "Galactic Temple" by yd. CC0. + +`legacy/bgm6.ogg` is "A Choice With Many Regrets" Copyright (C) 2025 Tsorthan Grove. CC BY 4.0. diff --git a/mods/sbz_audio/README.md b/mods/sbz_audio/README.md new file mode 100644 index 00000000..55e023bc --- /dev/null +++ b/mods/sbz_audio/README.md @@ -0,0 +1,21 @@ +# SBZ Audio + +## Usage + +Mostly right now this is just a means of clear organization between stuff we need to be super clear on the license for (not in this mod) and stuff that's free and clear of copyright issues, which would be foley recorded and edited personally (by AbbyRead only at this time), text-to-speech generated via formant synthesis, generated waveforms, or layered mixes of the above. There's also now a folder for the older sound assets we were using: `legacy`. + +## Contents + +**sounds/cc0/foley** - Sounds recorded using a microphone and foley techniques, edited and released as CC0 1.0 (Public Domain). + +**sounds/cc0/tts** - Text-to-speech placeholder audio generated using formant synthesis (not voice samples) via eSpeak-NG. No voice samples, no copyright concerns. CC0 1.0 (Public Domain). + +**sounds/cc0/gen** - Procedurally generated waveforms, made using tools such as sfxr and wafxr. CC0 1.0 (Public Domain). + +**sounds/cc0/mix** - Composite sound effects assembled by layering and mixing sources from the other folders (foley, sfxr, etc.). All source material is CC0, and so are the results. CC0 1.0 (Public Domain). + +**sounds/legacy** - The audio content that was in sbz_resources and sbz_base mods previously. I've moved all that to this particular subfolder and updated both COPYRIGHT.md files to reflect the move. Currently, this should be the only place we drop outside audio content, as we have to be _very_ clear and specific about the license. + +## License + +See COPYRIGHT.md for per-folder details. diff --git a/mods/sbz_base/sound_api.lua b/mods/sbz_audio/init.lua similarity index 71% rename from mods/sbz_base/sound_api.lua rename to mods/sbz_audio/init.lua index ffdf22fb..bb5a42c3 100644 --- a/mods/sbz_base/sound_api.lua +++ b/mods/sbz_audio/init.lua @@ -1,36 +1,8 @@ -sbz_api = sbz_api or {} - --- allow for a rightclick parameter too, so that its less annoying -core.register_on_mods_loaded(function() - for k, v in pairs(core.registered_nodes) do - -- If it has a sounds.rightclick specified... - if v.sounds and v.sounds.rightclick then - -- Save original handler (if any) - local old_rightclick = v.on_rightclick - - local function new_rightclick(pos, node, clicker, stack, pointed) - if core.get_meta(pos):get_string 'formspec' ~= '' then - core.sound_play(v.sounds.rightclick, { - pos = pos, - }) - end - - if old_rightclick then - return old_rightclick(pos, node, clicker, stack, pointed) - end - end - - core.override_item(k, { - on_rightclick = new_rightclick, - }) - end - end -end) - -sbz_api.sounds = sbz_api.sounds or {} +-- sbz_api.sounds is gone. Replace with sbz_audio wherever used. +sbz_audio = sbz_audio or {} -- Use as a template (include fade if needed on any) -function sbz_api.sounds.blank() +function sbz_audio.blank() local sounds = { footstep = { name = '', gain = 0.2, pitch = 1.0 }, dig = { name = '', gain = 0.8, pitch = 1.0 }, @@ -40,7 +12,7 @@ function sbz_api.sounds.blank() return sounds end -function sbz_api.sounds.machine() +function sbz_audio.machine() local sounds = { footstep = { name = 'mix_thunk_slightly_metallic', gain = 0.2, pitch = 0.5 }, dig = { name = 'mix_metal_cabinet_hit', gain = 0.8, pitch = 1.0 }, @@ -50,7 +22,7 @@ function sbz_api.sounds.machine() return sounds end -function sbz_api.sounds.matter() +function sbz_audio.matter() local sounds = { footstep = { name = 'mix_choppy_rubber_step', gain = 0.1, pitch = 0.5 }, dig = { name = 'foley_matter_hit_thunky', gain = 0.8, pitch = 0.8 }, @@ -60,7 +32,7 @@ function sbz_api.sounds.matter() return sounds end -function sbz_api.sounds.dirt() +function sbz_audio.dirt() local sounds = { footstep = { name = 'mix_dirt_step', gain = 0.2, pitch = 0.8 }, dig = { name = 'mix_dirt_dig', gain = 0.6, pitch = 1.1 }, @@ -70,7 +42,7 @@ function sbz_api.sounds.dirt() return sounds end -function sbz_api.sounds.antimatter() +function sbz_audio.antimatter() local sounds = { footstep = { name = 'foley_antimatter_hum', gain = 0.2, pitch = 0.8 }, dig = { name = 'foley_antimatter_hit', gain = 0.8, pitch = 1.0 }, @@ -80,7 +52,7 @@ function sbz_api.sounds.antimatter() return sounds end -function sbz_api.sounds.wood_planks() +function sbz_audio.wood_planks() local sounds = { footstep = { name = 'gen_wump_wood', gain = 0.3, pitch = 0.9 }, dig = { name = 'foley_wood_thud_shallow', gain = 0.6, pitch = 0.8 }, @@ -90,7 +62,7 @@ function sbz_api.sounds.wood_planks() return sounds end -function sbz_api.sounds.wood_solid() +function sbz_audio.wood_solid() local sounds = { footstep = { name = 'mix_choppy_rubber_step', gain = 0.2, pitch = 0.8 }, dig = { name = 'mix_matter_hit_weird', gain = 0.8, pitch = 1.2 }, @@ -100,7 +72,7 @@ function sbz_api.sounds.wood_solid() return sounds end -function sbz_api.sounds.leaves() +function sbz_audio.leaves() local sounds = { footstep = { name = 'foley_leaf_step', gain = 0.1, pitch = 0.8 }, dig = { name = 'foley_leaf_step', gain = 0.2, pitch = 0.5 }, @@ -110,7 +82,7 @@ function sbz_api.sounds.leaves() return sounds end -function sbz_api.sounds.glass() +function sbz_audio.glass() local sounds = { footstep = { name = 'foley_matter_hit_light', gain = 0.1, pitch = 1.1 }, dig = { name = 'gen_soft_glass_bump', gain = 0.8, pitch = 1.2 }, @@ -120,7 +92,7 @@ function sbz_api.sounds.glass() return sounds end -function sbz_api.sounds.snow() +function sbz_audio.snow() local sounds = { footstep = { name = 'gen_snow_crunch_abrupt', gain = 0.2, pitch = 1.0 }, dig = { name = 'foley_snow_hit', gain = 0.5, pitch = 1.0 }, @@ -130,7 +102,7 @@ function sbz_api.sounds.snow() return sounds end -function sbz_api.sounds.ice() +function sbz_audio.ice() local sounds = { footstep = { name = 'foley_solid_step_soft', gain = 0.2, pitch = 1.0 }, dig = { name = 'gen_ice_chip', gain = 0.8, pitch = 1.0 }, @@ -140,7 +112,7 @@ function sbz_api.sounds.ice() return sounds end -function sbz_api.sounds.sand() +function sbz_audio.sand() local sounds = { footstep = { name = 'gen_sand_generic', gain = 0.1, pitch = 0.8 }, dig = { name = 'gen_sand_generic_hit', gain = 0.2, pitch = 0.6 }, @@ -150,17 +122,10 @@ function sbz_api.sounds.sand() return sounds end -function sbz_api.play_sfx(spec, params, pitch_randomness) - pitch_randomness = pitch_randomness or 0.035 - local pitch = 1 + (math.random() * pitch_randomness * 2) - pitch_randomness - params.pitch = params.pitch or pitch - core.sound_play(spec, params, true) -end - +-- Global default node sounds core.register_on_mods_loaded(function() local fallback_place_failed = { name = 'gen_error_fart', gain = 0.7, pitch = 1.0,} local fallback_fall = { name = 'gen_pew_slow_fall', gain = 0.3, pitch = 1.1,} - for name, def in pairs(core.registered_nodes) do local s = def.sounds or {} if not s.place_failed or not s.fall then @@ -173,17 +138,25 @@ core.register_on_mods_loaded(function() end end end) - +--[[ (not currently working as intended, so leaving it out for now) +-- Sounds triggered by chat core.register_on_chat_message( function(name, message) + -- Yo, you write a lot, cuz. + if #message >= 450 then -- 500 characters is the server-specified default maximum + core.sound_play("paperflip2", { gain = 0.7, to_player = name }) + return + end + if message:find("[!]+") then - sbz_api.play_sfx("gen_chat_exclamation", { gain = 0.7, to_player = name }) + core.sound_play("gen_chat_exclamation", { gain = 0.7, to_player = name }) elseif message:find("[?]+") then - sbz_api.play_sfx("gen_chat_question", { gain = 0.7, to_player = name }) - elseif message:find("\\[PM\\]|@") then - sbz_api.play_sfx("gen_chat_pm_send", { gain = 0.7, to_player = name }) + core.sound_play("gen_chat_question", { gain = 0.7, to_player = name }) + elseif message:find("DM from ") then + core.sound_play("gen_chat_pm_send", { gain = 0.7, to_player = name }) else - sbz_api.play_sfx("gen_chat_generic", { gain = 0.7, to_player = name }) + core.sound_play("gen_chat_generic", { gain = 0.7, to_player = name }) end end ) + ]] \ No newline at end of file diff --git a/mods/sbz_audio/mod.conf b/mods/sbz_audio/mod.conf new file mode 100644 index 00000000..6b4c402c --- /dev/null +++ b/mods/sbz_audio/mod.conf @@ -0,0 +1,2 @@ +name = sbz_audio +description = General game BGM/sound assets and audio API \ No newline at end of file diff --git a/mods/bespoke_sfx/sounds/foley/foley_ambiguous_solid_hit.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_ambiguous_solid_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_ambiguous_solid_hit.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_ambiguous_solid_hit.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_annoying_honk.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_annoying_honk.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_annoying_honk.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_annoying_honk.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_antimatter_dug.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_antimatter_dug.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_antimatter_dug.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_antimatter_dug.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_antimatter_hit.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_antimatter_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_antimatter_hit.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_antimatter_hit.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_antimatter_hum.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_antimatter_hum.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_antimatter_hum.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_antimatter_hum.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_antimatter_step.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_antimatter_step.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_antimatter_step.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_antimatter_step.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_bathroom_fan_loop.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_bathroom_fan_loop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_bathroom_fan_loop.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_bathroom_fan_loop.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_crackle_chomp_simple.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_crackle_chomp_simple.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_crackle_chomp_simple.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_crackle_chomp_simple.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_crackle_chomp_smooth.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_crackle_chomp_smooth.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_crackle_chomp_smooth.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_crackle_chomp_smooth.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_crackle_chomp_thin.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_crackle_chomp_thin.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_crackle_chomp_thin.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_crackle_chomp_thin.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_drill_bang_short.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_drill_bang_short.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_drill_bang_short.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_drill_bang_short.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_drill_motor_burp.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_drill_motor_burp.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_drill_motor_burp.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_drill_motor_burp.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_dud_click.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_dud_click.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_dud_click.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_dud_click.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_heavy_metal_ting.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_heavy_metal_ting.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_heavy_metal_ting.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_heavy_metal_ting.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_leaf_step.0.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.0.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_leaf_step.0.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.0.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_leaf_step.1.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.1.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_leaf_step.1.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.1.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_leaf_step.2.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.2.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_leaf_step.2.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.2.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_leaf_step.3.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.3.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_leaf_step.3.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.3.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_leaf_step.4.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.4.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_leaf_step.4.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.4.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_leaf_step.5.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.5.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_leaf_step.5.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_leaf_step.5.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_matter_hit_light.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_matter_hit_light.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_matter_hit_light.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_matter_hit_light.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_matter_hit_thunky.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_matter_hit_thunky.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_matter_hit_thunky.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_matter_hit_thunky.ogg diff --git a/mods/sbz_audio/sounds/cc0/foley/foley_page_turn.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_page_turn.ogg new file mode 100644 index 00000000..7bd3df97 Binary files /dev/null and b/mods/sbz_audio/sounds/cc0/foley/foley_page_turn.ogg differ diff --git a/mods/bespoke_sfx/sounds/foley/foley_rubber_thunk.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_rubber_thunk.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_rubber_thunk.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_rubber_thunk.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_slime_bark.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_slime_bark.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_slime_bark.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_slime_bark.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_slime_fart.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_slime_fart.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_slime_fart.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_slime_fart.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_slime_squish.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_slime_squish.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_slime_squish.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_slime_squish.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_snow_hit.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_snow_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_snow_hit.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_snow_hit.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_solid_step_soft.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_solid_step_soft.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_solid_step_soft.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_solid_step_soft.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_strange_step.0.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_strange_step.0.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_strange_step.0.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_strange_step.0.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_strange_step.1.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_strange_step.1.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_strange_step.1.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_strange_step.1.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_strange_step.2.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_strange_step.2.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_strange_step.2.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_strange_step.2.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_strange_step.3.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_strange_step.3.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_strange_step.3.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_strange_step.3.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_strange_step.4.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_strange_step.4.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_strange_step.4.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_strange_step.4.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_strange_step.5.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_strange_step.5.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_strange_step.5.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_strange_step.5.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_wood_thud_shallow.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_wood_thud_shallow.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_wood_thud_shallow.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_wood_thud_shallow.ogg diff --git a/mods/bespoke_sfx/sounds/foley/foley_wood_thud_thick.ogg b/mods/sbz_audio/sounds/cc0/foley/foley_wood_thud_thick.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/foley/foley_wood_thud_thick.ogg rename to mods/sbz_audio/sounds/cc0/foley/foley_wood_thud_thick.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_bong.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_bong.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_bong.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_bong.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_boop.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_boop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_boop.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_boop.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_chat_exclamation.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_chat_exclamation.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_chat_exclamation.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_chat_exclamation.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_chat_generic.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_chat_generic.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_chat_generic.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_chat_generic.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_chat_pm_send.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_chat_pm_send.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_chat_pm_send.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_chat_pm_send.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_chat_question.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_chat_question.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_chat_question.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_chat_question.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_colorium_emitter_denied.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_colorium_emitter_denied.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_colorium_emitter_denied.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_colorium_emitter_denied.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_doh_wew.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_doh_wew.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_doh_wew.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_doh_wew.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_doot_small.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_doot_small.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_doot_small.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_doot_small.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_emittrium_block_sprang.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_emittrium_block_sprang.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_emittrium_block_sprang.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_emittrium_block_sprang.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_error_fart.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_error_fart.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_error_fart.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_error_fart.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_explosion_with_reverb.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_explosion_with_reverb.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_explosion_with_reverb.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_explosion_with_reverb.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_fried_noise_explode.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_fried_noise_explode.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_fried_noise_explode.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_fried_noise_explode.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_full_container_thunk.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_full_container_thunk.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_full_container_thunk.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_full_container_thunk.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_ice_break.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_ice_break.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_ice_break.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_ice_break.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_ice_chip.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_ice_chip.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_ice_chip.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_ice_chip.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_laser_pew.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_laser_pew.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_laser_pew.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_laser_pew.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_matter_muffled_step.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_matter_muffled_step.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_matter_muffled_step.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_matter_muffled_step.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_metallic_hit.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_metallic_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_metallic_hit.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_metallic_hit.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_muffled_boop_hit.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_muffled_boop_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_muffled_boop_hit.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_muffled_boop_hit.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_muffled_boop_short.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_muffled_boop_short.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_muffled_boop_short.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_muffled_boop_short.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_noise_fuse.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_noise_fuse.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_noise_fuse.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_noise_fuse.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_noise_woosh_slight.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_noise_woosh_slight.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_noise_woosh_slight.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_noise_woosh_slight.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_pew_flange.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_pew_flange.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_pew_flange.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_pew_flange.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_pew_slow_fall.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_pew_slow_fall.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_pew_slow_fall.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_pew_slow_fall.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_pew_waveform.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_pew_waveform.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_pew_waveform.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_pew_waveform.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_sand_generic.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_sand_generic.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_sand_generic.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_sand_generic.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_sand_generic_hit.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_sand_generic_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_sand_generic_hit.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_sand_generic_hit.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_sand_smoothed.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_sand_smoothed.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_sand_smoothed.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_sand_smoothed.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_simple_charged_field_dug.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_simple_charged_field_dug.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_simple_charged_field_dug.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_simple_charged_field_dug.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_simple_charged_field_placement_zap.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_simple_charged_field_placement_zap.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_simple_charged_field_placement_zap.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_simple_charged_field_placement_zap.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_simple_tap.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_simple_tap.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_simple_tap.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_simple_tap.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_simple_tap_low.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_simple_tap_low.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_simple_tap_low.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_simple_tap_low.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_sine_wing_flap.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_sine_wing_flap.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_sine_wing_flap.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_sine_wing_flap.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_slide_brippy_in.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_slide_brippy_in.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_slide_brippy_in.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_slide_brippy_in.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_slide_brippy_out.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_slide_brippy_out.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_slide_brippy_out.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_slide_brippy_out.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.0.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.0.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.0.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.0.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.1.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.1.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.1.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.1.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.2.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.2.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.2.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.2.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.3.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.3.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_snow_crunch_abrupt.3.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_abrupt.3.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_snow_crunch_slow.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_slow.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_snow_crunch_slow.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_snow_crunch_slow.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_soft_glass_bump.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_soft_glass_bump.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_soft_glass_bump.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_soft_glass_bump.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_strong_cycling_hum.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_strong_cycling_hum.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_strong_cycling_hum.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_strong_cycling_hum.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_subtle_fart.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_subtle_fart.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_subtle_fart.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_subtle_fart.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_teleport_warp_woosh.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_teleport_warp_woosh.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_teleport_warp_woosh.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_teleport_warp_woosh.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_water_drink.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_water_drink.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_water_drink.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_water_drink.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_water_step.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_water_step.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_water_step.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_water_step.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_wump_wood.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_wump_wood.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_wump_wood.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_wump_wood.ogg diff --git a/mods/bespoke_sfx/sounds/gen/gen_zap_short.ogg b/mods/sbz_audio/sounds/cc0/gen/gen_zap_short.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/gen/gen_zap_short.ogg rename to mods/sbz_audio/sounds/cc0/gen/gen_zap_short.ogg diff --git a/mods/bespoke_sfx/sounds/mix/default_assignments/default_dig_matter.ogg b/mods/sbz_audio/sounds/cc0/mix/default_assignments/default_dig_matter.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/default_assignments/default_dig_matter.ogg rename to mods/sbz_audio/sounds/cc0/mix/default_assignments/default_dig_matter.ogg diff --git a/mods/bespoke_sfx/sounds/mix/default_assignments/default_eat_food.ogg b/mods/sbz_audio/sounds/cc0/mix/default_assignments/default_eat_food.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/default_assignments/default_eat_food.ogg rename to mods/sbz_audio/sounds/cc0/mix/default_assignments/default_eat_food.ogg diff --git a/mods/bespoke_sfx/sounds/mix/default_assignments/player_damage.ogg b/mods/sbz_audio/sounds/cc0/mix/default_assignments/player_damage.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/default_assignments/player_damage.ogg rename to mods/sbz_audio/sounds/cc0/mix/default_assignments/player_damage.ogg diff --git a/mods/bespoke_sfx/sounds/mix/default_assignments/player_falling_damage.ogg b/mods/sbz_audio/sounds/cc0/mix/default_assignments/player_falling_damage.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/default_assignments/player_falling_damage.ogg rename to mods/sbz_audio/sounds/cc0/mix/default_assignments/player_falling_damage.ogg diff --git a/mods/bespoke_sfx/sounds/mix/default_assignments/player_jump.ogg b/mods/sbz_audio/sounds/cc0/mix/default_assignments/player_jump.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/default_assignments/player_jump.ogg rename to mods/sbz_audio/sounds/cc0/mix/default_assignments/player_jump.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_active_hum_loop.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_active_hum_loop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_active_hum_loop.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_active_hum_loop.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_afi_transfer.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_afi_transfer.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_afi_transfer.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_afi_transfer.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_alloy_furnace_soft.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_alloy_furnace_soft.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_alloy_furnace_soft.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_alloy_furnace_soft.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_ambiguous_hard_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_ambiguous_hard_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_ambiguous_hard_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_ambiguous_hard_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_ambiguous_machine_mild.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_ambiguous_machine_mild.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_ambiguous_machine_mild.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_ambiguous_machine_mild.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_choppy_rubber_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_choppy_rubber_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_choppy_rubber_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_choppy_rubber_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_choppy_rubber_place.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_choppy_rubber_place.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_choppy_rubber_place.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_choppy_rubber_place.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_choppy_rubber_step.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_choppy_rubber_step.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_choppy_rubber_step.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_choppy_rubber_step.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_compressor_twice.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_compressor_twice.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_compressor_twice.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_compressor_twice.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_crunch_zap_short.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_crunch_zap_short.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_crunch_zap_short.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_crunch_zap_short.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_crusher_loop_extra.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_crusher_loop_extra.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_crusher_loop_extra.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_crusher_loop_extra.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_crystallization_effect.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_crystallization_effect.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_crystallization_effect.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_crystallization_effect.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_decay_crackle_loop.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_decay_crackle_loop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_decay_crackle_loop.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_decay_crackle_loop.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_dirt_dig.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_dirt_dig.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_dirt_dig.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_dirt_dig.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_dirt_dug.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_dirt_dug.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_dirt_dug.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_dirt_dug.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_dirt_step.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_dirt_step.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_dirt_step.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_dirt_step.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_eat_fruit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_eat_fruit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_eat_fruit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_eat_fruit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_eat_mushroom.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_eat_mushroom.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_eat_mushroom.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_eat_mushroom.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_explode_puffy_metallic.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_explode_puffy_metallic.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_explode_puffy_metallic.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_explode_puffy_metallic.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_factory_metal_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_factory_metal_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_factory_metal_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_factory_metal_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_furnace_slight_crackle.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_furnace_slight_crackle.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_furnace_slight_crackle.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_furnace_slight_crackle.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_gassy_quack_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_gassy_quack_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_gassy_quack_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_gassy_quack_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_hollow_metal_clunk.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_hollow_metal_clunk.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_hollow_metal_clunk.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_hollow_metal_clunk.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_hum_click_loop.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_hum_click_loop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_hum_click_loop.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_hum_click_loop.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_jetpack_loop.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_jetpack_loop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_jetpack_loop.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_jetpack_loop.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_machine_dug.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_machine_dug.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_machine_dug.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_machine_dug.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_machine_hit_heavy.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_heavy.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_machine_hit_heavy.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_heavy.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_machine_hit_light.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_light.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_machine_hit_light.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_light.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_machine_hit_soft.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_soft.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_machine_hit_soft.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_soft.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_machine_hit_thump.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_thump.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_machine_hit_thump.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_machine_hit_thump.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_machine_spin_muffled.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_machine_spin_muffled.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_machine_spin_muffled.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_machine_spin_muffled.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_matter_dug.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_matter_dug.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_matter_dug.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_matter_dug.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_matter_hit_weird.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_matter_hit_weird.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_matter_hit_weird.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_matter_hit_weird.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_metal_cabinet_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_metal_cabinet_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_metal_cabinet_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_metal_cabinet_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_metal_cabinet_place.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_metal_cabinet_place.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_metal_cabinet_place.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_metal_cabinet_place.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_metal_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_metal_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_metal_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_metal_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_notwater_step.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_notwater_step.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_notwater_step.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_notwater_step.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_pack_it_in.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_pack_it_in.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_pack_it_in.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_pack_it_in.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_rubber_hit_noisy_gassy.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_rubber_hit_noisy_gassy.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_rubber_hit_noisy_gassy.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_rubber_hit_noisy_gassy.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_rubber_noise_hit_short.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_rubber_noise_hit_short.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_rubber_noise_hit_short.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_rubber_noise_hit_short.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_sad_crackly_poof.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_sad_crackly_poof.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_sad_crackly_poof.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_sad_crackly_poof.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_short_fwip.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_short_fwip.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_short_fwip.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_short_fwip.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_small_poof.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_small_poof.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_small_poof.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_small_poof.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_soft_harsh_explosion.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_soft_harsh_explosion.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_soft_harsh_explosion.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_soft_harsh_explosion.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_thunk_slightly_metallic.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_thunk_slightly_metallic.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_thunk_slightly_metallic.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_thunk_slightly_metallic.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_tool_hit_wump.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_tool_hit_wump.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_tool_hit_wump.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_tool_hit_wump.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_water_place.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_water_place.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_water_place.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_water_place.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_weird_hit.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_weird_hit.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_weird_hit.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_weird_hit.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_wood_chop.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_wood_chop.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_wood_chop.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_wood_chop.ogg diff --git a/mods/bespoke_sfx/sounds/mix/mix_wood_step_thunk.ogg b/mods/sbz_audio/sounds/cc0/mix/mix_wood_step_thunk.ogg similarity index 100% rename from mods/bespoke_sfx/sounds/mix/mix_wood_step_thunk.ogg rename to mods/sbz_audio/sounds/cc0/mix/mix_wood_step_thunk.ogg diff --git a/mods/sbz_resources/sounds/antistep.ogg b/mods/sbz_audio/sounds/legacy/antistep.ogg similarity index 100% rename from mods/sbz_resources/sounds/antistep.ogg rename to mods/sbz_audio/sounds/legacy/antistep.ogg diff --git a/mods/sbz_base/sounds/bgm1.ogg b/mods/sbz_audio/sounds/legacy/bgm1.ogg similarity index 100% rename from mods/sbz_base/sounds/bgm1.ogg rename to mods/sbz_audio/sounds/legacy/bgm1.ogg diff --git a/mods/sbz_base/sounds/bgm2.ogg b/mods/sbz_audio/sounds/legacy/bgm2.ogg similarity index 100% rename from mods/sbz_base/sounds/bgm2.ogg rename to mods/sbz_audio/sounds/legacy/bgm2.ogg diff --git a/mods/sbz_base/sounds/bgm3.ogg b/mods/sbz_audio/sounds/legacy/bgm3.ogg similarity index 100% rename from mods/sbz_base/sounds/bgm3.ogg rename to mods/sbz_audio/sounds/legacy/bgm3.ogg diff --git a/mods/sbz_base/sounds/bgm4.ogg b/mods/sbz_audio/sounds/legacy/bgm4.ogg similarity index 100% rename from mods/sbz_base/sounds/bgm4.ogg rename to mods/sbz_audio/sounds/legacy/bgm4.ogg diff --git a/mods/sbz_base/sounds/bgm5.ogg b/mods/sbz_audio/sounds/legacy/bgm5.ogg similarity index 100% rename from mods/sbz_base/sounds/bgm5.ogg rename to mods/sbz_audio/sounds/legacy/bgm5.ogg diff --git a/mods/sbz_base/sounds/bgm6.ogg b/mods/sbz_audio/sounds/legacy/bgm6.ogg similarity index 100% rename from mods/sbz_base/sounds/bgm6.ogg rename to mods/sbz_audio/sounds/legacy/bgm6.ogg diff --git a/mods/sbz_resources/sounds/block_annihilated.ogg b/mods/sbz_audio/sounds/legacy/block_annihilated.ogg similarity index 100% rename from mods/sbz_resources/sounds/block_annihilated.ogg rename to mods/sbz_audio/sounds/legacy/block_annihilated.ogg diff --git a/mods/sbz_resources/sounds/charged_field_shutdown.ogg b/mods/sbz_audio/sounds/legacy/charged_field_shutdown.ogg similarity index 100% rename from mods/sbz_resources/sounds/charged_field_shutdown.ogg rename to mods/sbz_audio/sounds/legacy/charged_field_shutdown.ogg diff --git a/mods/sbz_resources/sounds/decay.ogg b/mods/sbz_audio/sounds/legacy/decay.ogg similarity index 100% rename from mods/sbz_resources/sounds/decay.ogg rename to mods/sbz_audio/sounds/legacy/decay.ogg diff --git a/mods/sbz_resources/sounds/drill_dig.ogg b/mods/sbz_audio/sounds/legacy/drill_dig.ogg similarity index 100% rename from mods/sbz_resources/sounds/drill_dig.ogg rename to mods/sbz_audio/sounds/legacy/drill_dig.ogg diff --git a/mods/sbz_resources/sounds/firework_explode.ogg b/mods/sbz_audio/sounds/legacy/firework_explode.ogg similarity index 100% rename from mods/sbz_resources/sounds/firework_explode.ogg rename to mods/sbz_audio/sounds/legacy/firework_explode.ogg diff --git a/mods/sbz_resources/sounds/firework_launch.ogg b/mods/sbz_audio/sounds/legacy/firework_launch.ogg similarity index 100% rename from mods/sbz_resources/sounds/firework_launch.ogg rename to mods/sbz_audio/sounds/legacy/firework_launch.ogg diff --git a/mods/sbz_resources/sounds/machine_build.ogg b/mods/sbz_audio/sounds/legacy/machine_build.ogg similarity index 100% rename from mods/sbz_resources/sounds/machine_build.ogg rename to mods/sbz_audio/sounds/legacy/machine_build.ogg diff --git a/mods/sbz_resources/sounds/machine_open.ogg b/mods/sbz_audio/sounds/legacy/machine_open.ogg similarity index 100% rename from mods/sbz_resources/sounds/machine_open.ogg rename to mods/sbz_audio/sounds/legacy/machine_open.ogg diff --git a/mods/sbz_base/sounds/power_shutdown.ogg b/mods/sbz_audio/sounds/legacy/power_shutdown.ogg similarity index 100% rename from mods/sbz_base/sounds/power_shutdown.ogg rename to mods/sbz_audio/sounds/legacy/power_shutdown.ogg diff --git a/mods/sbz_resources/sounds/punch_core.ogg b/mods/sbz_audio/sounds/legacy/punch_core.ogg similarity index 100% rename from mods/sbz_resources/sounds/punch_core.ogg rename to mods/sbz_audio/sounds/legacy/punch_core.ogg diff --git a/mods/sbz_resources/sounds/step_DISABLED.ogg b/mods/sbz_audio/sounds/legacy/step_DISABLED.ogg similarity index 100% rename from mods/sbz_resources/sounds/step_DISABLED.ogg rename to mods/sbz_audio/sounds/legacy/step_DISABLED.ogg diff --git a/mods/sbz_resources/sounds/tnt_explode.ogg b/mods/sbz_audio/sounds/legacy/tnt_explode.ogg similarity index 100% rename from mods/sbz_resources/sounds/tnt_explode.ogg rename to mods/sbz_audio/sounds/legacy/tnt_explode.ogg diff --git a/mods/sbz_resources/sounds/tnt_ignite.ogg b/mods/sbz_audio/sounds/legacy/tnt_ignite.ogg similarity index 100% rename from mods/sbz_resources/sounds/tnt_ignite.ogg rename to mods/sbz_audio/sounds/legacy/tnt_ignite.ogg diff --git a/mods/sbz_base/COPYRIGHT.md b/mods/sbz_base/COPYRIGHT.md index c121fae3..56c67a34 100644 --- a/mods/sbz_base/COPYRIGHT.md +++ b/mods/sbz_base/COPYRIGHT.md @@ -43,17 +43,3 @@ along with this program. If not, see . `textures/theme_tilde_*.png` simple boxy UI theme textures by TheEt1234. `textures/wieldhand.png` fully transparent texture by ChefZander. - -## Music - -`sounds/bgm1.ogg` is "Cave Theme" by Brandon Morris. CC0. - -`sounds/bgm2.ogg` is "Background space track" by yd. CC0. - -`sounds/bgm3.ogg` is "Bleeding Out" by Brandon Morris. CC0. - -`sounds/bgm4.ogg` is "Factory Ambiance" by yd. CC0. - -`sounds/bgm5.ogg` is "Galactic Temple" by yd. CC0. - -`sounds/bgm6.ogg` is "A Choice With Many Regrets" Copyright (C) 2025 Tsorthan Grove. CC BY 4.0. diff --git a/mods/sbz_base/init.lua b/mods/sbz_base/init.lua index da554ee9..e8dcd33a 100644 --- a/mods/sbz_base/init.lua +++ b/mods/sbz_base/init.lua @@ -505,8 +505,6 @@ function table.override(x, y) return x end -dofile(MP .. '/sound_api.lua') - sbz_api.filter_node_neighbors = function(start_pos, radius, filtering_function, break_after_one_result) local returning = {} local pos = vector.new() diff --git a/mods/sbz_base/mod.conf b/mods/sbz_base/mod.conf index a26082c7..b7e39dbc 100644 --- a/mods/sbz_base/mod.conf +++ b/mods/sbz_base/mod.conf @@ -1,3 +1,3 @@ name = sbz_base -depends = areas, player_monoids +depends = areas, player_monoids, sbz_audio optional_depends = dbg \ No newline at end of file diff --git a/mods/sbz_bio/habitat.lua b/mods/sbz_bio/habitat.lua index e0a34999..c73a9825 100644 --- a/mods/sbz_bio/habitat.lua +++ b/mods/sbz_bio/habitat.lua @@ -203,7 +203,7 @@ end sbz_api.register_machine('sbz_bio:habitat_regulator', { description = 'Habitat Regulator', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { 'habitat_regulator.png' }, groups = { matter = 1, ui_bio = 1 }, control_action_raw = true, @@ -229,7 +229,7 @@ sbz_api.register_machine('sbz_bio:habitat_regulator', { core.register_node('sbz_bio:co2_compactor', { description = 'CO2 Compactor', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Stores 30 CO₂. Habitat regulator doesn't consider it a wall, but it can be passed through", groups = { matter = 2, explody = 8 }, walkable = false, diff --git a/mods/sbz_bio/misc.lua b/mods/sbz_bio/misc.lua index 6bd85e65..c97314b4 100644 --- a/mods/sbz_bio/misc.lua +++ b/mods/sbz_bio/misc.lua @@ -3,7 +3,7 @@ core.register_node("sbz_bio:burner", sbz_api.add_tube_support({ tiles = { "burner.png" }, groups = { matter = 1, co2_source = 1 }, paramtype = "light", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), light_source = 5, on_construct = function(pos) local meta = core.get_meta(pos) @@ -95,7 +95,7 @@ end sbz_api.register_stateful_machine("sbz_bio:neutron_emitter", { description = "Basic Neutron Emitter", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "Emits radiation, forces plants mutate.", info_power_consume = 10, autostate = true, diff --git a/mods/sbz_bio/soil.lua b/mods/sbz_bio/soil.lua index 8c7e6d5e..3d942663 100644 --- a/mods/sbz_bio/soil.lua +++ b/mods/sbz_bio/soil.lua @@ -12,7 +12,7 @@ core.register_node("sbz_bio:dirt", unifieddyes.def { charged = 1, }, paramtype = "light", -- if you leave this out, fertilizer wont work - sounds = sbz_api.sounds.dirt(), + sounds = sbz_audio.dirt(), }) do -- Dirt recipe scope @@ -59,7 +59,7 @@ core.register_node("sbz_bio:fertilized_dirt", unifieddyes.def { fertilizer_no_sprout = 1, }, paramtype = "light", - sounds = sbz_api.sounds.dirt(), + sounds = sbz_audio.dirt(), info_extra = { "Plants grow 2x faster than on dirt, on this soil.", "Fertilizer can't sprout plants on this soil." @@ -98,7 +98,7 @@ core.register_node("sbz_bio:dirt_with_grass", unifieddyes.def { charged = 1 }, paramtype = "light", - sounds = sbz_api.sounds.dirt(), + sounds = sbz_audio.dirt(), info_extra = "Spreads, same growth speed as dirt.", on_burn = function(pos) if is_air(vector.add(pos, vector.new(0, 1, 0))) then @@ -118,7 +118,7 @@ sbz_api.register_stateful_machine("sbz_bio:electric_soil", unifieddyes.def { soil = 0, pipe_connects = 1, }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, info_power_consume = 40, info_extra = "When powered, it's 5 times more powerful than regular dirt.", diff --git a/mods/sbz_bio/trees.lua b/mods/sbz_bio/trees.lua index 92c5617f..4dae2879 100644 --- a/mods/sbz_bio/trees.lua +++ b/mods/sbz_bio/trees.lua @@ -233,7 +233,7 @@ sbz_api.register_trunk( 'colorium_tree_side.png', }, leaves = 'sbz_bio:colorium_leaves', - sounds = sbz_api.sounds.wood_solid(), + sounds = sbz_audio.wood_solid(), } ) @@ -286,7 +286,7 @@ sbz_api.register_leaves( }, }, }, - sounds = sbz_api.sounds.leaves(), + sounds = sbz_audio.leaves(), } ) @@ -392,7 +392,7 @@ core.register_node( tiles = { 'colorium_planks.png' }, paramtype2 = 'color', groups = { matter = 3, oddly_breakable_by_hand = 2, burn = 1, transparent = 1, explody = 10 }, - sounds = sbz_api.sounds.wood_planks(), + sounds = sbz_audio.wood_planks(), } ) @@ -436,7 +436,7 @@ end core.register_node('sbz_bio:colorium_tree_core', { description = 'Colorium Tree Core', info_extra = "Contains the tree's dna.", - sounds = sbz_api.sounds.wood_solid(), + sounds = sbz_audio.wood_solid(), groups = { matter = 3, oddly_breakable_by_hand = 3, diff --git a/mods/sbz_chem/alloy_furnace.lua b/mods/sbz_chem/alloy_furnace.lua index 0d8f7b70..9a510c17 100644 --- a/mods/sbz_chem/alloy_furnace.lua +++ b/mods/sbz_chem/alloy_furnace.lua @@ -32,7 +32,7 @@ sbz_api.register_stateful_machine('sbz_chem:simple_alloy_furnace', { 'simple_alloy_furnace.png^[verticalframe:13:1', }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = 'facedir', on_construct = function(pos) @@ -77,7 +77,7 @@ listring[current_player;main] else if inv:room_for_item('output', out) then meta:set_string('infotext', 'Alloying') - sbz_api.play_sfx('mix_alloy_furnace_soft', { pos = pos, max_hear_distance = 6.0 }) + core.sound_play('mix_alloy_furnace_soft', { pos = pos, max_hear_distance = 6.0 }) inv:add_item('output', out) for _, item in pairs(decremented) do diff --git a/mods/sbz_chem/crusher.lua b/mods/sbz_chem/crusher.lua index c47b54d4..5aece583 100644 --- a/mods/sbz_chem/crusher.lua +++ b/mods/sbz_chem/crusher.lua @@ -65,7 +65,7 @@ sbz_api.register_stateful_machine('sbz_chem:crusher', { 'crusher_side.png', }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = 'facedir', on_construct = function(pos) @@ -106,7 +106,7 @@ listring[current_player;main]listring[context;input]listring[current_player;main end meta:set_string('infotext', 'Crushing...') - sbz_api.play_sfx({ name = 'mix_crusher_loop_extra' }, { pos = pos, max_hear_distance = 8, gain = 0.8, fade = 4.0 }) + core.sound_play({ name = 'mix_crusher_loop_extra' }, { pos = pos, max_hear_distance = 8, gain = 0.8, fade = 4.0 }) -- if itemname == "sbz_resources:sand" and inv:contains_item("output", "sbz_chem:water_fluid_cell") then -- inv:remove_item("input", itemname) diff --git a/mods/sbz_chem/crystal_grower.lua b/mods/sbz_chem/crystal_grower.lua index 26982c8c..e5c27b73 100644 --- a/mods/sbz_chem/crystal_grower.lua +++ b/mods/sbz_chem/crystal_grower.lua @@ -67,7 +67,7 @@ end sbz_api.register_stateful_machine("sbz_chem:crystal_grower", { description = "Crystal Grower", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_power_consume = 120, tiles = { "crystal_grower_side.png", diff --git a/mods/sbz_chem/engraver.lua b/mods/sbz_chem/engraver.lua index 92ad27b3..691d6bea 100644 --- a/mods/sbz_chem/engraver.lua +++ b/mods/sbz_chem/engraver.lua @@ -29,7 +29,7 @@ sbz_api.register_stateful_machine("sbz_chem:engraver", { "engraver.png^[verticalframe:24:1", }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "4dir", allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_put = allow_metadata_inventory_put, @@ -84,7 +84,7 @@ listring[context;dst] new_src:set_count(new_src:get_count() - decremented) inv:set_stack("src", index, new_src) inv:add_item("dst", out) - sbz_api.play_sfx({ name = "simple_alloy_furnace_running", gain = 0.6 }, { pos = pos }) + core.sound_play({ name = "simple_alloy_furnace_running", gain = 0.6 }, { pos = pos }) return power_needed end end, diff --git a/mods/sbz_chem/melter_cooler.lua b/mods/sbz_chem/melter_cooler.lua index a26c35dc..29141245 100644 --- a/mods/sbz_chem/melter_cooler.lua +++ b/mods/sbz_chem/melter_cooler.lua @@ -62,7 +62,7 @@ sbz_api.register_stateful_machine("sbz_chem:melter", { fluid_pipe_stores = 1, ui_fluid = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "4dir", input_inv = "src", @@ -129,7 +129,7 @@ listring[] meta:set_string("liquid_inv", core.serialize(lqinv)) -- EWWW: TODO: re-work the entire liquid inventory system to not use this stupid serialize crap meta:set_string("infotext", "Melting - Inside: " .. slot.count .. " " .. slot.name) - sbz_api.play_sfx({ name = "simple_alloy_furnace_running", gain = 0.6 }, { pos = pos }) + core.sound_play({ name = "simple_alloy_furnace_running", gain = 0.6 }, { pos = pos }) return power_needed end end, @@ -162,7 +162,7 @@ sbz_api.register_stateful_machine("sbz_chem:cooler", { fluid_pipe_stores = 1, ui_fluid = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "4dir", output_inv = "dst", @@ -227,7 +227,7 @@ listring[] meta:set_string("liquid_inv", core.serialize(lqinv)) -- EWWW: TODO: re-work the entire liquid inventory system to not use this stupid serialize crap meta:set_string("infotext", "Cooling - Inside: " .. slot.count .. " " .. slot.name) - sbz_api.play_sfx({ name = "simple_alloy_furnace_running", gain = 0.6 }, { pos = pos }) + core.sound_play({ name = "simple_alloy_furnace_running", gain = 0.6 }, { pos = pos }) return power_needed end end, diff --git a/mods/sbz_chem/reactor.lua b/mods/sbz_chem/reactor.lua index ca4988e4..53c70ced 100644 --- a/mods/sbz_chem/reactor.lua +++ b/mods/sbz_chem/reactor.lua @@ -74,7 +74,7 @@ sbz_api.register_stateful_generator("sbz_chem:nuclear_reactor", { "reactor_side.png", }, groups = { matter = 1, fluid_pipe_connects = 1, fluid_pipe_stores = 1, ui_fluid = 1, explody = 2 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), input_inv = "rods", output_inv = "rods", on_construct = function(pos) @@ -247,7 +247,7 @@ sbz_api.register_stateful_machine("sbz_chem:xray", { "xray_side.png", }, groups = { matter = 1, }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, action = function(pos, _, meta, supply, demand) if supply < demand + xray_demand then diff --git a/mods/sbz_decor/cnc.lua b/mods/sbz_decor/cnc.lua index 33b32d4a..441f2aac 100644 --- a/mods/sbz_decor/cnc.lua +++ b/mods/sbz_decor/cnc.lua @@ -46,7 +46,7 @@ core.register_node( info = 'Use it to cut stairs/slabs out of nodes.', tiles = { 'cnc_top.png', 'cnc_top.png', 'cnc_side.png' }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), input_inv = 'src', output_inv = 'choices', on_construct = function(pos) diff --git a/mods/sbz_decor/init.lua b/mods/sbz_decor/init.lua index 7e3eb5dd..4a41e53b 100644 --- a/mods/sbz_decor/init.lua +++ b/mods/sbz_decor/init.lua @@ -154,7 +154,7 @@ core.register_node( groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) stairs.register 'sbz_decor:factory_warning' @@ -172,7 +172,7 @@ core.register_node('sbz_decor:mystery_terrarium', { groups = { matter = 1, cracky = 3, explody = 3 }, sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_craft { output = 'sbz_decor:mystery_terrarium', @@ -197,7 +197,7 @@ core.register_node( groups = { matter = 1, cracky = 3, explody = 3 }, light_source = 10, sunlight_propagates = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) @@ -242,7 +242,7 @@ core.register_node( 'sbz_decor:ladder', unifieddyes.def { description = 'Matter Ladder', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = 'nodebox', node_box = { -- nodebox inspired by that one 3d ladders mod, but i made this myself with nodebox editor type = 'fixed', @@ -286,7 +286,7 @@ core.register_node( 'sbz_decor:antimatter_ladder', unifieddyes.def { description = 'Antimatter Ladder', - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), drawtype = 'nodebox', node_box = { -- nodebox inspired by that one 3d ladders mod, but i made this myself with nodebox editor type = 'fixed', diff --git a/mods/sbz_decor/signs.lua b/mods/sbz_decor/signs.lua index 8397101d..144dfa61 100644 --- a/mods/sbz_decor/signs.lua +++ b/mods/sbz_decor/signs.lua @@ -1,6 +1,6 @@ signs_lib.register_sign("sbz_decor:antimatter_sign", { description = "Antimatter Sign", - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), inventory_image = "[combine:32x32:0,0=antimatter_sign.png^[makealpha:0,0,0", tiles = { "antimatter_sign.png", @@ -22,7 +22,7 @@ signs_lib.register_sign("sbz_decor:antimatter_sign", { signs_lib.register_sign("sbz_decor:matter_sign", { description = "Matter Sign", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), inventory_image = "[combine:32x32:0,0=antimatter_sign.png^[makealpha:0,0,0^[invert:rgb", tiles = { "antimatter_sign.png^[invert:rgb", diff --git a/mods/sbz_instatube/init.lua b/mods/sbz_instatube/init.lua index 6694ab65..9db36651 100644 --- a/mods/sbz_instatube/init.lua +++ b/mods/sbz_instatube/init.lua @@ -306,7 +306,7 @@ core.register_node( 'sbz_instatube:instant_tube', unifieddyes.def { description = 'Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'sbz_instatube:instant_tube', 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, info_extra = { 'Deliver items in record time! (Also less lag and less weird behavior!)' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -353,7 +353,7 @@ core.register_node( 'sbz_instatube:one_way_instatube', unifieddyes.def { description = 'One Way Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { 'one_way_instatube.png^[transformFX', 'one_way_instatube.png^[transformFX', @@ -513,7 +513,7 @@ core.register_node( 'sbz_instatube:high_priority_instant_tube', unifieddyes.def { description = 'High Priority Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, paramtype2 = 'color', @@ -559,7 +559,7 @@ core.register_node( 'sbz_instatube:low_priority_instant_tube', unifieddyes.def { description = 'Low Priority Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = "Can't be used with normal tubes, but with instatubes it works fine.", connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -621,7 +621,7 @@ core.register_node( 'sbz_instatube:teleport_instant_tube', unifieddyes.def { description = 'Teleport Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = { 'Links to all teleport tubes in a channel at once.' }, connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -702,7 +702,7 @@ core.register_node( 'sbz_instatube:randomized_input_instant_tube', unifieddyes.def { description = 'Randomized Input Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, paramtype2 = 'color', @@ -747,7 +747,7 @@ core.register_node( 'sbz_instatube:cycling_input_instant_tube', unifieddyes.def { description = 'Cycling Input Instatube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, info_extra = { '' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -910,7 +910,7 @@ end) core.register_craftitem('sbz_instatube:dbg_tool', { description = 'Instatube Debug Tool', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = 'Shows all machines connected to instatube', inventory_image = 'instatube_debug_tool.png', stack_max = 1, diff --git a/mods/sbz_logic/init.lua b/mods/sbz_logic/init.lua index c1188633..1fda4342 100644 --- a/mods/sbz_logic/init.lua +++ b/mods/sbz_logic/init.lua @@ -25,7 +25,7 @@ dofile(MP .. "/code_disks.lua") sbz_api.register_stateful_machine("sbz_logic:lua_controller", { tiles = { "luacontroller_top.png", "luacontroller_top.png", "luacontroller.png" }, description = "Lua Controller", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = { "The most complex block in this game.", "No like actually... it might be", diff --git a/mods/sbz_logic/knowledge.lua b/mods/sbz_logic/knowledge.lua index 677d6036..d90cf156 100644 --- a/mods/sbz_logic/knowledge.lua +++ b/mods/sbz_logic/knowledge.lua @@ -95,7 +95,7 @@ end core.register_node("sbz_logic:knowledge_station", { description = "Knowledge Station", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Explains logic.", on_construct = function(pos) local meta = core.get_meta(pos) @@ -104,7 +104,7 @@ core.register_node("sbz_logic:knowledge_station", { on_receive_fields = on_receive_fields, groups = { matter = 1, ui_logic = 1 }, tiles = { "knowledge_station.png" }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local player_name = clicker:get_player_name() core.sound_play("questbook", { diff --git a/mods/sbz_logic/mod.conf b/mods/sbz_logic/mod.conf index f1a151ae..22f186de 100644 --- a/mods/sbz_logic/mod.conf +++ b/mods/sbz_logic/mod.conf @@ -1,3 +1,3 @@ -depends = sbz_power, libox, vizlib, sbz_meteorites name = sbz_logic +depends = sbz_power, libox, vizlib, sbz_meteorites optional_depends = sbz_logic_autohook \ No newline at end of file diff --git a/mods/sbz_logic_devices/builder.lua b/mods/sbz_logic_devices/builder.lua index b1a9a189..2cd3a373 100644 --- a/mods/sbz_logic_devices/builder.lua +++ b/mods/sbz_logic_devices/builder.lua @@ -161,7 +161,7 @@ sbz_api.register_machine("sbz_logic_devices:builder", { "lua_builder.png" }, groups = { matter = 1, ui_logic = 1, sbz_machine_subticking = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_construct = function(pos) local meta = core.get_meta(pos) meta:get_inventory():set_size("main", 32) diff --git a/mods/sbz_logic_devices/button.lua b/mods/sbz_logic_devices/button.lua index 03d2d8ab..b09fa51b 100644 --- a/mods/sbz_logic_devices/button.lua +++ b/mods/sbz_logic_devices/button.lua @@ -83,7 +83,7 @@ sbz_api.register_stateful("sbz_logic_devices:toggle", { { -0.375, -0.375, 0.3125, 0.375, 0.375, 0.5 }, -- NodeBox1 } }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "facedir", paramtype = "light", light_source = 10, diff --git a/mods/sbz_logic_devices/formspec_screen.lua b/mods/sbz_logic_devices/formspec_screen.lua index efaad11d..fc456ae5 100644 --- a/mods/sbz_logic_devices/formspec_screen.lua +++ b/mods/sbz_logic_devices/formspec_screen.lua @@ -18,7 +18,7 @@ core.register_node("sbz_logic_devices:formspec_screen", { 0.5, -3 / 16, 0.5 }, }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "wallmounted", paramtype = "light", light_source = 5, diff --git a/mods/sbz_logic_devices/gpu.lua b/mods/sbz_logic_devices/gpu.lua index 523e93bb..c6a45f01 100644 --- a/mods/sbz_logic_devices/gpu.lua +++ b/mods/sbz_logic_devices/gpu.lua @@ -790,7 +790,7 @@ core.register_node("sbz_logic_devices:gpu", { "gpu_side.png", "gpu_side.png" }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) if type(msg) ~= "table" then return end diff --git a/mods/sbz_logic_devices/hologram_projector.lua b/mods/sbz_logic_devices/hologram_projector.lua index c5f0b6e0..a670f267 100644 --- a/mods/sbz_logic_devices/hologram_projector.lua +++ b/mods/sbz_logic_devices/hologram_projector.lua @@ -543,7 +543,7 @@ core.register_node("sbz_logic_devices:hologram_projector", { description = "Hologram Projector", info_extra = "Inspired by the holoemitter mod.", groups = { ui_logic = 1, matter = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_logic_send = exec_command, tiles = { "hologram_projector.png" }, on_punch = function(pos, _, player) diff --git a/mods/sbz_logic_devices/mscreen.lua b/mods/sbz_logic_devices/mscreen.lua index a866a0b8..66ff8915 100644 --- a/mods/sbz_logic_devices/mscreen.lua +++ b/mods/sbz_logic_devices/mscreen.lua @@ -197,7 +197,7 @@ core.register_node("sbz_logic_devices:matrix_screen", { return ret end, groups = { matter = 3, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) local meta = core.get_meta(pos) if msg == "subscribe" then diff --git a/mods/sbz_logic_devices/nic.lua b/mods/sbz_logic_devices/nic.lua index 59a755f6..35e1163c 100644 --- a/mods/sbz_logic_devices/nic.lua +++ b/mods/sbz_logic_devices/nic.lua @@ -16,7 +16,7 @@ core.register_node("sbz_logic_devices:nic", { info_extra = " Priv Locked: " .. (is_priv_locked and "yes" or "no"), groups = { cracky = 3, matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), is_ground_content = false, tiles = { "nic_top.png", diff --git a/mods/sbz_logic_devices/nodeDB.lua b/mods/sbz_logic_devices/nodeDB.lua index f5925943..5e1b164c 100644 --- a/mods/sbz_logic_devices/nodeDB.lua +++ b/mods/sbz_logic_devices/nodeDB.lua @@ -8,7 +8,7 @@ core.register_node("sbz_logic_devices:node_db", { description = "Node DB", info_extra = { "Similar to the craftDB, use it to lookup node definitions and recipes" }, groups = { matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "gpu_bottom.png", "gpu_bottom.png", diff --git a/mods/sbz_logic_devices/noteblock.lua b/mods/sbz_logic_devices/noteblock.lua index 27d173c8..d130b0d7 100644 --- a/mods/sbz_logic_devices/noteblock.lua +++ b/mods/sbz_logic_devices/noteblock.lua @@ -15,7 +15,7 @@ core.register_node("sbz_logic_devices:noteblock", { }, paramtype2 = "4dir", groups = { matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) if type(msg) == "string" then return core.sound_play(msg, { pos = pos }) end if type(msg) ~= "table" then return end diff --git a/mods/sbz_logic_devices/object_detector.lua b/mods/sbz_logic_devices/object_detector.lua index 55820d3d..0dc64c56 100644 --- a/mods/sbz_logic_devices/object_detector.lua +++ b/mods/sbz_logic_devices/object_detector.lua @@ -11,7 +11,7 @@ core.register_node("sbz_logic_devices:object_detector", { matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) local settings = { inventories = true, diff --git a/mods/sbz_meteorites/attractor.lua b/mods/sbz_meteorites/attractor.lua index 7370d4ae..edef2e26 100644 --- a/mods/sbz_meteorites/attractor.lua +++ b/mods/sbz_meteorites/attractor.lua @@ -119,7 +119,7 @@ core.register_node('sbz_meteorites:gravitational_attractor', { on_construct = function(pos) core.add_entity(pos, 'sbz_meteorites:gravitational_attractor_entity') end, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), }) do -- Gravitational Attractor recipe scope @@ -149,7 +149,7 @@ core.register_node('sbz_meteorites:gravitational_repulsor', { on_construct = function(pos) core.add_entity(pos, 'sbz_meteorites:gravitational_attractor_entity') end, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), }) mesecon.register_on_mvps_move(function(moved) diff --git a/mods/sbz_meteorites/meteorite_maker.lua b/mods/sbz_meteorites/meteorite_maker.lua index 964a46a3..5ddb12f6 100644 --- a/mods/sbz_meteorites/meteorite_maker.lua +++ b/mods/sbz_meteorites/meteorite_maker.lua @@ -157,7 +157,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { groups = { matter = 1 }, light_source = 0, description = "Meteorite Maker", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "Makes meteorites", on_construct = function(pos) diff --git a/mods/sbz_meteorites/nodes.lua b/mods/sbz_meteorites/nodes.lua index 84c26e91..758a4577 100644 --- a/mods/sbz_meteorites/nodes.lua +++ b/mods/sbz_meteorites/nodes.lua @@ -12,7 +12,7 @@ core.register_node('sbz_meteorites:meteoric_matter', { max_items = 9 * 4, items = matter_items, }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), after_dig_node = function(pos, oldnode, oldmetadata, digger) if math.random(1, 100000) == 1 then -- 1/100k local player_name = digger:get_player_name() @@ -45,7 +45,7 @@ core.register_node('sbz_meteorites:meteoric_antimatter', { max_items = 9 * 4, items = antimatter_items, }, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), }) local emittrium_items = {} @@ -63,7 +63,7 @@ core.register_node('sbz_meteorites:meteoric_emittrium', { max_items = 9 * 4, items = emittrium_items, }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) local drops = sbz_api.crusher_drops @@ -88,7 +88,7 @@ core.register_node('sbz_meteorites:meteoric_metal', { max_items = 8 * 4, items = processed_drops, }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_meteorites:neutronium', { @@ -97,7 +97,7 @@ core.register_node('sbz_meteorites:neutronium', { paramtype = 'light', light_source = 4, groups = { gravity = 300, matter = 1, charged = 1, attraction = 256 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_meteorites:antineutronium', { description = 'Antineutronium', @@ -105,7 +105,7 @@ core.register_node('sbz_meteorites:antineutronium', { paramtype = 'light', light_source = 8, groups = { antigravity = 300, antimatter = 1, charged = 1, attraction = -256 }, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), }) local core_blob = 'sbz_resources:compressed_core_dust' diff --git a/mods/sbz_multiblocks/blast_furnace.lua b/mods/sbz_multiblocks/blast_furnace.lua index 580be15d..4cd262b0 100644 --- a/mods/sbz_multiblocks/blast_furnace.lua +++ b/mods/sbz_multiblocks/blast_furnace.lua @@ -161,7 +161,7 @@ end -- contains storage core.register_node("sbz_multiblocks:blast_furnace_controller", ud { description = "Blast Furnace Controller", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, multiblock_controller = 1, @@ -373,7 +373,7 @@ core.register_node("sbz_multiblocks:blast_furnace_controller", ud { core.register_node("sbz_multiblocks:blast_furnace_casing", ud { description = "Blast Furnace Casing", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, wallsharing = 1, @@ -393,7 +393,7 @@ core.register_node("sbz_multiblocks:blast_furnace_casing", ud { core.register_node("sbz_multiblocks:blast_furnace_heater", ud { description = "Blast Furnace Heater", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), heater_power_use = 5, info_power_needed = 5, -- they do not connect to cables directly groups = { @@ -420,7 +420,7 @@ core.register_node("sbz_multiblocks:blast_furnace_heater", ud { sbz_api.register_machine("sbz_multiblocks:blast_furnace_power_port", ud { description = "Blast Furnace Power Port", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, multiblock_power_port = 1, @@ -474,7 +474,7 @@ sbz_api.register_machine("sbz_multiblocks:blast_furnace_power_port", ud { core.register_node("sbz_multiblocks:blast_furnace_item_input", ud { description = "Blast Furnace Item Input", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "It will never clog the furnace just trust me, if it does somehow its a bug", groups = { matter = 1, @@ -542,7 +542,7 @@ core.register_node("sbz_multiblocks:blast_furnace_item_input", ud { }) core.register_node("sbz_multiblocks:blast_furnace_item_output", ud { description = "Blast Furnace Item Output", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, tubedevice = 1, diff --git a/mods/sbz_multiblocks/large_liquid_storage.lua b/mods/sbz_multiblocks/large_liquid_storage.lua index 26805a9a..b34b8ffd 100644 --- a/mods/sbz_multiblocks/large_liquid_storage.lua +++ b/mods/sbz_multiblocks/large_liquid_storage.lua @@ -143,7 +143,7 @@ core.register_node( 'sbz_multiblocks:large_liquid_storage_controller', unifieddyes.def { description = 'Large Liquid Storage Controller', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, multiblock_controller = 1, @@ -246,13 +246,13 @@ core.register_node( 'sbz_multiblocks:large_liquid_storage_casing', unifieddyes.def { description = 'Large Liquid Storage Casing', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, wallsharing = 1, ui_fluid = 1, }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = 'Or "Dark Stained Colorium Glass" If you are into decorating', drawtype = 'glasslike_framed', paramtype = 'light', @@ -272,7 +272,7 @@ core.register_node( 'sbz_multiblocks:large_liquid_storage_casing_edge', unifieddyes.def { description = 'Large Liquid Storage Edge Casing', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, wallsharing = 1, diff --git a/mods/sbz_pipeworks/autocrafter.lua b/mods/sbz_pipeworks/autocrafter.lua index 48ba09b3..617c1306 100644 --- a/mods/sbz_pipeworks/autocrafter.lua +++ b/mods/sbz_pipeworks/autocrafter.lua @@ -379,7 +379,7 @@ local list_cache = sbz_api.make_cache('list_cache', 0, true) core.register_node('pipeworks:autocrafter', { description = S 'Autocrafter', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = 'normal', tiles = { 'autocrafter.png' }, groups = { diff --git a/mods/sbz_pipeworks/basic_blocks.lua b/mods/sbz_pipeworks/basic_blocks.lua index e72ffc59..fa5cd2e1 100644 --- a/mods/sbz_pipeworks/basic_blocks.lua +++ b/mods/sbz_pipeworks/basic_blocks.lua @@ -53,7 +53,7 @@ end core.register_node("pipeworks:item_sorter", { description = "Item Sorter", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { { name = "itemsorter.png", color = "green" }, { name = "itemsorter.png", color = "yellow" }, @@ -191,7 +191,7 @@ end core.register_node("pipeworks:item_void", { description = "Item Void", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { { name = "trashcan.png" } }, groups = { cracky = 3, matter = 3, tubedevice = 1, tubedevice_receiver = 1 }, tube = { diff --git a/mods/sbz_pipeworks/basic_tubes.lua b/mods/sbz_pipeworks/basic_tubes.lua index 73872595..a2fba28b 100644 --- a/mods/sbz_pipeworks/basic_tubes.lua +++ b/mods/sbz_pipeworks/basic_tubes.lua @@ -1,6 +1,6 @@ pipeworks.register_tube('pipeworks:tube', { description = 'Basic Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling } }, }) @@ -21,7 +21,7 @@ end pipeworks.register_tube('pipeworks:accelerator_tube', { description = 'Accelerating Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'springgreen' }, }, @@ -56,7 +56,7 @@ end pipeworks.register_tube('pipeworks:one_direction_tube', { description = 'One Direction Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = '#45283c' } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling, color = '#45283c' } }, node_def = { @@ -133,7 +133,7 @@ end pipeworks.register_tube('pipeworks:high_priority_tube', { description = 'High Priority Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'tomato' } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling, color = 'tomato' } }, node_def = { @@ -157,7 +157,7 @@ end pipeworks.register_tube('pipeworks:low_priority_tube', { description = 'Low Priority Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'lightgreen' }, }, @@ -185,7 +185,7 @@ end core.register_node('pipeworks:one_way_tube', { description = 'One-Way Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { { name = 'one_way_tube_top.png', backface_culling = pipeworks.tube_backface_culling }, { name = 'one_way_tube_top.png', backface_culling = pipeworks.tube_backface_culling }, @@ -246,7 +246,7 @@ end pipeworks.register_tube('pipeworks:crossing_tube', { description = 'Crossing Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { 'crossing_tube_plain.png' }, noctr = { 'crossing_tube_noctr.png' }, node_def = { @@ -274,7 +274,7 @@ end pipeworks.register_tube('pipeworks:broken_tube', { description = 'Broken Tube', - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'pipeworks_broken_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'red' }, }, diff --git a/mods/sbz_pipeworks/filter_injector.lua b/mods/sbz_pipeworks/filter_injector.lua index 9df2bc11..33d20c93 100644 --- a/mods/sbz_pipeworks/filter_injector.lua +++ b/mods/sbz_pipeworks/filter_injector.lua @@ -42,7 +42,7 @@ local animation_def = { core.register_node('pipeworks:automatic_filter_injector', { description = 'Automatic Filter-Injector', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = 'Pushes items out of containers.', tiles = { { name = 'filter_side.png^[transformFX', animation = animation_def }, diff --git a/mods/sbz_pipeworks/pattern_storinator.lua b/mods/sbz_pipeworks/pattern_storinator.lua index 8e6e31be..52888254 100644 --- a/mods/sbz_pipeworks/pattern_storinator.lua +++ b/mods/sbz_pipeworks/pattern_storinator.lua @@ -26,7 +26,7 @@ core.register_node( 'pipeworks:pattern_storinator', unifieddyes.def { description = 'Pattern Storinator', - sounds = sbz_api.sounds.wood_planks(), + sounds = sbz_audio.wood_planks(), info_extra = '16 slots', groups = { tubedevice = 1, diff --git a/mods/sbz_pipeworks/tube_register.lua b/mods/sbz_pipeworks/tube_register.lua index 48356861..dc1affd2 100644 --- a/mods/sbz_pipeworks/tube_register.lua +++ b/mods/sbz_pipeworks/tube_register.lua @@ -124,7 +124,7 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, s pipeworks.scan_for_tube_objects(pos) end, tubenumber = tonumber(tname), - sounds = sbz_api.sounds.matter() + sounds = sbz_audio.matter() } if special == nil then special = {} end diff --git a/mods/sbz_planets/orbs.lua b/mods/sbz_planets/orbs.lua index 521ccdd2..5c03cda9 100644 --- a/mods/sbz_planets/orbs.lua +++ b/mods/sbz_planets/orbs.lua @@ -25,7 +25,7 @@ end core.register_node("sbz_planets:dwarf_orb_ore", { description = "Dwarf Orb Ore", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), groups = { matter = 1, antimatter = 1, ore = 1, level = 2, }, @@ -35,7 +35,7 @@ core.register_node("sbz_planets:dwarf_orb_ore", { core.register_node("sbz_planets:dwarf_stone", { description = "Stone", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "stone.png" }, groups = { matter = 1, charged = 1, moss_growable = 1, not_in_creative_inventory = 1, explody = 10 }, drop = "sbz_resources:stone" diff --git a/mods/sbz_planets/planet_nodes.lua b/mods/sbz_planets/planet_nodes.lua index b7ccf17b..b7cb871a 100644 --- a/mods/sbz_planets/planet_nodes.lua +++ b/mods/sbz_planets/planet_nodes.lua @@ -48,7 +48,7 @@ core.register_node( description = 'Marble', tiles = { { name = 'marble.png', scale = 2, align_style = 'world' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) @@ -58,7 +58,7 @@ core.register_node('sbz_planets:basalt', { description = 'Basalt', tiles = { { name = 'basalt.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) stairs.register 'sbz_planets:basalt' @@ -66,7 +66,7 @@ core.register_node('sbz_planets:red_stone', { description = 'Red Stone', tiles = { { name = 'red_stone.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) stairs.register 'sbz_planets:red_stone' @@ -74,14 +74,14 @@ core.register_node('sbz_planets:red_stone', { description = 'Red Stone', tiles = { { name = 'red_stone.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_planets:thorium_ore', { description = 'Thorium Ore', tiles = { { name = 'thorium_ore.png' } }, groups = { matter = 1, charged = 1, explody = 10, silktouch = 1, level = 2, ore = 1, radioactive = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drop = 'sbz_chem:thorium_powder', }) core.register_ore { @@ -97,14 +97,14 @@ core.register_node('sbz_planets:blue_stone', { description = 'Blue Stone', tiles = { { name = 'stone.png^[colorize:blue:128' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_planets:uranium_ore', { description = 'Uranium Ore', tiles = { { name = 'uranium_ore.png' } }, groups = { matter = 1, charged = 1, explody = 10, silktouch = 1, level = 2, ore = 1, radioactive = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drop = 'sbz_chem:uranium_powder', light_source = 8, }) @@ -125,7 +125,7 @@ core.register_node('sbz_planets:granite', { description = 'Granite', tiles = { { name = 'granite.png', align_style = 'world', scale = 2 } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) stairs.register 'sbz_planets:granite' @@ -133,7 +133,7 @@ core.register_node('sbz_planets:dead_core', { description = 'Dead Core Piece', tiles = { 'dead_core_piece.png' }, groups = { matter = 1, charged = 1, explody = 1, level = 2 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = 14, damage_per_second = 20, }) @@ -145,7 +145,7 @@ core.register_node('sbz_planets:ice', { description = 'Ice', tiles = { 'ice.png' }, groups = { matter = 1, water = 1, cold = 20, charged = 1, slippery = 5, explody = 20 }, - sounds = sbz_api.sounds.ice(), + sounds = sbz_audio.ice(), light_source = 1, }) stairs.register 'sbz_planets:ice' @@ -154,7 +154,7 @@ core.register_node('sbz_planets:ice_core', { description = 'Ice Core Piece - deprecated', tiles = { 'ice_core_piece.png' }, groups = { matter = 1, charged = 1, slippery = (2 ^ 15) - 1, explody = 10, level = 2 }, - sounds = sbz_api.sounds.ice(), + sounds = sbz_audio.ice(), light_source = core.LIGHT_MAX, drop = 'sbz_resources:movable_emitter', }) @@ -165,7 +165,7 @@ core.register_node('sbz_planets:snow', { drawtype = 'liquid', paramtype = 'light', groups = { oddly_breakable_by_hand = 1, matter = 3, water = 1, cold = 10, charged = 1, explody = 100 }, - sounds = sbz_api.sounds.snow(), + sounds = sbz_audio.snow(), walkable = false, climbable = true, move_resistance = 1, @@ -208,7 +208,7 @@ core.register_node('sbz_planets:snow_layer', { not_in_creative_inventory = 1, attached_node = 1, }, - sounds = sbz_api.sounds.snow(), + sounds = sbz_audio.snow(), node_box = snow_box, collision_box = snow_box, walkable = false, @@ -228,7 +228,7 @@ core.register_node('sbz_planets:colorium_core', { description = 'Colorium Core Piece - Deprecated', tiles = { 'blank.png^[invert:rgba' }, groups = { matter = 1, charged = 1, slippery = (2 ^ 15) - 1, explody = 1, level = 2, not_in_creative_inventory = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = core.LIGHT_MAX, drop = 'sbz_bio:colorium_emitter', }) diff --git a/mods/sbz_planets/planet_teleporter.lua b/mods/sbz_planets/planet_teleporter.lua index 73c53421..0bf8fc4b 100644 --- a/mods/sbz_planets/planet_teleporter.lua +++ b/mods/sbz_planets/planet_teleporter.lua @@ -3,7 +3,7 @@ local mg_vector = vector.new(mg_limit, mg_limit, mg_limit) core.register_node("sbz_planets:planet_teleporter", { info_extra = "Teleports you to a planet. Insert a warp crystal to get teleported.", description = "Planet Teleporter", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "planet_teleporter.png" }, groups = { matter = 1, level = 2 }, on_rightclick = function(pos, node, clicker, stack, pointed) diff --git a/mods/sbz_power/antimatter_generator.lua b/mods/sbz_power/antimatter_generator.lua new file mode 100644 index 00000000..697a9122 --- /dev/null +++ b/mods/sbz_power/antimatter_generator.lua @@ -0,0 +1,310 @@ +-- +-- Per-antimatter-generator, per-player sound tracking. +-- +-- active_generators: set of position hashes for generators currently running. +-- sounds: map of (pos_key .. "_" .. player_name) -> sound handle. +-- fading_out: map of (pos_key .. "_" .. player_name) -> sound handle currently +-- fading out, pending cleanup on the next cycle. +-- +local active_generators = {} +local sounds = {} +local fading_out = {} + +local HEAR_RADIUS = 16 -- nodes, true sphere +local CYCLE = 1 -- seconds between per-player distance checks + +local function sound_key(pos_key, player_name) + return pos_key .. '_' .. player_name +end + +local function set_generator_active(pos, is_active) + local key = core.hash_node_position(pos) + if is_active then + active_generators[key] = pos + else + -- Fade out sound for all players currently hearing this generator. + for _, player in ipairs(core.get_connected_players()) do + local player_name = player:get_player_name() + local sk = sound_key(key, player_name) + if sounds[sk] then + core.sound_fade(sounds[sk], -1.2, 0.0) + fading_out[sk] = sounds[sk] + sounds[sk] = nil + end + end + active_generators[key] = nil + end +end + +-- Update sounds for a single player across all active generators. +local function update_player_sound(player) + local player_name = player:get_player_name() + local ppos = player:get_pos() + + for key, gpos in pairs(active_generators) do + local sk = sound_key(key, player_name) + + -- Clean up any completed fade-out from the previous cycle. + if fading_out[sk] then + core.sound_stop(fading_out[sk]) + fading_out[sk] = nil + end + + local in_range = vector.distance(ppos, gpos) <= HEAR_RADIUS + + if sounds[sk] then + -- Sound already playing: fade out if player has left range. + if not in_range then + core.sound_fade(sounds[sk], -1.2, 0.0) + fading_out[sk] = sounds[sk] + sounds[sk] = nil + end + elseif in_range then + -- Player has entered range: start sound with fade-in. + local handle = core.sound_play( + { name = 'mix_hum_click_loop', pitch = 2.0, gain = 0.8, fade = 0.5 }, + { + pos = gpos, + to_player = player_name, + max_hear_distance = HEAR_RADIUS, + loop = true, + } + ) + if handle then + sounds[sk] = handle + end + end + end +end + +-- Globalstep cycle. +local timer = 0 +core.register_globalstep(function(dtime) + timer = timer + dtime + if timer < CYCLE then + return + end + timer = 0 + for _, player in ipairs(core.get_connected_players()) do + update_player_sound(player) + end +end) + +-- Stop and clean up all sounds for a player when they leave. +core.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + for key, _ in pairs(active_generators) do + local sk = sound_key(key, player_name) + if sounds[sk] then + core.sound_stop(sounds[sk]) + sounds[sk] = nil + end + if fading_out[sk] then + core.sound_stop(fading_out[sk]) + fading_out[sk] = nil + end + end +end) + + +sbz_api.register_stateful_generator('sbz_power:antimatter_generator', { + description = 'Antimatter Generator', + info_extra = { + 'Generates 600 power', + 'Needs 1 antimatter/s and 1 matter/s', + }, + groups = { matter = 1, pipe_connects = 1, disallow_pipeworks = 1, tubedevice = 1, tubedevice_receiver = 1 }, + tiles = { + 'antimatter_gen_top.png', + 'antimatter_gen_top.png', + 'antimatter_gen_side.png', + }, + sounds = sbz_audio.machine(), + input_inv = 'input', + output_inv = 'input', + on_construct = function(pos) + local meta = core.get_meta(pos) + local inv = meta:get_inventory() + + inv:set_size('antimatter', 1) + inv:set_size('matter', 1) + + meta:set_string( + 'formspec', + [[ +formspec_version[7] +size[8.2,9] +style_type[list;spacing=.2;size=.8] + +item_image[1.4,1.9;1,1;sbz_resources:matter_dust] +list[context;matter;1.5,2;1,1;] + +item_image[5.7,1.9;1,1;sbz_resources:antimatter_dust] +list[context;antimatter;5.8,2;1,1;] + +list[current_player;main;0.2,5;8,4;] +]] + ) + end, + + autostate = true, + action = function(pos, node, meta, supply, demand) + local inv = meta:get_inventory() + + if + inv:contains_item('matter', 'sbz_resources:matter_dust') + and inv:contains_item('antimatter', 'sbz_resources:antimatter_dust') + then + inv:remove_item('matter', 'sbz_resources:matter_dust') + inv:remove_item('antimatter', 'sbz_resources:antimatter_dust') + meta:set_string('infotext', 'Running') + local def = { + amount = 25, + time = 1, + collisiondetection = false, + vertical = false, + glow = 14, + size = 3, + pos = pos, + vel = { min = -vector.new(5, 5, 5), max = vector.new(5, 5, 5) }, + exptime = 3, + } + + set_generator_active(pos, true) + + def.texture = 'antimatter_dust.png' + core.add_particlespawner(def) + + def.texture = 'matter_dust.png' + core.add_particlespawner(def) + return 600 + end + + meta:set_string('infotext', "Can't react") + set_generator_active(pos, false) + return 0 + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local stackname = (core.get_inventory { type = 'player', name = player:get_player_name() }) + :get_stack(from_list, from_index) + :get_name() + + if to_list == 'matter' then + if stackname == 'sbz_resources:matter_dust' then + return count + else + return 0 + end + elseif to_list == 'antimatter' then + if stackname == 'sbz_resources:antimatter_dust' then + return count + else + return 0 + end + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local stackname = stack:get_name() + local count = stack:get_count() + if listname == 'antimatter' then + if stackname == 'sbz_resources:antimatter_dust' then + return count + else + return 0 + end + elseif listname == 'matter' then + if stackname == 'sbz_resources:matter_dust' then + return count + else + return 0 + end + end + return stack:get_count() + end, + tube = { + insert_object = function(pos, node, stack, direction) + local meta = core.get_meta(pos) + local inv = meta:get_inventory() + local stackname = stack:get_name() + if stackname == 'sbz_resources:antimatter_dust' then + return inv:add_item('antimatter', stack) + elseif stackname == 'sbz_resources:matter_dust' then + return inv:add_item('matter', stack) + end + return stack + end, + can_insert = function(pos, node, stack, direction) + local meta = core.get_meta(pos) + local inv = meta:get_inventory() + stack = stack:peek_item(10) --if can insert 10, then yeah... because 1 results in a mess + local stackname = stack:get_name() + if stackname == 'sbz_resources:matter_dust' then + return inv:room_for_item('matter', stack) + elseif stackname == 'sbz_resources:antimatter_dust' then + return inv:room_for_item('antimatter', stack) + end + return false + end, + connect_sides = { left = 1, right = 1, back = 1, front = 1, top = 1, bottom = 1 }, + }, +}, { + tiles = { + 'antimatter_gen_top.png', + 'antimatter_gen_top.png', + { + name = 'antimatter_gen_side_on.png', + animation = { type = 'vertical_frames', aspect_w = 16, aspect_h = 16, length = 1.0 }, + }, + }, + light_source = 14, + on_destruct = function(pos) + set_generator_active(pos, false) + end, +}) + +core.register_lbm { + label = 'Upgrade legacy antimatter generator', + name = 'sbz_power:antimatter_generator_upgrade_v1', + nodenames = { 'sbz_power:antimatter_generator' }, + action = function(pos, node, dtime_s) + local meta = core.get_meta(pos) + + meta:set_string( + 'formspec', + [[ +formspec_version[7] +size[8.2,9] +style_type[list;spacing=.2;size=.8] + +item_image[1.4,1.9;1,1;sbz_resources:matter_dust] +list[context;matter;1.5,2;1,1;] + +item_image[5.7,1.9;1,1;sbz_resources:antimatter_dust] +list[context;antimatter;5.8,2;1,1;] + +list[current_player;main;0.2,5;8,4;] +]] + ) + local inv = meta:get_inventory() + + inv:set_size('antimatter', 1) + inv:set_size('matter', 1) + end, +} + +do -- Antimatter Generator recipe scope + local Antimatter_Generator = 'sbz_power:antimatter_generator' + local RM = 'sbz_resources:reinforced_matter' + local MD = 'sbz_resources:matter_dust' + local Ne = 'sbz_meteorites:neutronium' + local AD = 'sbz_resources:antimatter_dust' + core.register_craft({ + output = Antimatter_Generator, + recipe = { + { RM, RM, RM }, + { MD, Ne, AD }, + { RM, RM, RM }, + }, + }) +end diff --git a/mods/sbz_power/batteries.lua b/mods/sbz_power/batteries.lua index 3a06bc83..160cfe39 100644 --- a/mods/sbz_power/batteries.lua +++ b/mods/sbz_power/batteries.lua @@ -30,7 +30,7 @@ end sbz_power.register_battery("sbz_power:battery", { description = "Battery", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "battery.png" }, groups = { matter = 1 }, battery_max = 5000, @@ -53,7 +53,7 @@ end sbz_power.register_battery("sbz_power:advanced_battery", { description = "Advanced Battery", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "advanced_battery.png" }, groups = { matter = 1 }, battery_max = 20000, @@ -75,7 +75,7 @@ end sbz_power.register_battery("sbz_power:very_advanced_battery", { description = "Very Advanced Battery", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "very_advanced_battery.png" }, groups = { matter = 1, level = 2 }, battery_max = 200000, @@ -115,7 +115,7 @@ end sbz_power.register_battery("sbz_power:teleport_battery", { description = "Teleport Battery", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "teleport_battery.png" }, groups = { matter = 1, level = 2 }, no_battery_formspec = true, @@ -246,7 +246,7 @@ end core.register_node("sbz_power:creative_battery", { description = "Creative Power Generating Battery", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "It never runs out of power... useful for when you need to not have noise in your \"Supply\" statistic in the switching station.", tiles = { { name = "creative_battery_power_gen.png", animation = { type = "vertical_frames", length = 0.5 }, } }, @@ -261,7 +261,7 @@ core.register_node("sbz_power:creative_battery", { core.register_node("sbz_power:real_creative_battery", { description = "Creative Battery", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "creative_battery.png" }, groups = { creative = 1, sbz_battery = 1, sbz_machine = 1, pipe_conducts = 1, pipe_connects = 1, matter = 3 }, battery_max = 10 ^ 9, -- G diff --git a/mods/sbz_power/connectors.lua b/mods/sbz_power/connectors.lua index 5e98b63a..b934a2bd 100644 --- a/mods/sbz_power/connectors.lua +++ b/mods/sbz_power/connectors.lua @@ -2,7 +2,7 @@ local hash = core.hash_node_position core.register_node("sbz_power:connector_off", { description = "Connector", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = "nodebox", paramtype = "light", paramtype2 = "wallmounted", @@ -48,7 +48,7 @@ core.register_node("sbz_power:connector_off", { core.register_node("sbz_power:connector_on", { description = "Connector", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = "nodebox", paramtype = "light", paramtype2 = "wallmounted", diff --git a/mods/sbz_power/ele_fab.lua b/mods/sbz_power/ele_fab.lua index b9b47077..675e7abd 100644 --- a/mods/sbz_power/ele_fab.lua +++ b/mods/sbz_power/ele_fab.lua @@ -99,7 +99,7 @@ local power_needed = 30 sbz_api.register_stateful_machine("sbz_power:ele_fab", { description = "Ele Fab", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Yeah the concept is from techage.", tiles = { "ele_fab_top.png", diff --git a/mods/sbz_power/emittrium_reactor.lua b/mods/sbz_power/emittrium_reactor.lua index 5c3ca710..e4bdc366 100644 --- a/mods/sbz_power/emittrium_reactor.lua +++ b/mods/sbz_power/emittrium_reactor.lua @@ -28,7 +28,7 @@ end core.register_node('sbz_power:reactor_shell', { description = 'Reactor Shell', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = 'Used for the emittrium reactor', tiles = { 'reactor_shell.png', @@ -60,7 +60,7 @@ core.register_node('sbz_power:reactor_glass', { 'reactor_shell.png', 'blank.png', }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), drawtype = 'glasslike_framed', paramtype = 'light', groups = { matter = 1, reactor_shell = 1, explody = 1, charged = 1 }, @@ -85,7 +85,7 @@ local reactor_shell = 'blank.png^[invert:rgba^[multiply:#639bFF^reactor_shell.pn core.register_node('sbz_power:reactor_item_input', { description = 'Reactor Emittrium Input', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = 'ONLY ONE can be used in an emittrium reactor, supplies emittrium to the reactor core', groups = { matter = 1, reactor_shell = 1, tubedevice = 1, tubedevice_receiver = 1, explody = 1, charged = 1 }, @@ -136,7 +136,7 @@ end sbz_api.register_stateful('sbz_power:reactor_core', { description = 'Reactor Core', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "Don't let it explode!", tiles = { 'reactor_core.png', @@ -214,7 +214,7 @@ end core.register_node('sbz_power:reactor_infoscreen', { description = 'Reactor Infoscreen', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = '4dir', tiles = { reactor_shell, @@ -320,7 +320,7 @@ end sbz_api.register_generator('sbz_power:reactor_power_port', { description = 'Reactor Power Port', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = '4dir', tiles = { reactor_shell, @@ -365,7 +365,7 @@ end core.register_node('sbz_power:reactor_coolant_port', { description = 'Reactor Coolant Port', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = 'Provide it water', paramtype2 = '4dir', tiles = { diff --git a/mods/sbz_power/extractor.lua b/mods/sbz_power/extractor.lua index 3c75d796..674479c3 100644 --- a/mods/sbz_power/extractor.lua +++ b/mods/sbz_power/extractor.lua @@ -11,7 +11,7 @@ local formspec = [[ sbz_api.register_machine('sbz_power:simple_matter_extractor', { description = 'Simple Matter Extractor', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'simple_matter_extractor.png' }, groups = { matter = 1, sbz_machine = 1, pipe_connects = 1 }, sunlight_propagates = true, @@ -85,7 +85,7 @@ local advanced_formspec = [[ sbz_api.register_machine('sbz_power:advanced_matter_extractor', { description = 'Advanced Matter Extractor', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'advanced_matter_extractor.png' }, groups = { matter = 1, sbz_machine = 1, pipe_connects = 1 }, sunlight_propagates = true, diff --git a/mods/sbz_power/fluid_transport.lua b/mods/sbz_power/fluid_transport.lua index 9429abaa..6234dc21 100644 --- a/mods/sbz_power/fluid_transport.lua +++ b/mods/sbz_power/fluid_transport.lua @@ -50,7 +50,7 @@ local wire_size = 3 / 16 core.register_node("sbz_power:fluid_pipe", { description = "Fluid Pipe", - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = "Transports liquid", connects_to = { "group:fluid_pipe_connects" }, @@ -201,7 +201,7 @@ end sbz_api.register_stateful_machine("sbz_power:pump", { description = "Fluid Pump", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, paramtype2 = "facedir", after_place_node = function(pos) @@ -341,7 +341,7 @@ end sbz_api.register_stateful_machine("sbz_power:creative_pump", { description = "Creative Pump", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, paramtype2 = "facedir", disallow_pipeworks = true, @@ -473,7 +473,7 @@ sbz_api.register_stateful_machine("sbz_power:creative_pump", { core.register_node("sbz_power:fluid_tank", { description = "Fluid Storage Tank", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, fluid_pipe_connects = 1, fluid_pipe_stores = 1, ui_fluid = 1 }, tiles = { "fluid_tank_top.png", @@ -526,7 +526,7 @@ end sbz_api.register_stateful_machine("sbz_power:fluid_capturer", { description = "Fluid Capturer", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, tiles = { "fluid_capturer_top.png^[verticalframe:7:7", @@ -606,7 +606,7 @@ end sbz_api.register_machine("sbz_power:fluid_cell_filler", { description = "Fluid Cell Filler", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "fluid_tank_top.png", "fluid_tank_top.png", diff --git a/mods/sbz_power/generator.lua b/mods/sbz_power/generator.lua index c4dee5c7..141573da 100644 --- a/mods/sbz_power/generator.lua +++ b/mods/sbz_power/generator.lua @@ -4,7 +4,7 @@ local charged_particle_power = 36 -- 36*10 => 360 power per charged particle sbz_api.register_stateful_generator('sbz_power:simple_charge_generator', { description = 'Simple Charge Generator', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { 'simple_charge_generator_off.png' }, groups = { dig_immediate = 2, sbz_machine = 1, pipe_connects = 1 }, @@ -286,7 +286,7 @@ sbz_api.recipe.register_craft { -- Starlight Collector sbz_api.register_generator('sbz_power:starlight_collector', { description = 'Starlight Collector', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = 'nodebox', tiles = { 'starlight_collector.png', @@ -359,256 +359,9 @@ if not sbz_api.server_optimizations then } end --- Proper handling needed for actual looping -local agen_active_sounds = {} -local function pos_hash(pos) - return core.hash_node_position(pos) -end - -local function start_agen_active_sound(pos) - local key = pos_hash(pos) - - -- If already playing - if agen_active_sounds[key] then - return - end - - local handle = core.sound_play( - { name = 'mix_hum_click_loop', pitch = 2.0, gain = 0.7 }, - { - pos = pos, - gain = 0.0, -- start silent to allow fade-in - max_hear_distance = 8.0, - loop = true, - } - ) - - if handle then - agen_active_sounds[key] = handle - core.sound_fade(handle, 0.5, 0.8) - end -end - -local function stop_agen_active_sound(pos) - local key = pos_hash(pos) - local handle = agen_active_sounds[key] - - if not handle then - return - end - - core.sound_fade(handle, -1.2, 0) - - -- Stop sound after fade finishes - core.after(1.0, function() - core.sound_stop(handle) - end) - - agen_active_sounds[key] = nil -end - -sbz_api.register_stateful_generator('sbz_power:antimatter_generator', { - description = 'Antimatter Generator', - info_extra = { - 'Generates 600 power', - 'Needs 1 antimatter/s and 1 matter/s', - }, - groups = { matter = 1, pipe_connects = 1, disallow_pipeworks = 1, tubedevice = 1, tubedevice_receiver = 1 }, - tiles = { - 'antimatter_gen_top.png', - 'antimatter_gen_top.png', - 'antimatter_gen_side.png', - }, - sounds = sbz_api.sounds.machine(), - input_inv = 'input', - output_inv = 'input', - on_construct = function(pos) - local meta = core.get_meta(pos) - local inv = meta:get_inventory() - - inv:set_size('antimatter', 1) - inv:set_size('matter', 1) - - meta:set_string( - 'formspec', - [[ -formspec_version[7] -size[8.2,9] -style_type[list;spacing=.2;size=.8] - -item_image[1.4,1.9;1,1;sbz_resources:matter_dust] -list[context;matter;1.5,2;1,1;] - -item_image[5.7,1.9;1,1;sbz_resources:antimatter_dust] -list[context;antimatter;5.8,2;1,1;] - -list[current_player;main;0.2,5;8,4;] -]] - ) - end, - - autostate = true, - action = function(pos, node, meta, supply, demand) - local inv = meta:get_inventory() - - if - inv:contains_item('matter', 'sbz_resources:matter_dust') - and inv:contains_item('antimatter', 'sbz_resources:antimatter_dust') - then - inv:remove_item('matter', 'sbz_resources:matter_dust') - inv:remove_item('antimatter', 'sbz_resources:antimatter_dust') - meta:set_string('infotext', 'Running') - local def = { - amount = 25, - time = 1, - collisiondetection = false, - vertical = false, - glow = 14, - size = 3, - pos = pos, - vel = { min = -vector.new(5, 5, 5), max = vector.new(5, 5, 5) }, - exptime = 3, - } - - start_agen_active_sound(pos) - - def.texture = 'antimatter_dust.png' - core.add_particlespawner(def) - - def.texture = 'matter_dust.png' - core.add_particlespawner(def) - return 600 - end - - meta:set_string('infotext', "Can't react") - stop_agen_active_sound(pos) - return 0 - end, - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local stackname = (core.get_inventory { type = 'player', name = player:get_player_name() }) - :get_stack(from_list, from_index) - :get_name() - - if to_list == 'matter' then - if stackname == 'sbz_resources:matter_dust' then - return count - else - return 0 - end - elseif to_list == 'antimatter' then - if stackname == 'sbz_resources:antimatter_dust' then - return count - else - return 0 - end - end - return count - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local stackname = stack:get_name() - local count = stack:get_count() - if listname == 'antimatter' then - if stackname == 'sbz_resources:antimatter_dust' then - return count - else - return 0 - end - elseif listname == 'matter' then - if stackname == 'sbz_resources:matter_dust' then - return count - else - return 0 - end - end - return stack:get_count() - end, - tube = { - insert_object = function(pos, node, stack, direction) - local meta = core.get_meta(pos) - local inv = meta:get_inventory() - local stackname = stack:get_name() - if stackname == 'sbz_resources:antimatter_dust' then - return inv:add_item('antimatter', stack) - elseif stackname == 'sbz_resources:matter_dust' then - return inv:add_item('matter', stack) - end - return stack - end, - can_insert = function(pos, node, stack, direction) - local meta = core.get_meta(pos) - local inv = meta:get_inventory() - stack = stack:peek_item(10) --if can insert 10, then yeah... because 1 results in a mess - local stackname = stack:get_name() - if stackname == 'sbz_resources:matter_dust' then - return inv:room_for_item('matter', stack) - elseif stackname == 'sbz_resources:antimatter_dust' then - return inv:room_for_item('antimatter', stack) - end - return false - end, - connect_sides = { left = 1, right = 1, back = 1, front = 1, top = 1, bottom = 1 }, - }, -}, { - tiles = { - 'antimatter_gen_top.png', - 'antimatter_gen_top.png', - { - name = 'antimatter_gen_side_on.png', - animation = { type = 'vertical_frames', aspect_w = 16, aspect_h = 16, length = 1.0 }, - }, - }, - light_source = 14, -}) - -core.register_lbm { - label = 'Upgrade legacy antimatter generator', - name = 'sbz_power:antimatter_generator_upgrade_v1', - nodenames = { 'sbz_power:antimatter_generator' }, - action = function(pos, node, dtime_s) - local meta = core.get_meta(pos) - - meta:set_string( - 'formspec', - [[ -formspec_version[7] -size[8.2,9] -style_type[list;spacing=.2;size=.8] - -item_image[1.4,1.9;1,1;sbz_resources:matter_dust] -list[context;matter;1.5,2;1,1;] - -item_image[5.7,1.9;1,1;sbz_resources:antimatter_dust] -list[context;antimatter;5.8,2;1,1;] - -list[current_player;main;0.2,5;8,4;] -]] - ) - local inv = meta:get_inventory() - - inv:set_size('antimatter', 1) - inv:set_size('matter', 1) - end, -} - -do -- Antimatter Generator recipe scope - local Antimatter_Generator = 'sbz_power:antimatter_generator' - local RM = 'sbz_resources:reinforced_matter' - local MD = 'sbz_resources:matter_dust' - local Ne = 'sbz_meteorites:neutronium' - local AD = 'sbz_resources:antimatter_dust' - core.register_craft({ - output = Antimatter_Generator, - recipe = { - { RM, RM, RM }, - { MD, Ne, AD }, - { RM, RM, RM }, - }, - }) -end - sbz_api.register_generator('sbz_power:creative_generator', { description = 'Creative Generator', - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { { name = 'creative_battery_power_gen.png^[colorize:purple:100', diff --git a/mods/sbz_power/infinite_storinator.lua b/mods/sbz_power/infinite_storinator.lua index 4d60a3c7..d3133eae 100644 --- a/mods/sbz_power/infinite_storinator.lua +++ b/mods/sbz_power/infinite_storinator.lua @@ -1,6 +1,6 @@ sbz_api.register_machine('sbz_power:infinite_storinator', { description = 'Infinite Storinator (deprecated)', - sounds = sbz_api.sounds.wood_planks(), + sounds = sbz_audio.wood_planks(), paramtype2 = 'facedir', groups = { matter = 1, not_in_creative_inventory = 1 }, drop = '', diff --git a/mods/sbz_power/init.lua b/mods/sbz_power/init.lua index aacb8f5e..a3d74a3d 100644 --- a/mods/sbz_power/init.lua +++ b/mods/sbz_power/init.lua @@ -76,7 +76,7 @@ function sbz_api.register_machine(name, def) def.groups.sbz_machine = 1 def.groups.pipe_conducts = def.groups.pipe_conducts or 1 def.groups.pipe_connects = 1 - -- def.sounds = def.sounds or sbz_api.sounds.machine() + -- def.sounds = def.sounds or sbz_audio.machine() sbz_api.add_tube_support(def) if not def.control_action_raw then @@ -139,7 +139,7 @@ function sbz_api.register_generator(name, def) def.groups.sbz_generator = 1 def.groups.pipe_conducts = def.groups.pipe_conducts or 1 def.groups.pipe_connects = 1 - -- def.sounds = sbz_api.sounds.machine() + -- def.sounds = sbz_audio.machine() if def.power_generated then def.action = function(pos, node, meta, ...) @@ -266,6 +266,7 @@ dofile(modpath .. '/fluid_transport.lua') dofile(modpath .. '/power_pipes.lua') dofile(modpath .. '/extractor.lua') dofile(modpath .. '/generator.lua') +dofile(modpath .. '/antimatter_generator.lua') dofile(modpath .. '/connectors.lua') dofile(modpath .. '/infinite_storinator.lua') dofile(modpath .. '/misc.lua') diff --git a/mods/sbz_power/lights.lua b/mods/sbz_power/lights.lua index 77fd47c2..ef71bfe5 100644 --- a/mods/sbz_power/lights.lua +++ b/mods/sbz_power/lights.lua @@ -1,7 +1,7 @@ local cost = 1 sbz_api.register_stateful_machine("sbz_power:powered_lamp", { description = "Powered Lamp", - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { "power_lamp_off.png^[colorize:black:50" }, light_source = 0, info_extra = "Really cheap lamp.", @@ -90,7 +90,7 @@ end sbz_api.register_stateful_machine("sbz_power:super_powered_lamp", { description = "Super Powered Lamp", - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { "super_power_lamp_off.png^[colorize:black:50" }, light_source = 0, info_extra = "Lights up a 13x13x13 square around itself!", diff --git a/mods/sbz_power/misc.lua b/mods/sbz_power/misc.lua index f7193020..79f4990e 100644 --- a/mods/sbz_power/misc.lua +++ b/mods/sbz_power/misc.lua @@ -1,6 +1,6 @@ sbz_api.register_stateful_machine("sbz_power:phosphor", unifieddyes.def { description = "Phosphor", - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), paramtype = "light", sunlight_propagates = true, drawtype = "glasslike_framed", @@ -82,7 +82,7 @@ local item_vaccum_power_demand = 20 sbz_api.register_machine("sbz_power:item_vacuum", { description = "Item Vacuum", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "item_vacuum.png" }, groups = { sbz_machine = 1, diff --git a/mods/sbz_power/phlogiston_fuser.lua b/mods/sbz_power/phlogiston_fuser.lua index 0b0c431e..69aa06f4 100644 --- a/mods/sbz_power/phlogiston_fuser.lua +++ b/mods/sbz_power/phlogiston_fuser.lua @@ -14,7 +14,7 @@ end local ticks = 60 * 3 -- 3 minutes... yeah sbz_api.register_stateful_machine("sbz_power:phlogiston_fuser", { description = "Phlogiston Fuser", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "phlogiston_fuser_side.png", "phlogiston_fuser_side.png", diff --git a/mods/sbz_power/power_pipes.lua b/mods/sbz_power/power_pipes.lua index ac8310bf..1b3a519c 100644 --- a/mods/sbz_power/power_pipes.lua +++ b/mods/sbz_power/power_pipes.lua @@ -23,7 +23,7 @@ core.register_node( 'sbz_power:power_pipe', unifieddyes.def { description = 'Emittrium Power Cable', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), connects_to = { 'group:pipe_connects' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -70,7 +70,7 @@ core.register_node('sbz_power:airtight_power_cable', { connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, tiles = { 'airtight_power_cable.png' }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), drawtype = 'mesh', mesh = 'voxelmodel.obj', light_source = 3, diff --git a/mods/sbz_power/sensors/delayer.lua b/mods/sbz_power/sensors/delayer.lua index 4c753d6e..0fca845d 100644 --- a/mods/sbz_power/sensors/delayer.lua +++ b/mods/sbz_power/sensors/delayer.lua @@ -1,6 +1,6 @@ sbz_api.register_stateful("sbz_power:delayer", unifieddyes.def { description = "Delayer", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "It is not a machine, but conducts power, it is ran on node timers.\nIt may stop when you are not near it, if it isn't forceloaded. You can alternatively use buffer gates connected in a slow way.", tiles = { sbz_api.make_sensor_tex_off("delayer") diff --git a/mods/sbz_power/sensors/gates.lua b/mods/sbz_power/sensors/gates.lua index ce5f9bfb..b64dc7df 100644 --- a/mods/sbz_power/sensors/gates.lua +++ b/mods/sbz_power/sensors/gates.lua @@ -42,7 +42,7 @@ local function make_tex_off(tex) end sbz_api.register_stateful_machine("sbz_power:lgate_not", def { description = "NOT gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("not") }, @@ -61,7 +61,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_not", def { sbz_api.register_stateful_machine("sbz_power:lgate_buffer", def { description = "Buffer gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "whats the use for this again...", tiles = { make_tex_off("buffer") @@ -111,7 +111,7 @@ end sbz_api.register_stateful_machine("sbz_power:lgate_or", def { description = "OR gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("or") }, @@ -130,7 +130,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_or", def { sbz_api.register_stateful_machine("sbz_power:lgate_nor", def { description = "NOR gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("nor") }, @@ -149,7 +149,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_nor", def { sbz_api.register_stateful_machine("sbz_power:lgate_and", def { description = "AND gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("and") }, @@ -168,7 +168,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_and", def { sbz_api.register_stateful_machine("sbz_power:lgate_nand", def { description = "NAND gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("nand") }, @@ -187,7 +187,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_nand", def { sbz_api.register_stateful_machine("sbz_power:lgate_xor", def { description = "XOR gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("xor") }, @@ -206,7 +206,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_xor", def { sbz_api.register_stateful_machine("sbz_power:lgate_xnor", def { description = "XNOR gate", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("xnor") }, @@ -233,7 +233,7 @@ end sbz_api.register_stateful_machine("sbz_power:machine_controller", unifieddyes.def { description = "Machine Controller", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { sbz_api.make_sensor_tex_off("machine_controller") }, diff --git a/mods/sbz_power/sensors/item_sensor.lua b/mods/sbz_power/sensors/item_sensor.lua index d3a60c1e..64740ae8 100644 --- a/mods/sbz_power/sensors/item_sensor.lua +++ b/mods/sbz_power/sensors/item_sensor.lua @@ -39,7 +39,7 @@ end sbz_api.register_stateful_machine("sbz_power:item_sensor", unifieddyes.def { description = "Item Sensor", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Checks if a machine can be inserted to with an item.\nYou can use it to attempt to optimize your giant instatube set up i guess.", tiles = { sbz_api.make_sensor_tex_off("item_sensor"), diff --git a/mods/sbz_power/sensors/node_sensors.lua b/mods/sbz_power/sensors/node_sensors.lua index 40706744..9d8464a8 100644 --- a/mods/sbz_power/sensors/node_sensors.lua +++ b/mods/sbz_power/sensors/node_sensors.lua @@ -46,7 +46,7 @@ end sbz_api.register_stateful_machine("sbz_power:light_sensor", unifieddyes.def { description = "Light Sensor", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Doesn't emit light when turned on", tiles = { sbz_api.make_sensor_tex_off("light_sensor") @@ -179,7 +179,7 @@ end -- NODE SENSOR sbz_api.register_stateful_machine("sbz_power:node_sensor", unifieddyes.def { description = "Node Sensor", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { sbz_api.make_sensor_tex_off("node_detector") }, diff --git a/mods/sbz_power/starlight_catcher.lua b/mods/sbz_power/starlight_catcher.lua index bcf3fcc6..ab577ae3 100644 --- a/mods/sbz_power/starlight_catcher.lua +++ b/mods/sbz_power/starlight_catcher.lua @@ -22,7 +22,7 @@ end core.register_node("sbz_power:starlight_catcher", { description = "Starlight Catcher", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "For those who insist on starlight collectors.\n Generates energy and is less laggy in large quantities.\n It generates energy that can be converted to 1Cj/s. ", tiles = { @@ -97,7 +97,7 @@ end sbz_api.register_generator("sbz_power:photon_energy_converter", { description = "Photon-Energy Converter", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Converts energy provided by starlight catchers to cosmic joules.\nFor maximum possible lag-reduction during construction, place this component last. (So for about 10 000 starlight catchers, you should consider it.)", tiles = { diff --git a/mods/sbz_power/switching_station.lua b/mods/sbz_power/switching_station.lua index 42d605ef..4b31ac55 100644 --- a/mods/sbz_power/switching_station.lua +++ b/mods/sbz_power/switching_station.lua @@ -456,7 +456,7 @@ end core.register_node('sbz_power:switching_station', { description = 'Switching Station', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'switching_station.png' }, groups = { matter = 1, cracky = 1, pipe_connects = 1, pipe_conducts = 1 }, light_source = 3, diff --git a/mods/sbz_power/testnodes.lua b/mods/sbz_power/testnodes.lua index 07715807..9fdfe838 100644 --- a/mods/sbz_power/testnodes.lua +++ b/mods/sbz_power/testnodes.lua @@ -2,7 +2,7 @@ local times = {} local h = core.hash_node_position sbz_api.register_machine("sbz_power:testmach", { description = "Test machine", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), action = function(pos, node, meta, supply, demand) local t = times[core.hash_node_position(pos)] or 0 meta:set_string("infotext", "DTIME: " .. math.floor((core.get_us_time() - t) / 1000) .. "ms") diff --git a/mods/sbz_power/turret.lua b/mods/sbz_power/turret.lua index 832c926d..adbb808f 100644 --- a/mods/sbz_power/turret.lua +++ b/mods/sbz_power/turret.lua @@ -71,7 +71,7 @@ local range = 120 local power_use = 30 sbz_api.register_machine("sbz_power:turret", { description = "Automatic Turret", - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), drawtype = "glasslike", info_extra = { "Shoots things like lasers.", diff --git a/mods/sbz_progression/init.lua b/mods/sbz_progression/init.lua index 9ad82e6f..6d99fef3 100644 --- a/mods/sbz_progression/init.lua +++ b/mods/sbz_progression/init.lua @@ -15,12 +15,6 @@ dofile(modpath .. '/annoy.lua') function sbz_api.displayDialogLine(player_name, text) core.chat_send_player(player_name, '⌠ ' .. text .. ' ⌡') ---[[ -- Different sound effects are going to be used from a callback in sound_api.lua - core.sound_play('dialogue', { - to_player = player_name, - gain = 1, - }) - ]] end -- it will be funny if we all added quest items in the order of recency, not where they are placed on the questbook diff --git a/mods/sbz_resources/COPYRIGHT.md b/mods/sbz_resources/COPYRIGHT.md index 7f277529..a4a30be5 100644 --- a/mods/sbz_resources/COPYRIGHT.md +++ b/mods/sbz_resources/COPYRIGHT.md @@ -252,39 +252,3 @@ along with this program. If not, see . - Copyright (C) 2025 Aredron. CC BY-SA 4.0. `textures/water_animated.png` Copyright (C) 2025 watilin. CC BY-SA 4.0. - -## Sounds and SFX - -`sounds/antistep.ogg` by ChefZander. CC0. Derivative of "Step 4.wav" by carrigsound. CC0. . - -`sounds/block_annihilated.ogg` -- "[SFX Hit] deep kick boom" Copyright (C) 2014 waveplaySFX. CC BY 4.0. . -- Derivative asset for Skyblock: Zero. - - Copyright (C) 2024 ChefZander. CC BY 4.0. - - Copyright (C) 2026 AbbyRead. CC BY 4.0. - -`sounds/charged_field_shutdown.ogg` is "hard_drive_shut_down_01.wav" by Noisehag. CC0. . - -`sounds/decay.ogg` is "pop.ogg" by dodrio. CC0. . - -`sounds/drill_dig.ogg` -- "[SFX Hit] deep kick boom" Copyright (C) 2014 waveplaySFX. CC BY 4.0. . -- Derivative asset for Skyblock: Zero. - - Copyright (C) 2024 TheEt1234. CC BY 4.0. - - Copyright (C) 2026 AbbyRead. CC BY 4.0. - -`sounds/firework_explode.ogg` is "Firework single shot 2" Copyright (C) 2022 MilanKovanda. CC BY 4.0. . - -`sounds/firework_launch.ogg` is "Firework launch (1)" by LukaCafuka. CC0. . - -`sounds/machine_build.ogg` by ChefZander. CC0. Derivative of "Key - Llave" by Lunevix. CC0. . - -`sounds/machine_open.ogg` by TheEt1234, corpserot. CC0. - -`sounds/punch_core.ogg` by corpserot. CC0. - -`sounds/step.ogg` is "Step 4.wav" by carrigsound. CC0. . - -`sounds/tnt_explode.ogg` is "tnt_explode.ogg" by TumeniNodes. CC0. . Derivative of "Explosion2.wav" Copyright (C) 2009 steveygos03. CC BY 3.0. - -`sounds/tnt_ignite.ogg` is "tnt_ignite.ogg" by TumeniNodes, theneedle.tv. CC0. . Derivative of "sparkler_fuse_nm.wav" by Alex_hears_things. CC0. \ No newline at end of file diff --git a/mods/sbz_resources/emitters.lua b/mods/sbz_resources/emitters.lua index f9da158d..dc5f00af 100644 --- a/mods/sbz_resources/emitters.lua +++ b/mods/sbz_resources/emitters.lua @@ -199,7 +199,7 @@ end -- THE CORE!!! core.register_node("sbz_resources:the_core", { description = "The Core", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "the_core.png" }, groups = { gravity = 25, unbreakable = 1, not_in_creative_inventory = 1 }, drop = "", diff --git a/mods/sbz_resources/nodes.lua b/mods/sbz_resources/nodes.lua index d883cb4e..eacefa8b 100644 --- a/mods/sbz_resources/nodes.lua +++ b/mods/sbz_resources/nodes.lua @@ -5,7 +5,7 @@ core.register_node( tiles = { 'matter_blob.png' }, groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_punch = function(pos, node, puncher) core.sound_play('step', { pos = pos, gain = 1.0 }) end, @@ -39,7 +39,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_punch = function(pos, node, puncher) core.sound_play('step', { pos = pos, gain = 1.0 }) end, @@ -82,7 +82,7 @@ core.register_node( groups = { antimatter = 1, cracky = 3, explody = 3, slippery = 32767 }, walkable = true, light_source = 3, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), on_punch = function(pos, node, puncher) core.sound_play('invertedstep', { pos = pos, gain = 1.0 }) end, @@ -141,7 +141,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), on_punch = function(pos, node, puncher) core.sound_play('invertedstep', { pos = pos, gain = 1.0 }) end, @@ -216,7 +216,7 @@ core.register_node( tiles = { 'stone.png' }, groups = { matter = 1, moss_growable = 1, charged = 1 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) @@ -253,7 +253,7 @@ core.register_node('sbz_resources:reinforced_matter', { tiles = { 'reinforced_matter.png' }, groups = { matter = 1, moss_growable = 1 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) do -- Reinforced Matter recipe scope @@ -276,7 +276,7 @@ core.register_node('sbz_resources:reinforced_antimatter', { groups = { antimatter = 1 }, light_source = 5, walkable = true, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), }) do -- Reinforced Antimatter recipe scope @@ -358,7 +358,7 @@ core.register_node('sbz_resources:emittrium_glass', { paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), }) do -- Emittrium Glass recipe scope @@ -386,7 +386,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100, charged = 1 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), } ) @@ -415,7 +415,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100, charged = 1 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = "Recipe requires cleargrass but it returns it back once you've crafted with it.", } ) @@ -447,7 +447,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100, charged = 1 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = { "Recipe requires razorgrass, but it returns it back once you've crafted with it." }, } ) @@ -473,7 +473,7 @@ core.register_node('sbz_resources:compressed_core_dust', { 'compressed_core_dust.png', }, groups = { matter = 2, oddly_breakable_by_hand = 1, explody = 10, charged = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) do -- Compressed Core Dust recipe scope @@ -511,7 +511,7 @@ core.register_node( groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, } ) @@ -521,7 +521,7 @@ core.register_node('sbz_resources:red_sand', { tiles = { 'sand.png^[colorize:red:128' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 1, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -530,7 +530,7 @@ core.register_node('sbz_resources:gravel', { tiles = { 'gravel.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 40 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -541,7 +541,7 @@ core.register_node('sbz_resources:dust', { groups = { matter = 1, charged = 1, sand = 1, explody = 40, soil = 2, oddly_breakable_by_hand = 1 }, walkable = false, climbable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -584,7 +584,7 @@ core.register_node('sbz_resources:clay', { tiles = { 'clay.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 40 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = 3, }) @@ -604,7 +604,7 @@ core.register_node( oddly_breakable_by_hand = 1, }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = 3, } ) @@ -623,7 +623,7 @@ core.register_node('sbz_resources:dark_sand', { groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 0, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -633,7 +633,7 @@ core.register_node('sbz_resources:black_sand', { groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 1, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -643,7 +643,7 @@ core.register_node('sbz_resources:white_sand', { groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 0, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) diff --git a/mods/sbz_resources/parkour.lua b/mods/sbz_resources/parkour.lua index e1e5221c..70b4dab7 100644 --- a/mods/sbz_resources/parkour.lua +++ b/mods/sbz_resources/parkour.lua @@ -10,7 +10,7 @@ core.register_node( 'sbz_resources:emittrium_block', unifieddyes.def { description = 'Emittrium Block', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = 'You should punch it, and place some close to each other.', paramtype2 = 'color', groups = { matter = 1 }, diff --git a/mods/sbz_resources/storinators.lua b/mods/sbz_resources/storinators.lua index 82e4a0b7..e013e858 100644 --- a/mods/sbz_resources/storinators.lua +++ b/mods/sbz_resources/storinators.lua @@ -120,7 +120,7 @@ local function register_storinator(added_name, def) def_copy.after_place_node = pipeworks.after_place def_copy.input_inv = "main" def_copy.output_inv = "main" - -- def_copy.sounds = sbz_api.sounds.machine() + -- def_copy.sounds = sbz_audio.machine() def_copy.tube = { input_inventory = "main", @@ -228,7 +228,7 @@ end register_storinator("", { description = "Storinator", - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), level = 0, overlay_color = "#696a6a", groups = { matter = 1 }, diff --git a/mods/unified_inventory/callbacks.lua b/mods/unified_inventory/callbacks.lua index 52cb7103..109ea888 100644 --- a/mods/unified_inventory/callbacks.lua +++ b/mods/unified_inventory/callbacks.lua @@ -78,8 +78,16 @@ local function receive_fields_searchbox(player, formname, fields) if ui.current_searchbox[player_name] ~= ui.activefilter[player_name] then ui.apply_filter(player, ui.current_searchbox[player_name], "nochange") ui.set_inventory_formspec(player, ui.current_page[player_name]) - minetest.sound_play("paperflip2", - {to_player=player_name, gain = 1.0}) + local paging_sound = "paperflip2" + local paging_pitch = 1.0 + local paging_gain = 1.0 + if core.get_modpath("sbz_audio") then + paging_sound = "foley_page_turn" + paging_pitch = 0.8 + paging_gain = 0.7 + end + core.sound_play({ name = paging_sound, gain = paging_gain, pitch = paging_pitch }, + { to_player=player_name }) end elseif fields.searchresetbutton then if ui.activefilter[player_name] ~= "" then @@ -170,8 +178,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) start_i = pagemax end if start_i ~= start then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) + local paging_sound = "paperflip1" + local paging_pitch = 1.0 + local paging_gain = 1.0 + if core.get_modpath("sbz_audio") then + paging_sound = "foley_page_turn" + paging_gain = 0.6 + end + core.sound_play({ name = paging_sound, gain = paging_gain, pitch = paging_pitch }, + { to_player = player_name }) unified_inventory.current_index[player_name] = (start_i - 1) * ui_peruser.items_per_page + 1 unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) diff --git a/mods/unifieddyes/nodes.lua b/mods/unifieddyes/nodes.lua index eea704ed..ded6a3d5 100644 --- a/mods/unifieddyes/nodes.lua +++ b/mods/unifieddyes/nodes.lua @@ -22,7 +22,7 @@ core.register_node( 'unifieddyes:colorium_blob', unifieddyes.def { description = 'Colorium Blob', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'blank.png^[invert:rgba', }, @@ -42,7 +42,7 @@ core.register_node( 'unifieddyes:colorium_ground_line', unifieddyes.def { description = 'Colorium Ground Line', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'blank.png^[invert:rgba', }, @@ -69,7 +69,7 @@ core.register_node( 'unifieddyes:power_ground_line', unifieddyes.def { description = 'Power Ground Line', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { { name = 'power_ground_line.png', @@ -115,7 +115,7 @@ core.register_node( 'unifieddyes:antiblock', unifieddyes.def { description = 'Antiblock', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'blank.png', },