Space Station 13 - Modules - TypesVar Details - Proc Details

atom

Vars

alternate_appearancesThe alternate appearances we own. Lazylist
base_icon_stateUsed for changing icon states for different base sprites.
bottom_left_cornerSmoothing variable
bottom_right_cornerSmoothing variable
canSmoothWithList of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.
chat_colorLast color calculated for the the chatmessage overlays. Used for caching.
chat_color_nameLast name used to calculate a color for the chatmessage overlays. Used for caching.
container_typeChemistry.
dont_savewhat icon the mob uses for speechbubbles
drag_startContains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something
filter_dataFor handling persistent filters
light_powerIntensity of the light. Can be negative to remove light
managed_overlaysoverlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
map_json_dataThis var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH
pass_flags_selfpass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.
rad_insulationRadiation insulation types
smoothing_flagsIcon-smoothing behavior.
smoothing_groupsWhat smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.
smoothing_junctionWhat directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
suit_fibersMaterials scannable by detective
top_left_cornerSmoothing variable
top_right_cornerSmoothing variable
viewing_alternate_appearancesThe alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist

Procs

AltClickNoInteractUse this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction
CanPathfindPassThis proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.
TopicPasses Stat Browser Panel clicks to the game and calls client click on an atom
acid_actRespond to acid being used on our atom
after_slipBase proc, intended to be overriden.
bitmask_smoothBasic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.
calculate_adjacenciesScans all adjacent turfs to find targets to smooth with.
clean_radiationRemoves some radiation from an atom
contents_ui_distancepublic
defileBegin defile and malfunction on-atom definitions
emag_actThis is when an atom is emagged. Should return false if it fails, or it has no emag_act defined.
emp_actProc which will make the atom act accordingly to an EMP. This proc can sleep depending on the implementation. So assume it sleeps!
find_type_in_directionScans direction to find targets to smooth with.
get_orbitersSimple helper proc to get a list of everything directly orbiting the current atom, without checking contents, or null if nothing is.
get_orbiters_recursiveRecursive getter method to return a list of all ghosts transitively orbiting this atom. This will find orbiters either directly orbiting the followed atom, or any orbiters orbiting them (and so on).
get_orbiters_up_hierarchyCheck every object in the hierarchy above ourselves for orbiters, and return the full list of them. If an object is being held in a backpack, returns orbiters of the backpack, the person If recursive == TRUE, this will also check recursively through any ghosts seen to make sure we find everything upstream
get_runechat_colorProc to allow atoms to set their own runechat colour
hit_by_thrown_mobThis proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..()
is_drainableIs this atom drainable of reagents
is_drawableCan we draw from this atom with an injectable atom
is_injectableIs this atom injectable into other atoms
is_open_containerConvenience proc to see if a container is open for chemistry handling
is_refillableCan this atoms reagents be refilled
mech_melee_attackHandle melee attack by a mech
persistent_loadAtom Persistent Loader
persistent_saveAtom Persistent Saver
rad_actRespond to a radioactive wave hitting this atom
ray_filter_helperUsed to create rays on an item. Make sure to removefilter("rays") when done with it
remove_orbiterRemove an orbiter from the atom it's orbiting.
rename_interactive
set_smoothed_icon_stateChanges the icon state based on the new junction bitmask. Returns the old junction value.
shuttleRotateBase proc
storage_depthReturns the storage depth of an atom up to the area level.
storage_depth_turfLike /atom/proc/storage_depth, but returns the depth to the nearest turf.
update_appearanceExtended description of an object. Allows you to double examine objects and have them give you a second description of an item. Useful for writing flavourful stuff. Updates the appearence of the icon
update_descUpdates the description of the atom
update_iconUpdates the icon of the atom
update_icon_stateUpdates the icon state of the atom
update_nameSignal sent should the appearance be updated. This is more broad if listening to a more specific signal doesn't cut it Updates the name of the atom
update_overlaysUpdates the overlays of the atom. It has to return a list of overlays if it can't call the parent to create one. The list can contain anything that would be valid for the add_overlay proc: Images, mutable appearances, icon states...
zap_actRespond to an electric bolt action on our item

Var Details

alternate_appearances

The alternate appearances we own. Lazylist

base_icon_state

Used for changing icon states for different base sprites.

bottom_left_corner

Smoothing variable

bottom_right_corner

Smoothing variable

canSmoothWith

List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.

chat_color

Last color calculated for the the chatmessage overlays. Used for caching.

chat_color_name

Last name used to calculate a color for the chatmessage overlays. Used for caching.

container_type

Chemistry.

dont_save

what icon the mob uses for speechbubbles

drag_start

Contains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something

filter_data

For handling persistent filters

light_power

Intensity of the light. Can be negative to remove light

managed_overlays

overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.

map_json_data

This var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH

pass_flags_self

pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.

rad_insulation

Radiation insulation types

smoothing_flags

Icon-smoothing behavior.

smoothing_groups

What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.

smoothing_junction

What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.

