/datum/atom_hud
Vars | |
hud_atoms | associative list of the form: list(z level = list(hud atom)). tracks what hud atoms for this hud exists in what z level so we can only give users the hud images that they can actually see. |
---|---|
hud_atoms_all_z_levels | used for signal tracking purposes, associative list of the form: list(hud atom = TRUE) that isnt separated by z level |
hud_exceptions | huduser = list(atoms with their hud hidden) - aka everyone hates targeted invisiblity |
hud_icons | these will be the indexes for the atom's hud_list |
hud_users | associative list of the form: list(z level = list(hud user client mobs)). tracks mobs that can "see" us |
hud_users_all_z_levels | used for signal tracking purposes, associative list of the form: list(hud user = number of times this hud was added to this user). that isnt separated by z level |
next_time_allowed | mobs associated with the next time this hud can be added to them |
queued_to_see | mobs that have triggered the cooldown and are queued to see the hud, but do not yet |
uses_global_hud_category | whether or not this atom_hud type updates the global huds_by_category list. some subtypes cant work like this since theyre supposed to "belong" to one target atom each. it will still go in the other global hud lists. |
Procs | |
add_all_atoms_to_single_mob_hud | all passed in hud_atoms's hud images (that are part of this atom_hud) to requesting_mob's client.images list optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list |
add_atom_to_all_mob_huds | add just hud_atom's hud images (that are part of this atom_hud) to all the requesting_mobs's client.images list optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list |
add_atom_to_hud | add new_hud_atom to this hud |
add_atom_to_single_mob_hud | add just hud_atom's hud images (that are part of this atom_hud) to requesting_mob's client.images list |
add_single_hud_category_on_atom | adds a newly active hud category's image on a hud atom to every mob that could see it |
get_hud_atoms_for_z_level | returns a list of all hud atoms in the given z level and linked lower z levels (because hud users in higher z levels can see below) |
get_hud_users_for_z_level | returns a list of all hud users in the given z level and linked upper z levels (because hud users in higher z levels can see below) |
hide_from | Hides the images in this hud from former_viewer If absolute is set to true, this will forcefully remove the hud, even if sources in theory remain |
on_atom_or_user_z_level_changed | when a hud atom or hud user changes z levels this makes sure it gets the images it needs and removes the images it doesnt need. because of how signals work we need the same proc to handle both use cases because being a hud atom and being a hud user arent mutually exclusive |
remove_all_atoms_from_single_hud | remove every hud image for this hud pulled from atoms_to_remove from client_mob's client.images list optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list |
remove_atom_from_all_huds | remove every hud image for this hud on atom_to_remove from client_mobs's client.images list optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list |
remove_atom_from_hud | remove this atom from this hud completely |
remove_atom_from_single_hud | remove every hud image for this hud on atom_to_remove from client_mob's client.images list |
remove_single_hud_category_on_atom | removes the image or images in hud_atom.hud_list[hud_category_to_remove] from every mob that can see it but leaves every other image from that atom there. |
show_to | show this hud to the passed in user |
Var Details
hud_atoms
associative list of the form: list(z level = list(hud atom)). tracks what hud atoms for this hud exists in what z level so we can only give users the hud images that they can actually see.
hud_atoms_all_z_levels
used for signal tracking purposes, associative list of the form: list(hud atom = TRUE) that isnt separated by z level
hud_exceptions
huduser = list(atoms with their hud hidden) - aka everyone hates targeted invisiblity
hud_icons
these will be the indexes for the atom's hud_list
hud_users
associative list of the form: list(z level = list(hud user client mobs)). tracks mobs that can "see" us
hud_users_all_z_levels
used for signal tracking purposes, associative list of the form: list(hud user = number of times this hud was added to this user). that isnt separated by z level
next_time_allowed
mobs associated with the next time this hud can be added to them
queued_to_see
mobs that have triggered the cooldown and are queued to see the hud, but do not yet
uses_global_hud_category
whether or not this atom_hud type updates the global huds_by_category list. some subtypes cant work like this since theyre supposed to "belong" to one target atom each. it will still go in the other global hud lists.
Proc Details
add_all_atoms_to_single_mob_hud
all passed in hud_atoms's hud images (that are part of this atom_hud) to requesting_mob's client.images list optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list
add_atom_to_all_mob_huds
add just hud_atom's hud images (that are part of this atom_hud) to all the requesting_mobs's client.images list optimization of /datum/atom_hud/proc/add_atom_to_single_mob_hud for hot cases, we assert that no nulls will be passed in via the list
add_atom_to_hud
add new_hud_atom to this hud
add_atom_to_single_mob_hud
add just hud_atom's hud images (that are part of this atom_hud) to requesting_mob's client.images list
add_single_hud_category_on_atom
adds a newly active hud category's image on a hud atom to every mob that could see it
get_hud_atoms_for_z_level
returns a list of all hud atoms in the given z level and linked lower z levels (because hud users in higher z levels can see below)
get_hud_users_for_z_level
returns a list of all hud users in the given z level and linked upper z levels (because hud users in higher z levels can see below)
hide_from
Hides the images in this hud from former_viewer If absolute is set to true, this will forcefully remove the hud, even if sources in theory remain
on_atom_or_user_z_level_changed
when a hud atom or hud user changes z levels this makes sure it gets the images it needs and removes the images it doesnt need. because of how signals work we need the same proc to handle both use cases because being a hud atom and being a hud user arent mutually exclusive
remove_all_atoms_from_single_hud
remove every hud image for this hud pulled from atoms_to_remove from client_mob's client.images list optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list
remove_atom_from_all_huds
remove every hud image for this hud on atom_to_remove from client_mobs's client.images list optimization of /datum/atom_hud/proc/remove_atom_from_single_hud for hot cases, we assert that no nulls will be passed in via the list
remove_atom_from_hud
remove this atom from this hud completely
remove_atom_from_single_hud
remove every hud image for this hud on atom_to_remove from client_mob's client.images list
remove_single_hud_category_on_atom
removes the image or images in hud_atom.hud_list[hud_category_to_remove] from every mob that can see it but leaves every other image from that atom there.
show_to
show this hud to the passed in user