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',
},