Wed, 27 Aug 2025 10:26:12 +0300
Lots of stuff
---@param entity LuaEntity local function should_play_entity_sounds(entity) return not (entity.type == "electric-pole" or entity.type == "wall" or entity.name == "stone-furnace") end ---@param entity LuaEntity ---@param sound_path SoundPath local function try_play_sound(entity, sound_path, position) if helpers.is_valid_sound_path(sound_path) then entity.surface.play_sound{ path=sound_path, position=entity.position, } return true else return false end end local function play_drop_sounds(entity, position) if not (should_play_entity_sounds(entity) and try_play_sound(entity, "entity-close/"..entity.name)) then try_play_sound(entity, "item-drop/"..entity.name) end end local function play_mined_sounds(entity, position) if not (should_play_entity_sounds(entity) and try_play_sound(entity, "entity-open/"..entity.name, position)) then try_play_sound(entity, "item-pick/"..entity.name, position) end end script.on_event(defines.events.on_built_entity, function(event) play_drop_sounds(event.entity, game.players[event.player_index].position) end) script.on_event(defines.events.on_robot_built_entity, function(event) play_drop_sounds(event.entity, event.entity.position) end) script.on_event(defines.events.on_space_platform_built_entity, function(event) play_drop_sounds(event.entity, event.entity.position) end) script.on_event(defines.events.on_player_mined_entity, function(event) play_mined_sounds(event.entity, game.players[event.player_index].position) end) script.on_event(defines.events.on_robot_mined_entity, function(event) play_mined_sounds(event.entity, event.entity.position) end) script.on_event(defines.events.on_space_platform_mined_entity, function(event) play_mined_sounds(event.entity, event.entity.position) end)