mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
72 lines
3.4 KiB
Plaintext
72 lines
3.4 KiB
Plaintext
/// Return this from `/datum/component/Initialize` or `/datum/component/OnTransfer` or `/datum/component/on_source_add` to have the component be deleted if it's applied to an incorrect type.
|
|
/// `parent` must not be modified if this is to be returned.
|
|
/// This will be noted in the runtime logs
|
|
#define COMPONENT_INCOMPATIBLE 1
|
|
/// Returned in PostTransfer to prevent transfer, similar to `COMPONENT_INCOMPATIBLE`
|
|
#define COMPONENT_NOTRANSFER 2
|
|
/// Deletes the component silently. This is for valid, non-error cases where you still want to execute some of the component's logic.
|
|
#define COMPONENT_REDUNDANT 3
|
|
|
|
/// Return value to cancel attaching
|
|
#define ELEMENT_INCOMPATIBLE 1
|
|
|
|
// /datum/element flags
|
|
/// Causes the detach proc to be called when the host object is being deleted.
|
|
/// Should only be used if you need to perform cleanup not related to the host object.
|
|
/// You do not need this if you are only unregistering signals, for instance.
|
|
/// You would need it if you are doing something like removing the target from a processing list.
|
|
#define ELEMENT_DETACH_ON_HOST_DESTROY (1 << 0)
|
|
/**
|
|
* Only elements created with the same arguments given after `argument_hash_start_idx` share an element instance
|
|
* The arguments are the same when the text and number values are the same and all other values have the same ref
|
|
*/
|
|
#define ELEMENT_BESPOKE (1 << 1)
|
|
/// Causes all detach arguments to be passed to detach instead of only being used to identify the element
|
|
/// When this is used your Detach proc should have the same signature as your Attach proc
|
|
#define ELEMENT_COMPLEX_DETACH (1 << 2)
|
|
/**
|
|
* Elements with this flag will have their datum lists arguments compared as is,
|
|
* without the contents being sorted alpha-numerically first.
|
|
* This is good for those elements where the position of the keys matter, like in the case of color matrices.
|
|
*/
|
|
#define ELEMENT_DONT_SORT_LIST_ARGS (1<<3)
|
|
/**
|
|
* Elements with this flag will be ignored by the dcs_check_list_arguments test.
|
|
* A good example is connect_loc, for which it's practically undoable unless we force every signal proc to have a different name.
|
|
*/
|
|
#define ELEMENT_NO_LIST_UNIT_TEST (1<<4)
|
|
|
|
// How multiple components of the exact same type are handled in the same datum
|
|
/// old component is deleted (default)
|
|
#define COMPONENT_DUPE_HIGHLANDER 0
|
|
/// duplicates allowed
|
|
#define COMPONENT_DUPE_ALLOWED 1
|
|
/// new component is deleted
|
|
#define COMPONENT_DUPE_UNIQUE 2
|
|
/**
|
|
* Component uses source tracking to manage adding and removal logic.
|
|
* Add a source/spawn to/the component by using AddComponentFrom(source, component_type, args...)
|
|
* Removing the last source will automatically remove the component from the parent.
|
|
* Arguments will be passed to on_source_add(source, args...); ensure that Initialize and on_source_add have the same signature.
|
|
*/
|
|
#define COMPONENT_DUPE_SOURCES 3
|
|
/// old component is given the initialization args of the new
|
|
#define COMPONENT_DUPE_UNIQUE_PASSARGS 4
|
|
/// each component of the same type is consulted as to whether the duplicate should be allowed
|
|
#define COMPONENT_DUPE_SELECTIVE 5
|
|
|
|
//Redirection component init flags
|
|
#define REDIRECT_TRANSFER_WITH_TURF 1
|
|
|
|
//Arch
|
|
#define ARCH_PROB "probability" //Probability for each item
|
|
#define ARCH_MAXDROP "max_drop_amount" //each item's max drop amount
|
|
|
|
//Ouch my toes!
|
|
#define CALTROP_BYPASS_SHOES 1
|
|
#define CALTROP_IGNORE_WALKERS 2
|
|
|
|
// Conflict element IDs
|
|
#define CONFLICT_ELEMENT_CRUSHER "crusher"
|
|
#define CONFLICT_ELEMENT_KA "kinetic_accelerator"
|