place-sounds/control.lua

Wed, 27 Aug 2025 10:26:12 +0300

author
Teemu Piippo <teemu.s.piippo@gmail.com>
date
Wed, 27 Aug 2025 10:26:12 +0300
changeset 19
adbc5c74f279
parent 12
2e09a72b2dfa
permissions
-rw-r--r--

Lots of stuff

19
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
1 ---@param entity LuaEntity
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
2 local function should_play_entity_sounds(entity)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
3 return not (entity.type == "electric-pole" or entity.type == "wall" or entity.name == "stone-furnace")
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
4 end
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
5
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
6 ---@param entity LuaEntity
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
7 ---@param sound_path SoundPath
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
15 return true
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
16 else
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
19 end
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
20
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
21 local function play_drop_sounds(entity, position)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
22 if not (should_play_entity_sounds(entity) and try_play_sound(entity, "entity-close/"..entity.name))
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
23 then
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
24 try_play_sound(entity, "item-drop/"..entity.name)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
25 end
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
26 end
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
27
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
28 local function play_mined_sounds(entity, position)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
29 if not (should_play_entity_sounds(entity) and try_play_sound(entity, "entity-open/"..entity.name, position))
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
30 then
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
31 try_play_sound(entity, "item-pick/"..entity.name, position)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
32 end
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
33 end
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
34
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
35 script.on_event(defines.events.on_built_entity, function(event)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
40 play_drop_sounds(event.entity, event.entity.position)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
41 end)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
42
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
43 script.on_event(defines.events.on_space_platform_built_entity, function(event)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
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
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
54
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
55 script.on_event(defines.events.on_space_platform_mined_entity, function(event)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
56 play_mined_sounds(event.entity, event.entity.position)
adbc5c74f279 Lots of stuff
Teemu Piippo <teemu.s.piippo@gmail.com>
parents: 12
diff changeset
57 end)

mercurial