/tg/ Station 13 - Modules - TypesVar Details - Proc Details

reagents

////////////////////////////Main reagents code///////////////////////////////////////////// Holder for a bunch of /datum/reagent

Vars

chem_tempCurrent temp of the holder volume
failed_but_capable_reactionsIf a reaction fails due to temperature or pH, this tracks the required temperature or pH for it to be enabled.
flagsvarious flags, see code__DEFINES\reagents.dm
is_reactingHard check to see if the reagents is presently reacting
last_tickunused
maximum_volumeMax volume of this holder
my_atomThe atom this holder is attached to
phpH of the whole system
previous_reagent_listcached list of reagents typepaths (not object references), this is a lazylist for optimisation
reaction_listlist of reactions currently on going, this is a lazylist for optimisation
reagent_listThe reagents being held
total_volumeCurrent volume of all the reagents
ui_beaker_syncIf we're syncing with the beaker - so return reactions that are actively happening
ui_reaction_idUI lookup stuff Keeps the id of the reaction displayed in the ui
ui_reaction_indexWhat index we're at if we have multiple reactions for a reagent product
ui_reagent_idKeeps the id of the reagent displayed in the ui
ui_tags_selectedThe bitflag of the currently selected tags in the ui

Procs

add_reagentAdds a reagent to this holder
add_reagent_listLike add_reagent but you can enter a list. Format it like this: list(/datum/reagent/toxin = 10, "beer" = 15)
adjust_thermal_energy
clear_reagentsRemoves all reagents
conditional_updateCalls /datum/reagent/proc/on_update on every reagent in this holder
conditional_update_moveCalls /datum/reagent/proc/on_move on every reagent in this holder
copy_dataShallow copies (deep copy of viruses) data from the provided reagent into our copy of that reagent
copy_toCopies the reagents to the target object
del_reagentFuck this one reagent
determine_reaction_thermicsReturns a string descriptor of a reactions themic_constant
end_metabolizationSignals that metabolization has stopped, triggering the end of trait-based effects
exposeApplies the relevant expose_ proc for every reagent in this holder
expose_singleSame as /datum/reagents/proc/expose but only for one reagent
expose_temperatureApplies heat to this holder
generate_taste_messageReturns what this holder's reagents taste like
generate_thermodynamic_profileGenerates a (rough) rate vs temperature graph profile
get_datahelper function to preserve data across reactions (needed for xenoarch)
get_master_reagentGet a reference to the reagent there is the most of in this holder
get_master_reagent_idGet the id of the reagent there is the most of in this holder
get_master_reagent_nameGet the name of the reagent there is the most of in this holder
get_priority_instant_reactionPossibly remove - see if multiple instant reactions is okay (Though, this "sorts" reactions by temp decending) Presently unused
get_reagentGet a reference to the reagent if it exists
get_reagent_amountGet the amount of this reagent
get_reagent_namesGet a comma separated string of every reagent name in this holder. UNUSED
get_reagent_purityGet the purity of this reagent
handle_reactionsHandle any reactions possible in this holder Also UPDATES the reaction list High potential for infinite loopsa if you're editing this.
has_changed_stateChecks to see if the reagents has a difference in reagents_list and previous_reagent_list (I.e. if there's a difference between the previous call and the last) Also checks to see if the saved reactions in failed_but_capable_reactions can start as a result of temp/pH change
has_reagentCheck if this holder contains this reagent. Reagent takes a PATH to a reagent. Amount checks for having a specific amount of that chemical. Needs matabolizing takes into consideration if the chemical is matabolizing when it's checked.
heat_capacityReturns the total heat capacity for all of the reagents currently in this holder.
holder_fullIs this holder full or not
instant_reactOld reaction mechanics, edited to work on one only This is changed from the old - purity of the reagents will affect yield
isolate_reagentRemove every reagent except this one
log_listUsed in attack logs for reagents in pills and such
metabolizeTriggers metabolizing the reagents in this holder
multiply_reagentsMultiplies the reagents inside this holder by a specific amount
remove_allRemoves all reagents from this holder
remove_all_typeRemoves all reagent of X type. @strict set to 1 determines whether the childs of the type are included.
remove_anyRemove an amount of reagents without caring about what they are
remove_reagentRemove a specific reagent
set_datahelper function to preserve data across reactions (needed for xenoarch)
set_temperature
trans_id_toTransfer a specific reagent id to the target object
trans_toTransfer some stuff from this holder to a target object
ui_interactUI / REAGENTS LOOKUP CODE
update_totalUpdates /datum/reagents/var/total_volume

Var Details

chem_temp

Current temp of the holder volume

failed_but_capable_reactions

If a reaction fails due to temperature or pH, this tracks the required temperature or pH for it to be enabled.

flags

various flags, see code__DEFINES\reagents.dm

is_reacting

Hard check to see if the reagents is presently reacting

last_tick

unused

maximum_volume

Max volume of this holder

my_atom

The atom this holder is attached to

ph

pH of the whole system

previous_reagent_list

cached list of reagents typepaths (not object references), this is a lazylist for optimisation

reaction_list

list of reactions currently on going, this is a lazylist for optimisation

reagent_list

The reagents being held

total_volume

Current volume of all the reagents

ui_beaker_sync

If we're syncing with the beaker - so return reactions that are actively happening

ui_reaction_id

UI lookup stuff Keeps the id of the reaction displayed in the ui

ui_reaction_index

What index we're at if we have multiple reactions for a reagent product

ui_reagent_id

Keeps the id of the reagent displayed in the ui

ui_tags_selected

The bitflag of the currently selected tags in the ui

Proc Details

add_reagent

Adds a reagent to this holder

Arguments:

add_reagent_list

Like add_reagent but you can enter a list. Format it like this: list(/datum/reagent/toxin = 10, "beer" = 15)

adjust_thermal_energy

clear_reagents

Removes all reagents

conditional_update

Calls /datum/reagent/proc/on_update on every reagent in this holder

Arguments:

conditional_update_move

Calls /datum/reagent/proc/on_move on every reagent in this holder

Arguments:

copy_data

Shallow copies (deep copy of viruses) data from the provided reagent into our copy of that reagent

copy_to

Copies the reagents to the target object

del_reagent

Fuck this one reagent

determine_reaction_thermics

Returns a string descriptor of a reactions themic_constant

end_metabolization

Signals that metabolization has stopped, triggering the end of trait-based effects

expose

Applies the relevant expose_ proc for every reagent in this holder

Arguments

expose_single

Same as /datum/reagents/proc/expose but only for one reagent

expose_temperature

Applies heat to this holder

generate_taste_message

Returns what this holder's reagents taste like

Arguments:

generate_thermodynamic_profile

Generates a (rough) rate vs temperature graph profile

get_data

helper function to preserve data across reactions (needed for xenoarch)

get_master_reagent

Get a reference to the reagent there is the most of in this holder

get_master_reagent_id

Get the id of the reagent there is the most of in this holder

get_master_reagent_name

Get the name of the reagent there is the most of in this holder

get_priority_instant_reaction

Possibly remove - see if multiple instant reactions is okay (Though, this "sorts" reactions by temp decending) Presently unused

get_reagent

Get a reference to the reagent if it exists

get_reagent_amount

Get the amount of this reagent

get_reagent_names

Get a comma separated string of every reagent name in this holder. UNUSED

get_reagent_purity

Get the purity of this reagent

handle_reactions

Handle any reactions possible in this holder Also UPDATES the reaction list High potential for infinite loopsa if you're editing this.

has_changed_state

Checks to see if the reagents has a difference in reagents_list and previous_reagent_list (I.e. if there's a difference between the previous call and the last) Also checks to see if the saved reactions in failed_but_capable_reactions can start as a result of temp/pH change

has_reagent

Check if this holder contains this reagent. Reagent takes a PATH to a reagent. Amount checks for having a specific amount of that chemical. Needs matabolizing takes into consideration if the chemical is matabolizing when it's checked.

heat_capacity

Returns the total heat capacity for all of the reagents currently in this holder.

holder_full

Is this holder full or not

instant_react

Old reaction mechanics, edited to work on one only This is changed from the old - purity of the reagents will affect yield

isolate_reagent

Remove every reagent except this one

log_list

Used in attack logs for reagents in pills and such

Arguments:

metabolize

Triggers metabolizing the reagents in this holder

Arguments:

multiply_reagents

Multiplies the reagents inside this holder by a specific amount

remove_all

Removes all reagents from this holder

remove_all_type

Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included.

remove_any

Remove an amount of reagents without caring about what they are

remove_reagent

Remove a specific reagent

set_data

helper function to preserve data across reactions (needed for xenoarch)

set_temperature

trans_id_to

Transfer a specific reagent id to the target object

trans_to

Transfer some stuff from this holder to a target object

Arguments:

ui_interact

UI / REAGENTS LOOKUP CODE

update_total

Updates /datum/reagents/var/total_volume