mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
NTNet Extensibility (#22908)
Fixes https://github.com/Aurorastation/Aurora.3/issues/21944 Spiritual successor of https://github.com/Aurorastation/Aurora.3/pull/22352 Cherrypicked changes from the C3 Crew Management branch, this PR contains all NTNet extensibility features, including Field Relay construction, off-site camera usage (contingent on standing up remote hardware and being out of jamming), etc. This also fixes a handful of outstanding telecomms and view/mobeye-related bugs adjacent to where I was working. changes: - rscadd: "Adds NTNet extensibility, requires new machinery constructed on away-site z-levels." - rscadd: "Breaks NTNet Relay machinery into Quantum Relay ('core' obj on Horizon) and Field Relay (deployable off-site constructions)." - qol: "Embedded cameras (basically every video camera EXCEPT those which are installed on walls) can now be viewed from NTNet-connected z-level, not just connected ones." - rscadd: "Adds several public camera monitor consoles to the Horizon (near where public sensor grid feed consoles already exist)." - rscadd: "Adds some spare camera console boards to Horizon technical storage." - qol: "Adds action button for 'cancel-camera-view' verb while viewing cameras or looking up/down z-level." - bugfix: "Fixes Jockey comms (frequency was missing from ANTAG_FREQS)." - bugfix: "Fixes look-up/look-down actions intermittently failing without first using cancel-camera-view."
This commit is contained in:
@@ -112,6 +112,10 @@ GLOBAL_DATUM(map_overmap, /area/overmap)
|
||||
for(var/obj/structure/machinery/telecomms/T in SSmachinery.all_telecomms)
|
||||
if(T.linked == src)
|
||||
T.linked = null
|
||||
if(GLOB.ntnet_global)
|
||||
for(var/obj/structure/machinery/ntnet_relay/R as anything in GLOB.ntnet_global.relays)
|
||||
if(R.linked == src)
|
||||
R.linked = null
|
||||
if(entry_points)
|
||||
entry_points.Cut()
|
||||
for(var/obj/structure/machinery/ship_weapon/SW in ship_weapons)
|
||||
@@ -150,6 +154,9 @@ GLOBAL_DATUM(map_overmap, /area/overmap)
|
||||
H.attempt_hook_up(src)
|
||||
for(var/obj/structure/machinery/telecomms/T in SSmachinery.all_telecomms)
|
||||
T.attempt_hook_up(src)
|
||||
if(GLOB.ntnet_global)
|
||||
for(var/obj/structure/machinery/ntnet_relay/R as anything in GLOB.ntnet_global.relays)
|
||||
R.attempt_hook_up(src)
|
||||
|
||||
/obj/effect/overmap/visitable/proc/get_areas()
|
||||
return get_filtered_areas(list(/proc/area_belongs_to_zlevels = map_z))
|
||||
|
||||
@@ -254,6 +254,20 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
|
||||
/obj/structure/machinery/computer/ship/proc/viewing_overmap(mob/user)
|
||||
return (WEAKREF(user) in viewers) || (linked && (WEAKREF(user) in linked.navigation_viewers))
|
||||
|
||||
/obj/structure/machinery/computer/ship/proc/unlook_all_viewers()
|
||||
if(!LAZYLEN(viewers))
|
||||
return
|
||||
|
||||
var/list/current_viewers = viewers.Copy()
|
||||
for(var/datum/weakref/W in current_viewers)
|
||||
var/mob/M = W.resolve()
|
||||
if(M)
|
||||
unlook(M)
|
||||
if(M.machine == src)
|
||||
M.unset_machine()
|
||||
else
|
||||
LAZYREMOVE(viewers, W)
|
||||
|
||||
/obj/structure/machinery/computer/ship/CouldNotUseTopic(mob/user)
|
||||
. = ..()
|
||||
unlook(user)
|
||||
@@ -274,6 +288,7 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
|
||||
return SEE_THRU
|
||||
|
||||
/obj/structure/machinery/computer/ship/Destroy()
|
||||
unlook_all_viewers()
|
||||
if(linked)
|
||||
linked = null
|
||||
if(connected)
|
||||
@@ -284,13 +299,6 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
|
||||
sensor_ref = null
|
||||
identification = null
|
||||
QDEL_NULL(sound_token)
|
||||
if(LAZYLEN(viewers))
|
||||
for(var/datum/weakref/W in viewers)
|
||||
var/M = W.resolve()
|
||||
if(M)
|
||||
unlook(M)
|
||||
if(linked)
|
||||
LAZYREMOVE(linked.navigation_viewers, W)
|
||||
. = ..()
|
||||
|
||||
/obj/structure/machinery/computer/ship/on_user_login(mob/M)
|
||||
|
||||
Reference in New Issue
Block a user