mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-12 10:42:37 +00:00
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑
89 lines
3.4 KiB
Plaintext
89 lines
3.4 KiB
Plaintext
/// Scan the turf where the computer is on.
|
|
#define ATMOZPHERE_SCAN_ENV "env"
|
|
/// Scan the objects that the tablet clicks.
|
|
#define ATMOZPHERE_SCAN_CLICK "click"
|
|
|
|
/datum/computer_file/program/atmosscan
|
|
filename = "atmosscan"
|
|
filedesc = "AtmoZphere"
|
|
downloader_category = PROGRAM_CATEGORY_ENGINEERING
|
|
program_open_overlay = "air"
|
|
extended_desc = "A small built-in sensor reads out the atmospheric conditions around the device."
|
|
size = 4
|
|
tgui_id = "NtosGasAnalyzer"
|
|
program_icon = "thermometer-half"
|
|
|
|
/// Whether we scan the current turf automatically (env) or scan tapped objects manually (click).
|
|
var/atmozphere_mode = ATMOZPHERE_SCAN_ENV
|
|
/// Saved [GasmixParser][/proc/gas_mixture_parser] data of the last thing we scanned.
|
|
var/list/last_gasmix_data
|
|
|
|
/// Secondary attack self.
|
|
/datum/computer_file/program/atmosscan/proc/turf_analyze(datum/source, mob/user)
|
|
SIGNAL_HANDLER
|
|
if(atmozphere_mode != ATMOZPHERE_SCAN_CLICK)
|
|
return
|
|
atmos_scan(user=user, target=get_turf(computer), silent=FALSE)
|
|
on_analyze(source=source, target=get_turf(computer))
|
|
return COMPONENT_CANCEL_ATTACK_CHAIN
|
|
|
|
/// Keep this in sync with its tool based counterpart [/obj/proc/analyzer_act] and [/atom/proc/tool_act]
|
|
/datum/computer_file/program/atmosscan/tap(atom/A, mob/living/user, params)
|
|
if(atmozphere_mode != ATMOZPHERE_SCAN_CLICK)
|
|
return FALSE
|
|
if(!atmos_scan(user=user, target=A, silent=FALSE))
|
|
return FALSE
|
|
on_analyze(source=computer, target=A)
|
|
return TRUE
|
|
|
|
/// Updates our gasmix data if on click mode.
|
|
/datum/computer_file/program/atmosscan/proc/on_analyze(datum/source, atom/target)
|
|
var/mixture = target.return_analyzable_air()
|
|
if(!mixture)
|
|
return FALSE
|
|
var/list/airs = islist(mixture) ? mixture : list(mixture)
|
|
var/list/new_gasmix_data = list()
|
|
for(var/datum/gas_mixture/air as anything in airs)
|
|
var/mix_name = capitalize(LOWER_TEXT(target.name))
|
|
if(airs.len != 1) //not a unary gas mixture
|
|
mix_name += " - Node [airs.Find(air)]"
|
|
new_gasmix_data += list(gas_mixture_parser(air, mix_name))
|
|
last_gasmix_data = new_gasmix_data
|
|
|
|
/datum/computer_file/program/atmosscan/ui_static_data(mob/user)
|
|
return return_atmos_handbooks()
|
|
|
|
/datum/computer_file/program/atmosscan/ui_data(mob/user)
|
|
var/list/data = list()
|
|
var/turf/turf = get_turf(computer)
|
|
data["atmozphereMode"] = atmozphere_mode
|
|
data["clickAtmozphereCompatible"] = (computer.hardware_flag & PROGRAM_PDA)
|
|
switch (atmozphere_mode) //Null air wont cause errors, don't worry.
|
|
if(ATMOZPHERE_SCAN_ENV)
|
|
var/datum/gas_mixture/air = turf?.return_air()
|
|
data["gasmixes"] = list(gas_mixture_parser(air, "Location Reading"))
|
|
if(ATMOZPHERE_SCAN_CLICK)
|
|
LAZYINITLIST(last_gasmix_data)
|
|
data["gasmixes"] = last_gasmix_data
|
|
return data
|
|
|
|
/datum/computer_file/program/atmosscan/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
|
|
. = ..()
|
|
switch(action)
|
|
if("scantoggle")
|
|
if(atmozphere_mode == ATMOZPHERE_SCAN_CLICK)
|
|
atmozphere_mode = ATMOZPHERE_SCAN_ENV
|
|
UnregisterSignal(computer, COMSIG_ITEM_ATTACK_SELF_SECONDARY)
|
|
return TRUE
|
|
if(!(computer.hardware_flag & PROGRAM_PDA))
|
|
computer.say("Device incompatible for scanning objects!")
|
|
return FALSE
|
|
atmozphere_mode = ATMOZPHERE_SCAN_CLICK
|
|
RegisterSignal(computer, COMSIG_ITEM_ATTACK_SELF_SECONDARY, PROC_REF(turf_analyze))
|
|
var/turf/turf = get_turf(computer)
|
|
last_gasmix_data = list(gas_mixture_parser(turf?.return_air(), "Location Reading"))
|
|
return TRUE
|
|
|
|
#undef ATMOZPHERE_SCAN_ENV
|
|
#undef ATMOZPHERE_SCAN_CLICK
|