diff --git a/baystation12.dme b/baystation12.dme index 49e1fe9bcb4..bae35c729bc 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -140,7 +140,6 @@ #include "code\controllers\Processes\turf.dm" #include "code\controllers\Processes\vote.dm" #include "code\controllers\Processes\wireless.dm" -#include "code\controllers\ProcessScheduler\core\_define.dm" #include "code\controllers\ProcessScheduler\core\_stubs.dm" #include "code\controllers\ProcessScheduler\core\process.dm" #include "code\controllers\ProcessScheduler\core\processScheduler.dm" diff --git a/code/controllers/Processes/wireless.dm b/code/controllers/Processes/wireless.dm index 9db8cb9b550..cc3338a198f 100644 --- a/code/controllers/Processes/wireless.dm +++ b/code/controllers/Processes/wireless.dm @@ -46,4 +46,4 @@ var/datum/controller/process/wireless/wirelessProcess input_queue -= C if(!target_found) output_queue += C - scheck() + SCHECK diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 63af5844e70..381d2768bc5 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -9,19 +9,19 @@ use_power = 1 idle_power_usage = 2 active_power_usage = 4 - var/_wifi_id + var/_wifi_toggle = 0 var/datum/wifi/sender/button/wifi_sender /obj/machinery/button/initialize() ..() + update_icon() if(_wifi_id) - wifi_sender = new(_wifi_id) + wifi_sender = new(_wifi_id, src) /obj/machinery/button/Destroy() - if(wifi_sender) - qdel(wifi_sender) - wifi_sender = null + qdel(wifi_sender) + wifi_sender = null return..() /obj/machinery/button/attack_ai(mob/user as mob) @@ -31,5 +31,37 @@ /obj/machinery/button/attack_hand(mob/living/user) ..() - if(wifi_sender) + + if(!wifi_sender) + return + + use_power(5) + + if(_wifi_toggle) + active = !active + if(active) + wifi_sender.activate(user) + else + wifi_sender.deactivate(user) + update_icon() + else + active = 1 + update_icon() wifi_sender.activate(user) + sleep(10) + active = 0 + update_icon() + +/obj/machinery/button/update_icon() + if(active) + icon_state = "launcheract" + else + icon_state = "launcherbtt" + +/obj/machinery/button/toggle + icon = 'icons/obj/power.dmi' + icon_state = "light0" + _wifi_toggle = 1 + +/obj/machinery/button/toggle/update_icon() + icon_state = "light[active]" diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index e6fb41193cb..bea0c443a74 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -15,6 +15,8 @@ use_power = 1 idle_power_usage = 2 flags = PROXMOVE + var/_wifi_id + var/datum/wifi/receiver/button/flasher/wifi_receiver /obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored name = "portable flasher" @@ -25,6 +27,16 @@ base_state = "pflash" density = 1 +/obj/machinery/flasher/initialize() + ..() + if(_wifi_id) + wifi_receiver = new(_wifi_id, src) + +/obj/machinery/flasher/Destroy() + qdel(wifi_receiver) + wifi_receiver = null + return ..() + /obj/machinery/flasher/power_change() ..() if ( !(stat & NOPOWER) ) diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm index 63198710227..69f12726342 100644 --- a/code/game/machinery/holosign.dm +++ b/code/game/machinery/holosign.dm @@ -12,6 +12,18 @@ var/lit = 0 var/id = null var/on_icon = "sign_on" + var/_wifi_id + var/datum/wifi/receiver/button/holosign/wifi_receiver + +/obj/machinery/holosign/initialize() + ..() + if(_wifi_id) + wifi_receiver = new(_wifi_id, src) + +/obj/machinery/holosign/Destroy() + qdel(wifi_receiver) + wifi_receiver = null + return ..() /obj/machinery/holosign/proc/toggle() if (stat & (BROKEN|NOPOWER)) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 98d4b928a42..8a9e29a0da2 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -186,7 +186,6 @@ var/cremating = 0 var/id = 1 var/locked = 0 - var/_wifi_id var/datum/wifi/receiver/button/crematorium/wifi_receiver diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 3a8441f0188..084f9ef55f2 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -49,9 +49,8 @@ message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) log_game("Emitter deleted at ([x],[y],[z])") investigate_log("deleted at ([x],[y],[z])","singulo") - if(wifi_receiver) - qdel(wifi_receiver) - wifi_receiver = null + qdel(wifi_receiver) + wifi_receiver = null ..() /obj/machinery/power/emitter/update_icon() diff --git a/code/modules/wireless/devices.dm b/code/modules/wireless/devices.dm index 40a293c17de..96400eb9941 100644 --- a/code/modules/wireless/devices.dm +++ b/code/modules/wireless/devices.dm @@ -1,31 +1,32 @@ -/datum/wifi/receiver/button - var/obj/parent - -/datum/wifi/receiver/button/New(var/new_id, var/obj/O) - id = new_id - if(istype(O)) - parent = O - ..() - -/datum/wifi/receiver/button/Destroy() - parent = null - return ..() - +//------------------------------- +// Buttons +//------------------------------- /datum/wifi/receiver/button/proc/activate(mob/living/user) +/datum/wifi/receiver/button/proc/deactivate(mob/living/user) /datum/wifi/sender/button/proc/activate(mob/living/user) for(var/datum/wifi/receiver/button/B in connected_devices) B.activate(user) +/datum/wifi/sender/button/proc/deactivate(mob/living/user) + for(var/datum/wifi/receiver/button/B in connected_devices) + B.deactivate(user) + //------------------------------- // Emitter //------------------------------- /datum/wifi/receiver/button/emitter/activate(mob/living/user) ..() var/obj/machinery/power/emitter/E = parent - if(istype(E)) - E.activate(user) + if(istype(E) && !E.active) + E.activate(user) //if the emitter is not active, trigger the activate proc to toggle it + +/datum/wifi/receiver/button/emitter/deactivate(mob/living/user) + ..() + var/obj/machinery/power/emitter/E = parent + if(istype(E) && E.active) + E.activate(user) //if the emitter is active, trigger the activate proc to toggle it //------------------------------- // Crematorium @@ -35,3 +36,27 @@ var/obj/structure/crematorium/C = parent if(istype(C)) C.cremate(user) + +//------------------------------- +// Mounted Flash +//------------------------------- +/datum/wifi/receiver/button/flasher/activate(mob/living/user) + ..() + var/obj/machinery/flasher/F = parent + if(istype(F)) + F.flash() + +//------------------------------- +// Holosign +//------------------------------- +/datum/wifi/receiver/button/holosign/activate(mob/living/user) + ..() + var/obj/machinery/holosign/H = parent + if(istype(H) && !H.lit) + H.toggle() + +/datum/wifi/receiver/button/holosign/deactivate(mob/living/user) + ..() + var/obj/machinery/holosign/H = parent + if(istype(H) && H.lit) + H.toggle() diff --git a/code/modules/wireless/interfaces.dm b/code/modules/wireless/interfaces.dm index 22dfa92e149..5afd379063a 100644 --- a/code/modules/wireless/interfaces.dm +++ b/code/modules/wireless/interfaces.dm @@ -1,10 +1,17 @@ +//------------------------------- +// Wifi +//------------------------------- /datum/wifi + var/obj/parent var/list/connected_devices -/datum/wifi/New() +/datum/wifi/New(var/obj/O) connected_devices = new() + if(istype(O)) + parent = O /datum/wifi/Destroy(var/wifi/device) + parent = null for(var/datum/wifi/D in connected_devices) D.disconnect_device(src) disconnect_device(D) @@ -17,12 +24,14 @@ connected_devices -= device - +//------------------------------- +// Receiver +//------------------------------- /datum/wifi/receiver var/id -/datum/wifi/receiver/New(var/new_id) - ..() +/datum/wifi/receiver/New(var/new_id, var/obj/O) + ..(O) id = new_id wirelessProcess.add_device(src) @@ -31,11 +40,14 @@ return ..() +//------------------------------- +// Sender +//------------------------------- /datum/wifi/sender var/target -/datum/wifi/sender/New(var/new_target) - ..() +/datum/wifi/sender/New(var/new_target, var/obj/O) + ..(O) target = new_target send_connection_request() @@ -47,7 +59,9 @@ wirelessProcess.add_request(C) - +//------------------------------- +// Connection request +//------------------------------- /datum/connection_request var/datum/wifi/sender/source //wifi_sender object creating the request var/target //id tag of the target device to try to connect to @@ -57,6 +71,9 @@ target = receiver +//------------------------------- +// Wireless tool (temp) +//------------------------------- /obj/item/device/wireless_tool name = "wireless tool" desc = "Used for connecting machinery to controls for remote operation."