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