suit_fibers

Materials scannable by detective

top_left_corner

Smoothing variable

top_right_corner

Smoothing variable

viewing_alternate_appearances

The alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist

Proc Details

AltClickNoInteract

Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction

CanPathfindPass

This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.

Trying to generate one long path across the station will call this proc on every single object on every single tile that we're seeing if we can move through, likely multiple times per tile since we're likely checking if we can access said tile from multiple directions, so keep these as lightweight as possible.

For turfs this will only be used if pathing_pass_method is TURF_PATHING_PASS_PROC

Arguments:

Topic

Passes Stat Browser Panel clicks to the game and calls client click on an atom

acid_act

Respond to acid being used on our atom

Default behaviour is to send COMSIG_ATOM_ACID_ACT and return

after_slip

Base proc, intended to be overriden.

This should only be called from one place: inside the slippery component. Called after a human mob slips on this atom.

If you want the person who slipped to have something special done to them, put it here.

bitmask_smooth

Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.

Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any.

Objects override this to prevent unanchored objects from smoothing, see /obj/bitmask_smooth()

calculate_adjacencies

Scans all adjacent turfs to find targets to smooth with.

clean_radiation

Removes some radiation from an atom

Removes a configurable amount of radiation from an atom and stops green glow if radiation gets low enough through it. Arguments:

contents_ui_distance

public

Check the distance for a living mob. Really only used for checks outside the context of a mob. Otherwise, use shared_living_ui_distance().

required src_object The object which owns the UI. required user mob The mob who opened/is using the UI.

return UI_state The state of the UI.

defile

Begin defile and malfunction on-atom definitions

emag_act

This is when an atom is emagged. Should return false if it fails, or it has no emag_act defined.

emp_act

Proc which will make the atom act accordingly to an EMP. This proc can sleep depending on the implementation. So assume it sleeps!

severity - The severity of the EMP. Either EMP_HEAVY or EMP_LIGHT

find_type_in_direction

Scans direction to find targets to smooth with.

get_orbiters

Simple helper proc to get a list of everything directly orbiting the current atom, without checking contents, or null if nothing is.

get_orbiters_recursive

Recursive getter method to return a list of all ghosts transitively orbiting this atom. This will find orbiters either directly orbiting the followed atom, or any orbiters orbiting them (and so on).

This shouldn't be passed arugments.

get_orbiters_up_hierarchy

Check every object in the hierarchy above ourselves for orbiters, and return the full list of them. If an object is being held in a backpack, returns orbiters of the backpack, the person If recursive == TRUE, this will also check recursively through any ghosts seen to make sure we find everything upstream

get_runechat_color

Proc to allow atoms to set their own runechat colour

This is a proc designed to be overridden in places if you want a specific atom to use a specific runechat colour Exampls include consoles using a colour based on their screen colour, and mobs using a colour based off of a customisation property

hit_by_thrown_mob

This proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..()

is_drainable

Is this atom drainable of reagents

is_drawable

Can we draw from this atom with an injectable atom

is_injectable

Is this atom injectable into other atoms

is_open_container

Convenience proc to see if a container is open for chemistry handling

is_refillable

Can this atoms reagents be refilled

mech_melee_attack

Handle melee attack by a mech

persistent_load

Atom Persistent Loader

Overridden on every atom which needs to load persistent data

persistent_save

Atom Persistent Saver

Overridden on every atom which needs to save persistent data

rad_act

Respond to a radioactive wave hitting this atom

Default behaviour is to send COMSIG_ATOM_RAD_ACT and return

ray_filter_helper

Used to create rays on an item. Make sure to removefilter("rays") when done with it

remove_orbiter

Remove an orbiter from the atom it's orbiting.

rename_interactive

set_smoothed_icon_state

Changes the icon state based on the new junction bitmask. Returns the old junction value.

shuttleRotate

Base proc

storage_depth

Returns the storage depth of an atom up to the area level.

The storage depth is the number of storage items the atom is contained in. Returns -1 if the atom was not found in a container.

storage_depth_turf

Like /atom/proc/storage_depth, but returns the depth to the nearest turf.

Returns -1 if there's no top level turf. (A loc was null somewhere, or a non-turf atom's loc was an area somehow.)

update_appearance

Extended description of an object. Allows you to double examine objects and have them give you a second description of an item. Useful for writing flavourful stuff. Updates the appearence of the icon

Mostly delegates to update_name, update_desc, and update_icon

Arguments:

update_desc

Updates the description of the atom

update_icon

Updates the icon of the atom

update_icon_state

Updates the icon state of the atom

update_name

Signal sent should the appearance be updated. This is more broad if listening to a more specific signal doesn't cut it Updates the name of the atom

update_overlays

Updates the overlays of the atom. It has to return a list of overlays if it can't call the parent to create one. The list can contain anything that would be valid for the add_overlay proc: Images, mutable appearances, icon states...

zap_act

Respond to an electric bolt action on our item

Default behaviour is to return, we define here to allow for cleaner code later on