mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Fixes camera network changes not always being reflected in camera consoles.
Cameras with altered networks would not necessarily show up on camera consoles, primarily affecting cameras joining/leaving alarm zones.
This commit is contained in:
@@ -349,6 +349,51 @@
|
||||
user.set_machine(src)
|
||||
wires.Interact(user)
|
||||
|
||||
/obj/machinery/camera/proc/add_network(var/network_name)
|
||||
add_networks(list(network_name))
|
||||
|
||||
/obj/machinery/camera/proc/remove_network(var/network_name)
|
||||
remove_networks(list(network_name))
|
||||
|
||||
/obj/machinery/camera/proc/add_networks(var/list/networks)
|
||||
var/network_added
|
||||
network_added = 0
|
||||
for(var/network_name in networks)
|
||||
if(!(network_name in src.network))
|
||||
network += network_name
|
||||
network_added = 1
|
||||
|
||||
if(network_added)
|
||||
invalidateCameraCache()
|
||||
|
||||
/obj/machinery/camera/proc/remove_networks(var/list/networks)
|
||||
var/network_removed
|
||||
network_removed = 0
|
||||
for(var/network_name in networks)
|
||||
if(network_name in src.network)
|
||||
network -= network_name
|
||||
network_removed = 1
|
||||
|
||||
if(network_removed)
|
||||
invalidateCameraCache()
|
||||
|
||||
/obj/machinery/camera/proc/replace_networks(var/list/networks)
|
||||
if(networks.len != network.len)
|
||||
network = networks
|
||||
invalidateCameraCache()
|
||||
return
|
||||
|
||||
for(var/new_network in networks)
|
||||
if(!(new_network in network))
|
||||
network = networks
|
||||
invalidateCameraCache()
|
||||
return
|
||||
|
||||
/obj/machinery/camera/proc/clear_all_networks()
|
||||
if(network.len)
|
||||
network.Cut()
|
||||
invalidateCameraCache()
|
||||
|
||||
/obj/machinery/camera/proc/nano_structure()
|
||||
var/cam[0]
|
||||
cam["name"] = sanitize(c_tag)
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
C.auto_turn()
|
||||
|
||||
C.network = uniquelist(tempnetwork)
|
||||
C.replace_networks(uniquelist(tempnetwork))
|
||||
tempnetwork = difflist(C.network,restricted_camera_networks)
|
||||
if(!tempnetwork.len)//Camera isn't on any open network - remove its chunk from AI visibility.
|
||||
cameranet.removeCamera(C)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
R.icon_state = "[R.ckey]-Standard"
|
||||
del(R.module)
|
||||
R.module = null
|
||||
R.camera.network.Remove(list("Engineering","Medical","MINE"))
|
||||
R.camera.remove_networks(list("Engineering","Medical","MINE"))
|
||||
R.updatename("Default")
|
||||
R.status_flags |= CANPUSH
|
||||
R.updateicon()
|
||||
|
||||
@@ -64,10 +64,9 @@
|
||||
/datum/alarm_handler/proc/on_alarm_change(var/datum/alarm/alarm, var/was_raised)
|
||||
for(var/obj/machinery/camera/C in alarm.cameras())
|
||||
if(was_raised)
|
||||
C.network.Add(category)
|
||||
invalidateCameraCache()
|
||||
C.add_network(category)
|
||||
else
|
||||
C.network.Remove(category)
|
||||
C.remove_network(category)
|
||||
notify_listeners(alarm, was_raised)
|
||||
|
||||
/datum/alarm_handler/proc/get_alarm_severity_for_origin(var/atom/origin)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
icon_action_button = "[icon_state]"
|
||||
|
||||
camera = new /obj/machinery/camera(src)
|
||||
camera.network = camera_networks
|
||||
camera.replace_networks(camera_networks)
|
||||
cameranet.removeCamera(camera)
|
||||
camera.c_tag = user.name
|
||||
user << "\blue User scanned as [camera.c_tag]. Camera activated."
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
add_language("Drone Talk", 1)
|
||||
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("Engineering")
|
||||
camera.add_network("Engineering")
|
||||
|
||||
//They are unable to be upgraded, so let's give them a bit of a better battery.
|
||||
cell.maxcharge = 10000
|
||||
|
||||
@@ -125,7 +125,7 @@ var/list/robot_verbs_default = list(
|
||||
if(!scrambledcodes && !camera)
|
||||
camera = new /obj/machinery/camera(src)
|
||||
camera.c_tag = real_name
|
||||
camera.network = list("SS13","Robots")
|
||||
camera.replace_networks(list("SS13","Robots"))
|
||||
if(wires.IsIndexCut(BORG_WIRE_CAMERA))
|
||||
camera.status = 0
|
||||
|
||||
@@ -275,7 +275,7 @@ var/list/robot_verbs_default = list(
|
||||
module = new /obj/item/weapon/robot_module/miner(src)
|
||||
module.channels = list("Supply" = 1)
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("MINE")
|
||||
camera.add_network("MINE")
|
||||
module_sprites["Basic"] = "Miner_old"
|
||||
module_sprites["Advanced Droid"] = "droid-miner"
|
||||
module_sprites["Treadhead"] = "Miner"
|
||||
@@ -285,7 +285,7 @@ var/list/robot_verbs_default = list(
|
||||
module = new /obj/item/weapon/robot_module/crisis(src)
|
||||
module.channels = list("Medical" = 1)
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("Medical")
|
||||
camera.add_network("Medical")
|
||||
module_sprites["Basic"] = "Medbot"
|
||||
module_sprites["Standard"] = "surgeon"
|
||||
module_sprites["Advanced Droid"] = "droid-medical"
|
||||
@@ -296,7 +296,7 @@ var/list/robot_verbs_default = list(
|
||||
module = new /obj/item/weapon/robot_module/surgeon(src)
|
||||
module.channels = list("Medical" = 1)
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("Medical")
|
||||
camera.add_network("Medical")
|
||||
|
||||
module_sprites["Basic"] = "Medbot"
|
||||
module_sprites["Standard"] = "surgeon"
|
||||
@@ -318,7 +318,7 @@ var/list/robot_verbs_default = list(
|
||||
module = new /obj/item/weapon/robot_module/engineering(src)
|
||||
module.channels = list("Engineering" = 1)
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("Engineering")
|
||||
camera.add_network("Engineering")
|
||||
module_sprites["Basic"] = "Engineering"
|
||||
module_sprites["Antique"] = "engineerrobot"
|
||||
module_sprites["Landmate"] = "landmate"
|
||||
@@ -329,7 +329,7 @@ var/list/robot_verbs_default = list(
|
||||
module = new /obj/item/weapon/robot_module/construction(src)
|
||||
module.channels = list("Engineering" = 1)
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("Engineering")
|
||||
camera.add_network("Engineering")
|
||||
module_sprites["Basic"] = "Engineering"
|
||||
module_sprites["Antique"] = "engineerrobot"
|
||||
module_sprites["Landmate"] = "landmate"
|
||||
@@ -1142,7 +1142,7 @@ var/list/robot_verbs_default = list(
|
||||
scrambledcodes = 1
|
||||
//Disconnect it's camera so it's not so easily tracked.
|
||||
if(src.camera)
|
||||
src.camera.network = list()
|
||||
src.camera.clear_all_networks()
|
||||
cameranet.removeCamera(src.camera)
|
||||
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
radio = new /obj/item/device/radio/borg(src)
|
||||
camera = new /obj/machinery/camera(src)
|
||||
camera.c_tag = "Spiderbot-[real_name]"
|
||||
camera.network = list("SS13")
|
||||
camera.replace_networks(list("SS13"))
|
||||
|
||||
..()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user