Wireless button updates

Added toggle variants for buttons, allowing them to "deactivate" connected devices.
Converted flashers and holosigns.
Fixes to keep in line with upstream.
This commit is contained in:
Loganbacca
2015-11-19 22:18:29 +13:00
parent 750414e280
commit 56bf894ee1
9 changed files with 129 additions and 34 deletions
+40 -15
View File
@@ -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()
+24 -7
View File
@@ -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."