Wed, 27 Aug 2025 10:26:12 +0300
Lots of stuff
19 | 1 | ---@param entity LuaEntity |
2 | local function should_play_entity_sounds(entity) | |
3 | return not (entity.type == "electric-pole" or entity.type == "wall" or entity.name == "stone-furnace") | |
4 | end | |
5 | ||
6 | ---@param entity LuaEntity | |
7 | ---@param sound_path SoundPath | |
8 | local function try_play_sound(entity, sound_path, position) | |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
9 | if helpers.is_valid_sound_path(sound_path) |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
10 | then |
19 | 11 | entity.surface.play_sound{ |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
12 | path=sound_path, |
19 | 13 | position=entity.position, |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
14 | } |
19 | 15 | return true |
16 | else | |
17 | return false | |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
18 | end |
19 | 19 | end |
20 | ||
21 | local function play_drop_sounds(entity, position) | |
22 | if not (should_play_entity_sounds(entity) and try_play_sound(entity, "entity-close/"..entity.name)) | |
23 | then | |
24 | try_play_sound(entity, "item-drop/"..entity.name) | |
25 | end | |
26 | end | |
27 | ||
28 | local function play_mined_sounds(entity, position) | |
29 | if not (should_play_entity_sounds(entity) and try_play_sound(entity, "entity-open/"..entity.name, position)) | |
30 | then | |
31 | try_play_sound(entity, "item-pick/"..entity.name, position) | |
32 | end | |
33 | end | |
34 | ||
35 | script.on_event(defines.events.on_built_entity, function(event) | |
36 | play_drop_sounds(event.entity, game.players[event.player_index].position) | |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
37 | end) |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
38 | |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
39 | script.on_event(defines.events.on_robot_built_entity, function(event) |
19 | 40 | play_drop_sounds(event.entity, event.entity.position) |
41 | end) | |
42 | ||
43 | script.on_event(defines.events.on_space_platform_built_entity, function(event) | |
44 | play_drop_sounds(event.entity, event.entity.position) | |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
45 | end) |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
46 | |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
47 | script.on_event(defines.events.on_player_mined_entity, function(event) |
19 | 48 | play_mined_sounds(event.entity, game.players[event.player_index].position) |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
49 | end) |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
50 | |
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
51 | script.on_event(defines.events.on_robot_mined_entity, function(event) |
19 | 52 | play_mined_sounds(event.entity, event.entity.position) |
12
2e09a72b2dfa
Added a mod that plays placement sounds
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
53 | end) |
19 | 54 | |
55 | script.on_event(defines.events.on_space_platform_mined_entity, function(event) | |
56 | play_mined_sounds(event.entity, event.entity.position) | |
57 | end) |