--- Node Sounds -- -- @topic node --- General sounds. -- -- Aliased or overridden methods: -- -- - `default.node_sound_defaults` -- -- @function sounds.node -- @tparam[opt] table tbl Sound table to update. local node_sounds = { __call = function(self, tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="", gain=1.0} tbl.dug = tbl.dug or {name="sounds_node_dug", gain=0.25} tbl.place = tbl.place or {name="sounds_node_place", gain=1.0} return tbl end, } setmetatable(sounds.node, node_sounds) --- Sounds for "choppy" objects & tools. -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_choppy(tbl) tbl = tbl or {} tbl.dig = tbl.dig or {name="sounds_dig_choppy", gain=0.5} sounds.node(tbl) return tbl end --- Sounds for "cracky" objects & tools. -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_cracky(tbl) tbl = tbl or {} tbl.dig = tbl.dig or {name="sounds_dig_cracky", gain=0.5} sounds.node(tbl) return tbl end --- Sounds for "crumbly" objects & tools. -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_crumbly(tbl) tbl = tbl or {} tbl.dig = tbl.dig or {name="sounds_dig_crumbly", gain=0.5} sounds.node(tbl) return tbl end --- Sounds for "snappy" objects & tools. -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_snappy(tbl) tbl = tbl or {} tbl.dig = tbl.dig or {name="sounds_dig_snappy", gain=0.5} sounds.node(tbl) return tbl end --- Sounds for dirt-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_dirt_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_dirt(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_dirt_step", gain=0.4} tbl.dug = tbl.dug or {name="sounds_dirt_step", gain=1.0} tbl.place = tbl.place or {name="sounds_node_place_soft", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for glass-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_glass_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_glass(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_glass_step", gain=0.3} tbl.dig = tbl.dig or {name="sounds_glass_step", gain=0.5} tbl.dug = tbl.dug or {name="sounds_glass_break", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for grass-like nodes. -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_grass(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_grass_step", gain=0.25} return sounds.node_dirt(tbl) end --- Sounds for gravel-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_gravel_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_gravel(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_gravel_step", gain=0.1} tbl.dig = tbl.dig or {name="sounds_gravel_dig", gain=0.35} tbl.dug = tbl.dug or {name="sounds_gravel_dug", gain=1.0} tbl.place = tbl.place or {name="sounds_node_place_soft", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for ice-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_ice_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_ice(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_ice_step", gain=0.3} tbl.dig = tbl.dig or {name="sounds_ice_dig", gain=0.5} tbl.dug = tbl.dug or {name="sounds_ice_dug", gain=0.5} sounds.node(tbl) return tbl end --- Sounds for leaf-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_leaves_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_leaves(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_grass_step", gain=0.45} tbl.dug = tbl.dug or {name="sounds_grass_step", gain=0.7} tbl.place = tbl.place or {name="sounds_node_place_soft", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for metal-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_metal_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_metal(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_metal_step", gain=0.4} tbl.dig = tbl.dig or {name="sounds_metal_dig", gain=0.5} tbl.dug = tbl.dug or {name="sounds_metal_dug", gain=0.5} tbl.place = tbl.place or {name="sounds_metal_place", gain=0.5} sounds.node(tbl) return tbl end --- Sounds for sand-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_sand_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_sand(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_sand_step", gain=0.05} tbl.dug = tbl.dug or {name="sounds_sand_step", gain=0.15} tbl.place = tbl.place or {name="sounds_node_place_soft", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for snow-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_snow_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_snow(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_snow_step", gain=0.2} tbl.dig = tbl.dig or {name="sounds_snow_step", gain=0.3} tbl.dug = tbl.dug or {name="sounds_snow_step", gain=0.3} tbl.place = tbl.place or {name="sounds_node_place_soft", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for stone-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_stone_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_stone(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_step_hard", gain=0.3} tbl.dug = tbl.dug or {name="sounds_step_hard", gain=1.0} sounds.node(tbl) return tbl end --- Sounds for water-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_water_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_water(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_water_step", gain=0.2} sounds.node(tbl) return tbl end --- Sounds for wood-like nodes. -- -- Aliased or overridden methods: -- -- - `default.node_sound_wood_defaults` -- -- @tparam[opt] table tbl Sound table to update. function sounds.node_wood(tbl) tbl = tbl or {} tbl.footstep = tbl.footstep or {name="sounds_wood_step", gain=0.3} tbl.dug = tbl.dug or {name="sounds_wood_step", gain=1.0} sounds.node(tbl) return tbl end -- compatibility with default mod function if not core.global_exists("default") then default = {} end default.node_sound_defaults = sounds.node default.node_sound_dirt_defaults = sounds.node_dirt default.node_sound_glass_defaults = sounds.node_glass default.node_sound_gravel_defaults = sounds.node_gravel default.node_sound_ice_defaults = sounds.node_ice default.node_sound_leaves_defaults = sounds.node_leaves default.node_sound_metal_defaults = sounds.node_metal default.node_sound_sand_defaults = sounds.node_sand default.node_sound_snow_defaults = sounds.node_snow default.node_sound_stone_defaults = sounds.node_stone default.node_sound_water_defaults = sounds.node_water default.node_sound_wood_defaults = sounds.node_wood