diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 88b2b06878..e8c2f4f05e 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -6,4 +6,19 @@ end_sound = 'sound/machines/shower/shower_end.ogg' volume = 25 -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// \ No newline at end of file +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/supermatter + mid_sounds = list('sound/machines/sm/supermatter1.ogg'=1,'sound/machines/sm/supermatter2.ogg'=1,'sound/machines/sm/supermatter3.ogg'=1) + mid_length = 6 + volume = 1 + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/generator + start_sound = 'sound/machines/generator/generator_start.ogg' + start_length = 4 + mid_sounds = list('sound/machines/generator/generator_mid1.ogg'=1, 'sound/machines/generator/generator_mid2.ogg'=1, 'sound/machines/generator/generator_mid3.ogg'=1) + mid_length = 4 + end_sound = 'sound/machines/generator/generator_end.ogg' + volume = 40 \ No newline at end of file diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index d927b5c4f1..6031f6edab 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -15,6 +15,15 @@ var/power_output = 1 var/consumption = 0 var/base_icon = "portgen0" + var/datum/looping_sound/generator/soundloop + +/obj/machinery/power/port_gen/Initialize() + . = ..() + soundloop = new(list(src), active) + +/obj/machinery/power/port_gen/Destroy() + QDEL_NULL(soundloop) + return ..() /obj/machinery/power/port_gen/proc/HasFuel() //Placeholder for fuel check. return 1 @@ -36,11 +45,13 @@ add_avail(power_gen * power_output) UseFuel() src.updateDialog() + soundloop.start() else active = 0 handleInactive() update_icon() + soundloop.stop() /obj/machinery/power/port_gen/attack_hand(mob/user) if(..()) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index d9aabd1197..94c91f0436 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -135,6 +135,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) var/is_main_engine = FALSE + var/datum/looping_sound/supermatter/soundloop + /obj/machinery/power/supermatter_shard/Initialize() . = ..() SSair.atmos_machinery += src @@ -149,6 +151,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) if(is_main_engine) GLOB.main_supermatter_engine = src + soundloop = new(list(src), TRUE) + /obj/machinery/power/supermatter_shard/Destroy() investigate_log("has been destroyed.", INVESTIGATE_SUPERMATTER) SSair.atmos_machinery -= src @@ -157,7 +161,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) QDEL_NULL(countdown) if(is_main_engine && GLOB.main_supermatter_engine == src) GLOB.main_supermatter_engine = null - . = ..() + QDEL_NULL(soundloop) + return ..() /obj/machinery/power/supermatter_shard/examine(mob/user) ..() @@ -251,6 +256,9 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) if(!istype(T)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. return //Yeah just stop. + if(power) + soundloop.volume = min(50, (round(power, 50)/50)+1) // 5 +1 volume per 20 power. 2500 power is max + //Ok, get the air from the turf var/datum/gas_mixture/env = T.return_air() diff --git a/sound/machines/generator/generator_end.ogg b/sound/machines/generator/generator_end.ogg new file mode 100644 index 0000000000..4397991167 Binary files /dev/null and b/sound/machines/generator/generator_end.ogg differ diff --git a/sound/machines/generator/generator_mid1.ogg b/sound/machines/generator/generator_mid1.ogg new file mode 100644 index 0000000000..10a0d01a7e Binary files /dev/null and b/sound/machines/generator/generator_mid1.ogg differ diff --git a/sound/machines/generator/generator_mid2.ogg b/sound/machines/generator/generator_mid2.ogg new file mode 100644 index 0000000000..77656772cc Binary files /dev/null and b/sound/machines/generator/generator_mid2.ogg differ diff --git a/sound/machines/generator/generator_mid3.ogg b/sound/machines/generator/generator_mid3.ogg new file mode 100644 index 0000000000..812a10e6fc Binary files /dev/null and b/sound/machines/generator/generator_mid3.ogg differ diff --git a/sound/machines/generator/generator_start.ogg b/sound/machines/generator/generator_start.ogg new file mode 100644 index 0000000000..53f734388e Binary files /dev/null and b/sound/machines/generator/generator_start.ogg differ diff --git a/sound/machines/sm/supermatter1.ogg b/sound/machines/sm/supermatter1.ogg new file mode 100644 index 0000000000..1860e78800 Binary files /dev/null and b/sound/machines/sm/supermatter1.ogg differ diff --git a/sound/machines/sm/supermatter2.ogg b/sound/machines/sm/supermatter2.ogg new file mode 100644 index 0000000000..fb2d39fe26 Binary files /dev/null and b/sound/machines/sm/supermatter2.ogg differ diff --git a/sound/machines/sm/supermatter3.ogg b/sound/machines/sm/supermatter3.ogg new file mode 100644 index 0000000000..93ac3d505b Binary files /dev/null and b/sound/machines/sm/supermatter3.ogg differ