/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/dcs/flags.dm

COMPONENT_INCOMPATIBLEReturn this from /datum/component/Initialize or datum/component/OnTransfer 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
COMPONENT_NOTRANSFERReturned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE
ELEMENT_INCOMPATIBLEReturn value to cancel attaching
ELEMENT_DETACH_ON_HOST_DESTROYCauses 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.
ELEMENT_BESPOKEOnly 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
ELEMENT_COMPLEX_DETACHCauses 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
COMPONENT_DUPE_HIGHLANDERold component is deleted (default)
COMPONENT_DUPE_ALLOWEDduplicates allowed
COMPONENT_DUPE_UNIQUEnew component is deleted
COMPONENT_DUPE_UNIQUE_PASSARGSold component is given the initialization args of the new
COMPONENT_DUPE_SELECTIVEeach component of the same type is consulted as to whether the duplicate should be allowed

Define Details

COMPONENT_DUPE_ALLOWED

duplicates allowed

COMPONENT_DUPE_HIGHLANDER

old component is deleted (default)

COMPONENT_DUPE_SELECTIVE

each component of the same type is consulted as to whether the duplicate should be allowed

COMPONENT_DUPE_UNIQUE

new component is deleted

COMPONENT_DUPE_UNIQUE_PASSARGS

old component is given the initialization args of the new

COMPONENT_INCOMPATIBLE

Return this from /datum/component/Initialize or datum/component/OnTransfer 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

COMPONENT_NOTRANSFER

Returned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE

ELEMENT_BESPOKE

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

ELEMENT_COMPLEX_DETACH

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

ELEMENT_DETACH_ON_HOST_DESTROY

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.

ELEMENT_INCOMPATIBLE

Return value to cancel attaching