diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm
index ec0340ba26..6c78bd33d9 100644
--- a/code/datums/looping_sounds/machinery_sounds.dm
+++ b/code/datums/looping_sounds/machinery_sounds.dm
@@ -115,3 +115,20 @@
mid_length = 6
end_sound = 'sound/machines/vehicle/engine_end.ogg'
volume = 20
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/datum/looping_sound/mining_drill
+ start_sound = 'sound/machines/drill/drill_start.ogg'
+ start_length = 19
+ mid_sounds = list('sound/machines/drill/drill_mid.ogg'=1)
+ mid_length = 19
+ end_sound = 'sound/machines/drill/drill_end.ogg'
+ volume = 50
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/datum/looping_sound/fabricator
+ mid_sounds = list('sound/machines/fabricator/fabricator1.ogg'=1, 'sound/machines/fabricator/fabricator2.ogg'=1)
+ mid_length = 60
+ volume = 25
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 5feb8915f5..3852b42aac 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -20,6 +20,7 @@
var/disabled = 0
var/shocked = 0
var/busy = 0
+ var/datum/looping_sound/fabricator/soundloop
var/mat_efficiency = 1
var/build_time = 50
@@ -42,12 +43,14 @@
stored_material[Name] = 0
storage_capacity[Name] = 0
+ soundloop = new(list(src), FALSE)
default_apply_parts()
RefreshParts()
/obj/machinery/autolathe/Destroy()
qdel(wires)
wires = null
+ QDEL_NULL(soundloop)
return ..()
/obj/machinery/autolathe/proc/update_recipe_list()
@@ -276,6 +279,7 @@
return
busy = 1
+ soundloop.start()
update_use_power(USE_POWER_ACTIVE)
//Check if we still have the materials.
@@ -295,6 +299,7 @@
sleep(build_time)
busy = 0
+ soundloop.stop()
update_use_power(USE_POWER_IDLE)
update_icon() // So lid opens
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 5082f66373..d78782759a 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -21,6 +21,7 @@
var/list/datum/design/queue = list()
var/progress = 0
var/busy = 0
+ var/datum/looping_sound/fabricator/soundloop
var/list/categories = list()
var/category = null
@@ -41,6 +42,11 @@
default_apply_parts()
files = new /datum/research(src) //Setup the research data holder.
update_categories()
+ soundloop = new(list(src), FALSE)
+
+/obj/machinery/mecha_part_fabricator/Destroy()
+ QDEL_NULL(soundloop)
+ return ..()
/obj/machinery/mecha_part_fabricator/process()
..()
@@ -195,10 +201,13 @@
if(queue.len)
if(can_build(queue[1]))
busy = 1
+ soundloop.start()
else
busy = 0
+ soundloop.stop()
else
busy = 0
+ soundloop.stop()
/obj/machinery/mecha_part_fabricator/proc/add_to_queue(var/index)
var/datum/design/D = files.known_designs[index]
diff --git a/code/game/mecha/mech_prosthetics.dm b/code/game/mecha/mech_prosthetics.dm
index 14e30b5b19..5afb33d7c3 100644
--- a/code/game/mecha/mech_prosthetics.dm
+++ b/code/game/mecha/mech_prosthetics.dm
@@ -21,6 +21,7 @@
var/list/datum/design/queue = list()
var/progress = 0
var/busy = 0
+ var/datum/looping_sound/fabricator/soundloop
var/list/categories = list()
var/category = null
@@ -35,6 +36,11 @@
files = new /datum/research(src) //Setup the research data holder.
manufacturer = basic_robolimb.company
update_categories()
+ soundloop = new(list(src), FALSE)
+
+/obj/machinery/pros_fabricator/Destroy()
+ QDEL_NULL(soundloop)
+ return ..()
/obj/machinery/pros_fabricator/process()
..()
@@ -233,10 +239,13 @@
if(queue.len)
if(can_build(queue[1]))
busy = 1
+ soundloop.start()
else
busy = 0
+ soundloop.stop()
else
busy = 0
+ soundloop.stop()
/obj/machinery/pros_fabricator/proc/add_to_queue(var/index)
var/datum/design/D = files.known_designs[index]
diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm
index 26e817c5fa..ff18bfa158 100644
--- a/code/modules/food/kitchen/cooking_machines/_appliance.dm
+++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm
@@ -144,7 +144,7 @@
user.visible_message("[user] turns [src] off.", "You turn off [src].")
cooking = FALSE // Stop cooking here, too, just in case.
- playsound(src, 'sound/machines/click.ogg', 40, 1)
+ playsound(src, "button", 40, 1)
update_icon()
/obj/machinery/appliance/AICtrlClick(mob/user)
diff --git a/code/modules/food/kitchen/cooking_machines/_mixer.dm b/code/modules/food/kitchen/cooking_machines/_mixer.dm
index 1385fccf3a..59d0b1b633 100644
--- a/code/modules/food/kitchen/cooking_machines/_mixer.dm
+++ b/code/modules/food/kitchen/cooking_machines/_mixer.dm
@@ -25,12 +25,12 @@ fundamental differences
cooking_objs += new /datum/cooking_item(new /obj/item/reagent_containers/cooking_container(src))
cooking = FALSE
selected_option = pick(output_options)
-
+
mixer_loop = new(list(src), FALSE)
-
+
/obj/machinery/appliance/mixer/Destroy()
. = ..()
-
+
QDEL_NULL(mixer_loop)
//Mixers cannot-not do combining mode. So the default option is removed from this. A combine target must be chosen
@@ -119,7 +119,7 @@ fundamental differences
use_power = 0
if(usr)
usr.visible_message("[usr] turns the [src] off", "You turn off \the [src].")
- playsound(src, 'sound/machines/click.ogg', 40, 1)
+ playsound(src, "button", 40, 1)
update_icon()
/obj/machinery/appliance/mixer/can_insert(var/obj/item/I, var/mob/user)
@@ -132,7 +132,7 @@ fundamental differences
/obj/machinery/appliance/mixer/finish_cooking(var/datum/cooking_item/CI)
..()
stat |= POWEROFF
- playsound(src, 'sound/machines/click.ogg', 40, 1)
+ playsound(src, "button", 40, 1)
use_power = 0
CI.reset()
update_icon()
@@ -151,4 +151,4 @@ fundamental differences
/obj/machinery/appliance/mixer/process()
if (!stat)
for (var/i in cooking_objs)
- do_cooking_tick(i)
\ No newline at end of file
+ do_cooking_tick(i)
diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm
index 3501c3034f..0c85586830 100644
--- a/code/modules/mining/drilling/drill.dm
+++ b/code/modules/mining/drilling/drill.dm
@@ -16,6 +16,7 @@
var/active = 0
var/list/resource_field = list()
var/obj/item/radio/intercom/faultreporter = new /obj/item/radio/intercom{channels=list("Supply")}(null)
+ var/datum/looping_sound/mining_drill/mining_drill_loop
var/list/ore_types = list(
"hematite" = /obj/item/ore/iron,
@@ -63,6 +64,11 @@
. = ..()
default_apply_parts()
cell = default_use_hicell()
+ mining_drill_loop = new(list(src), FALSE)
+
+/obj/machinery/mining/drill/Destroy()
+ QDEL_NULL(mining_drill_loop)
+ return ..()
/obj/machinery/mining/drill/get_cell()
return cell
@@ -207,9 +213,13 @@
if(use_cell_power())
active = !active
if(active)
+ if(mining_drill_loop)
+ mining_drill_loop.start(src)
visible_message("\The [src] lurches downwards, grinding noisily.")
need_update_field = 1
else
+ if(mining_drill_loop)
+ mining_drill_loop.stop(src)
visible_message("\The [src] shudders to a grinding halt.")
else
to_chat(user, "The drill is unpowered.")
@@ -275,6 +285,8 @@
faultreporter.autosay(error, src.name, "Supply")
need_player_check = 1
active = 0
+ if(mining_drill_loop)
+ mining_drill_loop.stop(src)
update_icon()
/obj/machinery/mining/drill/proc/get_resource_field()
@@ -317,6 +329,7 @@
for(var/obj/item/ore/O in contents)
O.loc = B
to_chat(usr, "You unload the drill's storage cache into the ore box.")
+ playsound(src, 'sound/machines/clunk.ogg', 30, 1)
else
to_chat(usr, "You must move an ore box up to the drill before you can unload it.")
@@ -402,4 +415,4 @@
return 0
src.set_dir(turn(src.dir, 270))
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/modules/mining/machinery/machine_processing.dm b/code/modules/mining/machinery/machine_processing.dm
index eaa11c3acd..ee6d65c027 100644
--- a/code/modules/mining/machinery/machine_processing.dm
+++ b/code/modules/mining/machinery/machine_processing.dm
@@ -293,6 +293,7 @@
for(var/i=0,i0)
diff --git a/sound/machines/clunk.ogg b/sound/machines/clunk.ogg
new file mode 100644
index 0000000000..26d150d0e3
Binary files /dev/null and b/sound/machines/clunk.ogg differ
diff --git a/sound/machines/drill/drill_end.ogg b/sound/machines/drill/drill_end.ogg
new file mode 100644
index 0000000000..d10db081a3
Binary files /dev/null and b/sound/machines/drill/drill_end.ogg differ
diff --git a/sound/machines/drill/drill_mid.ogg b/sound/machines/drill/drill_mid.ogg
new file mode 100644
index 0000000000..b596f1d489
Binary files /dev/null and b/sound/machines/drill/drill_mid.ogg differ
diff --git a/sound/machines/drill/drill_start.ogg b/sound/machines/drill/drill_start.ogg
new file mode 100644
index 0000000000..52ae96f448
Binary files /dev/null and b/sound/machines/drill/drill_start.ogg differ
diff --git a/sound/machines/fabricator/fabricator1.ogg b/sound/machines/fabricator/fabricator1.ogg
new file mode 100644
index 0000000000..021b18b280
Binary files /dev/null and b/sound/machines/fabricator/fabricator1.ogg differ
diff --git a/sound/machines/fabricator/fabricator2.ogg b/sound/machines/fabricator/fabricator2.ogg
new file mode 100644
index 0000000000..48930ede2d
Binary files /dev/null and b/sound/machines/fabricator/fabricator2.ogg differ
diff --git a/sound/machines/lever.ogg b/sound/machines/lever.ogg
new file mode 100644
index 0000000000..d6d3fcacde
Binary files /dev/null and b/sound/machines/lever.ogg differ