From a9555b01758f05d650e7aeef8452aa420c3fd1da Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Mon, 16 Nov 2015 22:42:11 +1300 Subject: [PATCH] Converted emitter remote control Also converted crematoriums, although they are not working at the moment. Removed redundant wireless manager file. --- baystation12.dme | 1 + code/controllers/Processes/wireless.dm | 2 +- code/game/machinery/buttons.dm | 15 +++++++- code/game/objects/structures/morgue.dm | 8 ++++ code/modules/power/singularity/emitter.dm | 3 ++ code/modules/wireless/devices.dm | 37 ++++++++++++++++++ code/modules/wireless/manager.dm | 47 ----------------------- 7 files changed, 63 insertions(+), 50 deletions(-) create mode 100644 code/modules/wireless/devices.dm delete mode 100644 code/modules/wireless/manager.dm diff --git a/baystation12.dme b/baystation12.dme index 33e934a351d..49e1fe9bcb4 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1832,6 +1832,7 @@ #include "code\modules\virus2\helpers.dm" #include "code\modules\virus2\isolator.dm" #include "code\modules\virus2\items_devices.dm" +#include "code\modules\wireless\devices.dm" #include "code\modules\wireless\interfaces.dm" #include "code\modules\xgm\xgm_gas_data.dm" #include "code\modules\xgm\xgm_gas_mixture.dm" diff --git a/code/controllers/Processes/wireless.dm b/code/controllers/Processes/wireless.dm index ccb99734dc3..9db8cb9b550 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() \ No newline at end of file + scheck() diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 70557a2e18b..bd9fc8a7d10 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -10,9 +10,20 @@ idle_power_usage = 2 active_power_usage = 4 + var/_wifi_id + var/datum/wifi/sender/button/wifi_sender + +/obj/machinery/button/New() + ..() + if(_wifi_id) + wifi_sender = new(_wifi_id) /obj/machinery/button/attack_ai(mob/user as mob) return src.attack_hand(user) -/obj/machinery/button/attackby(obj/item/weapon/W, mob/user as mob) - return src.attack_hand(user) \ No newline at end of file +/obj/machinery/button/attackby(obj/item/weapon/W, mob/user as mob) return src.attack_hand(user) + +/obj/machinery/button/attack_hand(mob/living/user) + ..() + if(wifi_sender) + wifi_sender.activate(user) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 9f8eed2eb57..3cf38a6ef7d 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -187,6 +187,14 @@ var/id = 1 var/locked = 0 + var/_wifi_id + var/datum/wifi/receiver/button/crematorium/wifi_receiver + +/obj/structure/crematorium/New() + ..() + if(_wifi_id) + wifi_receiver = new(_wifi_id) + /obj/structure/crematorium/Destroy() if(connected) qdel(connected) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 51093296b27..11ad0b7e7a1 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -24,6 +24,7 @@ var/state = 0 var/locked = 0 + var/datum/wifi/receiver/button/emitter/wifi_receiver /obj/machinery/power/emitter/verb/rotate() set name = "Rotate" @@ -40,11 +41,13 @@ ..() if(state == 2 && anchored) connect_to_network() + wifi_receiver = new(id, src) /obj/machinery/power/emitter/Destroy() 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") + wifi_receiver.Destroy() ..() /obj/machinery/power/emitter/update_icon() diff --git a/code/modules/wireless/devices.dm b/code/modules/wireless/devices.dm new file mode 100644 index 00000000000..fbc3bfc321d --- /dev/null +++ b/code/modules/wireless/devices.dm @@ -0,0 +1,37 @@ +/datum/wifi/receiver/button + var/obj/parent + +/datum/wifi/receiver/button/proc/activate(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) + +//------------------------------- +// Emitter +//------------------------------- +/datum/wifi/receiver/button/emitter/New(var/new_id, var/obj/machinery/power/emitter/E) + id = new_id + if(istype(E)) + parent = E + ..() + +/datum/wifi/receiver/button/emitter/activate(mob/living/user) + ..() + var/obj/machinery/power/emitter/E = parent + E.activate(user) + +//------------------------------- +// Crematorium +//------------------------------- +/datum/wifi/receiver/button/crematorium/New(var/new_id, var/obj/structure/crematorium/C) + id = new_id + if(istype(C)) + parent = C + ..() + +/datum/wifi/receiver/button/crematorium/activate(mob/living/user) + ..() + var/obj/structure/crematorium/C = parent + C.cremate(user) diff --git a/code/modules/wireless/manager.dm b/code/modules/wireless/manager.dm deleted file mode 100644 index 4922732785f..00000000000 --- a/code/modules/wireless/manager.dm +++ /dev/null @@ -1,47 +0,0 @@ -/datum/wifi_manager - var/list/pending_connections - var/list/receiver_list - var/list/failed_connections - -/datum/wifi_manager/New() - pending_connections = new() - receiver_list = new() - failed_connections = new() - -/datum/wifi_manager/proc/add_device(var/datum/wifi/receiver/R) - receiver_list |= R - -/datum/wifi_manager/proc/remove_device(var/datum/wifi/receiver/R) - receiver_list -= R - -/datum/wifi_manager/proc/add_request(var/datum/connection_request/C) - pending_connections += C - -/datum/wifi_manager/proc/process() - //check any failed connections from the previous pass - if(failed_connections.len > 0) - for(var/datum/connection_request/C in failed_connections) - var/target_found = 0 - for(var/datum/wifi/receiver/R in receiver_list) - if(R.id == C.target) - var/datum/wifi/sender/S = C.source - S.connect_device(R) - R.connect_device(S) - target_found = 1 - failed_connections -= C - if(!target_found) - log_debug("[C.source] could not connect to \"[C.target]\"") - - //check and try assigning any pending connections - if(pending_connections.len > 0) - for(var/datum/connection_request/C in pending_connections) - var/target_found = 0 - for(var/datum/wifi/receiver/R in receiver_list) - if(R.id == C.target) - var/datum/wifi/sender/S = C.source - S.connect_device(R) - R.connect_device(S) - target_found = 1 - pending_connections -= C - if(!target_found) - failed_connections += C