Advanced Proximity Monitor

This component functions similar to the basic version, however it has some extra features:
First of all, if the field radius is more than 1 tile, you have the option to make a distinction between inner proximity checkers, versus ones along the edge. You can specifiy which type of /obj/effect/abstract/proximity_checker objects you want to use for both inner, and edge checkers.
Secondly, the advanced proximity monitor has the ability to use processing (the process
proc). This is optional however.
Each proximity checker object can process itself or other things on it's turf as needed. It's up to you on how you want to use it.
Inner and edge checkers can process thing seperately. You can turn off processing for field checkers and have only edge checkers process, and vice versa.
Vars | |
edge_checker_type | The type of checker object that should be used for the field edges. |
---|---|
edge_checkers | A list of proximity_checkers on the edge of the field. |
field_checkers | A list of proximity_checkers in the inner field. Excludes checkers on the edge of the field. |
process_edge_checkers | Should the edge field checkers process things on their tile? |
process_field_checkers | Should the main field checkers process things on their tile? |
requires_processing | Do any of the proximity_checker objects need to process things sitting on their tile? |
uses_edge_checkers | Make a distinction between edge checkers and field checkers seperately. |
Procs | |
edge_field_canpass | Base proc. Checks if AM can pass the edge field checker. |
edge_field_crossed | Base proc. Called when something crosses an edge field checker. |
edge_field_uncrossed | Base proc. Called when something uncrosses an edge field checker. |
inner_field_canpass | Base proc. Checks if AM can pass the inner field checker. |
inner_field_crossed | Base proc. Called when something crosses an inner field checker. |
inner_field_uncrossed | Base proc. Called when something uncrosses an inner field checker. |
process_edge_checker | Base proc. All processing-related actions associated with edge proximity checkers should go here. |
process_inner_checker | Base proc. All processing-related actions associated with inner proximity checkers should go here. |
Var Details
edge_checker_type

The type of checker object that should be used for the field edges.
edge_checkers

A list of proximity_checkers on the edge of the field.
field_checkers

A list of proximity_checkers in the inner field. Excludes checkers on the edge of the field.
process_edge_checkers

Should the edge field checkers process things on their tile?
process_field_checkers

Should the main field checkers process things on their tile?
requires_processing

Do any of the proximity_checker objects need to process things sitting on their tile?
uses_edge_checkers

Make a distinction between edge checkers and field checkers seperately.
Proc Details
edge_field_canpass
Base proc. Checks if AM
can pass the edge field checker.
Arguments:
- atom/movable/AM - the atom trying to pass the edge field checker object
- obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker object
AM
is trying to pass - turf/entering - the turf
AM
is entering from
edge_field_crossed
Base proc. Called when something crosses an edge field checker.
Arguments:
- atom/movable/AM - the atom crossing the edge field checker object
- obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker object
AM
getting crossed
edge_field_uncrossed
Base proc. Called when something uncrosses an edge field checker.
Arguments:
- atom/movable/AM - the atom uncrossing the edge field checker object
- obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker object
AM
getting uncrossed
inner_field_canpass
Base proc. Checks if AM
can pass the inner field checker.
Arguments:
- atom/movable/AM - the atom trying to pass the inner field checker object
- obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker object
AM
is trying to pass - turf/entering - the turf
AM
is entering from
inner_field_crossed
Base proc. Called when something crosses an inner field checker.
Arguments:
- atom/movable/AM - the atom crossing the inner field checker object
- obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker object
AM
getting crossed
inner_field_uncrossed
Base proc. Called when something uncrosses an inner field checker.
Arguments:
- atom/movable/AM - the atom uncrossing the inner field checker object
- obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker object
AM
getting uncrossed
process_edge_checker
Base proc. All processing-related actions associated with edge proximity checkers should go here.
Arguments:
- obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker to process
process_inner_checker
Base proc. All processing-related actions associated with inner proximity checkers should go here.
Arguments:
- obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker to process