mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 20:37:34 +01:00
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:
@@ -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"
|
||||
|
||||
@@ -46,4 +46,4 @@ var/datum/controller/process/wireless/wirelessProcess
|
||||
input_queue -= C
|
||||
if(!target_found)
|
||||
output_queue += C
|
||||
scheck()
|
||||
SCHECK
|
||||
|
||||
@@ -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]"
|
||||
|
||||
@@ -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) )
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -186,7 +186,6 @@
|
||||
var/cremating = 0
|
||||
var/id = 1
|
||||
var/locked = 0
|
||||
|
||||
var/_wifi_id
|
||||
var/datum/wifi/receiver/button/crematorium/wifi_receiver
|
||||
|
||||
|
||||
@@ -49,9 +49,8 @@
|
||||
message_admins("Emitter deleted at ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
log_game("Emitter deleted at ([x],[y],[z])")
|
||||
investigate_log("<font color='red'>deleted</font> 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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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."
|
||||
|
||||
Reference in New Issue
Block a user