mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 14:00:18 +01:00
Ports sensor monitoring program to VueUI. (#7817)
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
#define ZERO_WIDTH_SPACE "​" //prevents the UI elements from popping out of place when viewport gets too small
|
||||
|
||||
// Oxyginetion states
|
||||
#define OXYGENATION_STATE_HIGH 5
|
||||
#define OXYGENATION_STATE_NORMAL 4
|
||||
#define OXYGENATION_STATE_LOW 3
|
||||
#define OXYGENATION_STATE_VERY_LOW 2
|
||||
#define OXYGENATION_STATE_NONE 1
|
||||
#define OXYGENATION_STATE_UNDEFINED 0
|
||||
|
||||
var/global/datum/repository/crew/crew_repository = new()
|
||||
|
||||
/datum/repository/crew
|
||||
@@ -23,7 +31,8 @@ var/global/datum/repository/crew/crew_repository = new()
|
||||
return cache_entry.data
|
||||
|
||||
var/tracked = scan()
|
||||
for(var/obj/item/clothing/under/C in tracked)
|
||||
for(var/t in tracked)
|
||||
var/obj/item/clothing/under/C = t
|
||||
var/turf/pos = get_turf(C)
|
||||
if((C) && (C.has_sensor) && (pos) && (pos.z == z_level) && (C.sensor_mode != SUIT_SENSOR_OFF) && !within_jamming_range(C))
|
||||
if(istype(C.loc, /mob/living/carbon/human))
|
||||
@@ -31,68 +40,45 @@ var/global/datum/repository/crew/crew_repository = new()
|
||||
if(H.w_uniform != C)
|
||||
continue
|
||||
|
||||
var/list/crewmemberData = list("dead"=0, "area"="", "x"=-1, "y"=-1, "z"=-1, "level"="", "ref" = "\ref[H]")
|
||||
var/list/crewmemberData = list("area"=null, "x"=null, "y"=null, "z"=null, "level"=null, "ref" = "\ref[H]")
|
||||
|
||||
crewmemberData["sensor_type"] = C.sensor_mode
|
||||
crewmemberData["stype"] = C.sensor_mode
|
||||
crewmemberData["name"] = H.get_authentification_name(if_no_id="Unknown")
|
||||
crewmemberData["rank"] = H.get_authentification_rank(if_no_id="Unknown", if_no_job="No Job")
|
||||
crewmemberData["assignment"] = H.get_assignment(if_no_id="Unknown", if_no_job="No Job")
|
||||
crewmemberData["ass"] = H.get_assignment(if_no_id="Unknown", if_no_job="No Job")
|
||||
|
||||
if(C.sensor_mode >= SUIT_SENSOR_BINARY)
|
||||
crewmemberData["dead"] = H.stat > UNCONSCIOUS
|
||||
|
||||
if(C.sensor_mode >= SUIT_SENSOR_VITAL)
|
||||
crewmemberData["pulse"] = "N/A"
|
||||
crewmemberData["pulse_span"] = "neutral"
|
||||
crewmemberData["true_pulse"] = -1
|
||||
crewmemberData["tpulse"] = -1
|
||||
if(!H.isSynthetic() && H.should_have_organ(BP_HEART))
|
||||
var/obj/item/organ/internal/heart/O = H.internal_organs_by_name[BP_HEART]
|
||||
if (!O || !BP_IS_ROBOTIC(O)) // Don't make medical freak out over prosthetic hearts
|
||||
crewmemberData["true_pulse"] = H.pulse()
|
||||
crewmemberData["tpulse"] = H.pulse()
|
||||
crewmemberData["pulse"] = H.get_pulse(GETPULSE_TOOL)
|
||||
switch(crewmemberData["true_pulse"])
|
||||
if(PULSE_NONE)
|
||||
crewmemberData["pulse_span"] = "bad"
|
||||
if(PULSE_SLOW)
|
||||
crewmemberData["pulse_span"] = "average"
|
||||
if(PULSE_NORM)
|
||||
crewmemberData["pulse_span"] = "good"
|
||||
if(PULSE_FAST)
|
||||
crewmemberData["pulse_span"] = "highlight"
|
||||
if(PULSE_2FAST)
|
||||
crewmemberData["pulse_span"] = "average"
|
||||
if(PULSE_THREADY)
|
||||
crewmemberData["pulse_span"] = "bad"
|
||||
|
||||
if(C.sensor_mode >= SUIT_SENSOR_VITAL)
|
||||
crewmemberData["pressure"] = "N/A"
|
||||
crewmemberData["true_oxygenation"] = -1
|
||||
crewmemberData["oxygenation"] = ""
|
||||
crewmemberData["oxygenation_span"] = ""
|
||||
crewmemberData["toxyg"] = -1
|
||||
crewmemberData["oxyg"] = OXYGENATION_STATE_UNDEFINED
|
||||
if(!H.isSynthetic() && H.should_have_organ(BP_HEART))
|
||||
crewmemberData["pressure"] = H.get_blood_pressure()
|
||||
crewmemberData["true_oxygenation"] = H.get_blood_oxygenation()
|
||||
switch (crewmemberData["true_oxygenation"])
|
||||
crewmemberData["toxyg"] = H.get_blood_oxygenation()
|
||||
switch (crewmemberData["toxyg"])
|
||||
if(105 to INFINITY)
|
||||
crewmemberData["oxygenation"] = "increased"
|
||||
crewmemberData["oxygenation_span"] = "highlight"
|
||||
crewmemberData["oxyg"] = OXYGENATION_STATE_HIGH
|
||||
if(BLOOD_VOLUME_SAFE to 105)
|
||||
crewmemberData["oxygenation"] = "normal"
|
||||
crewmemberData["oxygenation_span"] = "good"
|
||||
crewmemberData["oxyg"] = OXYGENATION_STATE_NORMAL
|
||||
if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE)
|
||||
crewmemberData["oxygenation"] = "low"
|
||||
crewmemberData["oxygenation_span"] = "average"
|
||||
crewmemberData["oxyg"] = OXYGENATION_STATE_LOW
|
||||
if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY)
|
||||
crewmemberData["oxygenation"] = "very low"
|
||||
crewmemberData["oxygenation_span"] = "bad"
|
||||
crewmemberData["oxyg"] = OXYGENATION_STATE_VERY_LOW
|
||||
if(-(INFINITY) to BLOOD_VOLUME_BAD)
|
||||
crewmemberData["oxygenation"] = "extremely low"
|
||||
crewmemberData["oxygenation_span"] = "bad"
|
||||
crewmemberData["oxyg"] = OXYGENATION_STATE_NONE
|
||||
|
||||
crewmemberData["bodytemp"] = H.bodytemperature - T0C
|
||||
|
||||
if(C.sensor_mode >= SUIT_SENSOR_TRACKING)
|
||||
var/area/A = get_area(H)
|
||||
crewmemberData["area"] = sanitize(A.name)
|
||||
crewmemberData["area"] = A.name
|
||||
crewmemberData["x"] = pos.x
|
||||
crewmemberData["y"] = pos.y
|
||||
crewmemberData["z"] = pos.z
|
||||
@@ -114,4 +100,10 @@ var/global/datum/repository/crew/crew_repository = new()
|
||||
tracked |= C
|
||||
return tracked
|
||||
|
||||
#undef ZERO_WIDTH_SPACE
|
||||
#undef ZERO_WIDTH_SPACE
|
||||
#undef OXYGENATION_STATE_HIGH
|
||||
#undef OXYGENATION_STATE_NORMAL
|
||||
#undef OXYGENATION_STATE_LOW
|
||||
#undef OXYGENATION_STATE_VERY_LOW
|
||||
#undef OXYGENATION_STATE_NONE
|
||||
#undef OXYGENATION_STATE_UNDEFINED
|
||||
Reference in New Issue
Block a user