mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
|
|
# Template file for your new component
|
|
|
|
See _component.dm for detailed explanations
|
|
|
|
```dm
|
|
/datum/component/mycomponent
|
|
//can_transfer = TRUE // Must have PostTransfer
|
|
//dupe_mode = COMPONENT_DUPE_ALLOWED // code/__DEFINES/dcs/flags.dm
|
|
var/myvar
|
|
|
|
/datum/component/mycomponent/Initialize(myargone, myargtwo)
|
|
if(myargone)
|
|
myvar = myargone
|
|
if(myargtwo)
|
|
send_to_playing_players(myargtwo)
|
|
|
|
/datum/component/mycomponent/RegisterWithParent()
|
|
RegisterSignal(parent, COMSIG_NOT_REAL, PROC_REF(signalproc)) // RegisterSignal can take a signal name by itself,
|
|
RegisterSignal(parent, list(COMSIG_NOT_REAL_EITHER, COMSIG_ALMOST_REAL), PROC_REF(otherproc)) // or a list of them to assign to the same proc
|
|
|
|
/datum/component/mycomponent/UnregisterFromParent()
|
|
UnregisterSignal(parent, COMSIG_NOT_REAL) // UnregisterSignal has similar behavior
|
|
UnregisterSignal(parent, list( // But you can just include all registered signals in one call
|
|
COMSIG_NOT_REAL,
|
|
COMSIG_NOT_REAL_EITHER,
|
|
COMSIG_ALMOST_REAL,
|
|
))
|
|
|
|
/datum/component/mycomponent/proc/signalproc(datum/source)
|
|
SIGNAL_HANDLER
|
|
send_to_playing_players("[source] signaled [src]!")
|
|
|
|
/*
|
|
/datum/component/mycomponent/InheritComponent(datum/component/mycomponent/old, i_am_original, list/arguments)
|
|
myvar = old.myvar
|
|
|
|
if(i_am_original)
|
|
send_to_playing_players("No parent should have to bury their child")
|
|
*/
|
|
|
|
/*
|
|
/datum/component/mycomponent/PreTransfer()
|
|
send_to_playing_players("Goodbye [parent], I'm getting adopted")
|
|
|
|
/datum/component/mycomponent/PostTransfer()
|
|
send_to_playing_players("Hello my new parent, [parent]! It's nice to meet you!")
|
|
*/
|
|
|
|
/*
|
|
/datum/component/mycomponent/CheckDupeComponent(datum/mycomponent/new, myargone, myargtwo)
|
|
if(myargone == myvar)
|
|
return TRUE
|
|
*/
|
|
```
|