/datum/liquid_group

Vars | |
always_evaporates | Liquids in this group will always evaporate regardless of height |
---|---|
burning_members | list of all current burning members of our group |
cached_edge_turfs | list of cached edge turfs with a sublist of directions stored |
cached_fire_spreads | list of cached spreadable turfs for each burning member |
cached_reagent_list | list of old reagents |
cached_temperature_shift | cached temperature between turfs recalculated on group_process |
can_merge | can we merge? |
color | the generated color given to the group on creation for debugging |
current_temperature_queue | this groups list of currently running turfs, we iterate over this to stop redundancy |
evaporates | do we evaporate |
evaporation_multiplier | The multiplier added to the evaporation rate of all reagents in this group. |
expected_turf_height | the expected height of all the collective turfs |
exposure | do we have any containing expose turf chemicals with volume to look for? |
failed_death_check | have we failed a process? if so we are added to a death check so it will gracefully die on its own |
group_alpha | the calculated alpha cache for our group |
group_burn_power | the burn power of our group, used to determine how strong we burn each process_fire() |
group_burn_rate | the amount of reagents we attempt to burn each process_fire() |
group_color | the generated color used to apply coloring to all the members |
group_fire_state | the icon state of our fire |
group_overlay_state | the icon state our group currently uses |
group_temperature | the calculated temperature cache for our group |
group_viscosity | the viscosity of our group, determines how much we can spread with our total reagent pool, higher means less turfs per reagent |
loss_precent | number in decimal value that acts as a multiplier to the amount of liquids lost in applications |
members | list of all current members of the group saved in true/false format |
merging | are we currently attempting a merge? if so don't process groups |
reagents | our reagent holder, where the entire liquid groups reagents are stored |
reagents_per_turf | a cached value of our reagents per turf, used to determine liquid height and state |
slippery | are we slippery |
splitting_array | array generated by bulk splitting |
temperature_shift_needs_action | does temperature need action |
total_reagent_volume | A saved variable of the total reagent volumes to avoid calling reagents.total_volume constantly |
turf_reagents | our reagent holder for a single turf |
Procs | |
New | NEW/DESTROY |
add_to_group | GROUP CONTROLLING |
check_adjacency | EDGE COLLECTION AND PROCESSING |
check_liquid_removal | REAGENT ADD/REMOVAL HANDLING |
cleanse_members | change the location of explosions and sounds every group process |
copy_properties | Someone made a massive fucky wucky if this is happening |
expose_members_turf | asses the group to see if it should exist EXPOSURE AND SPREADING |
get_group_burn | Fire Related Procs / Handling |
process_group | PROCESSING |
remove_from_group | each turf will hold 1000 units plus the base amount spread across the group |
return_connected_liquids | SPLITING PROCS AND RETURNING CONNECTED PROCS |
return_connected_liquids_in_range | the current queue the turfs that we have previously visited with unique ids the turf object the liquid resides on compares after each iteration to see if we even need to continue |
try_bulk_split | the section is a little funky, as if say a cross shaped liquid removal occurs this will leave 3 of them in the same group, not a big deal as this only affects turfs that are like 5 tiles total if there is only 1 adjacent liquid it physically can't split asses the group to see if it should exist |
try_split | the current queue the turfs that we have previously visited with unique ids the turf object the liquid resides on compares after each iteration to see if we even need to continue |
work_on_split_queue | we try and work on the split queue from this point on |
Var Details
always_evaporates

Liquids in this group will always evaporate regardless of height
burning_members

list of all current burning members of our group
cached_edge_turfs

list of cached edge turfs with a sublist of directions stored
cached_fire_spreads

list of cached spreadable turfs for each burning member
cached_reagent_list

list of old reagents
cached_temperature_shift

cached temperature between turfs recalculated on group_process
can_merge

can we merge?
color

the generated color given to the group on creation for debugging
current_temperature_queue

this groups list of currently running turfs, we iterate over this to stop redundancy
evaporates

do we evaporate
evaporation_multiplier

The multiplier added to the evaporation rate of all reagents in this group.
expected_turf_height

the expected height of all the collective turfs
exposure

do we have any containing expose turf chemicals with volume to look for?
failed_death_check

have we failed a process? if so we are added to a death check so it will gracefully die on its own
group_alpha

the calculated alpha cache for our group
group_burn_power

the burn power of our group, used to determine how strong we burn each process_fire()
group_burn_rate

the amount of reagents we attempt to burn each process_fire()
group_color

the generated color used to apply coloring to all the members
group_fire_state

the icon state of our fire
group_overlay_state

the icon state our group currently uses
group_temperature

the calculated temperature cache for our group
group_viscosity

the viscosity of our group, determines how much we can spread with our total reagent pool, higher means less turfs per reagent
loss_precent

number in decimal value that acts as a multiplier to the amount of liquids lost in applications
members

list of all current members of the group saved in true/false format
merging

are we currently attempting a merge? if so don't process groups
reagents

our reagent holder, where the entire liquid groups reagents are stored
reagents_per_turf

a cached value of our reagents per turf, used to determine liquid height and state
slippery

are we slippery
splitting_array

array generated by bulk splitting
temperature_shift_needs_action

does temperature need action
total_reagent_volume

A saved variable of the total reagent volumes to avoid calling reagents.total_volume constantly
turf_reagents

our reagent holder for a single turf
Proc Details
New
NEW/DESTROY
add_to_group
GROUP CONTROLLING
check_adjacency
EDGE COLLECTION AND PROCESSING
check_liquid_removal
REAGENT ADD/REMOVAL HANDLING
cleanse_members
change the location of explosions and sounds every group process
copy_properties
Someone made a massive fucky wucky if this is happening
expose_members_turf
asses the group to see if it should exist EXPOSURE AND SPREADING
get_group_burn
Fire Related Procs / Handling
process_group
PROCESSING
remove_from_group
each turf will hold 1000 units plus the base amount spread across the group
return_connected_liquids
SPLITING PROCS AND RETURNING CONNECTED PROCS
return_connected_liquids_in_range
the current queue the turfs that we have previously visited with unique ids the turf object the liquid resides on compares after each iteration to see if we even need to continue
try_bulk_split
the section is a little funky, as if say a cross shaped liquid removal occurs this will leave 3 of them in the same group, not a big deal as this only affects turfs that are like 5 tiles total if there is only 1 adjacent liquid it physically can't split asses the group to see if it should exist
try_split
the current queue the turfs that we have previously visited with unique ids the turf object the liquid resides on compares after each iteration to see if we even need to continue
work_on_split_queue
we try and work on the split queue from this point on