mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-31 20:11:56 +00:00
So i left over some basic `/whatever/proc/format` uses in the original PR this fixes it. Notable exceptions to the rule: - Paths in add_verb/remove_verb, we need full path instead of a name there to access verb metadata so we can't use proc ref macros there. - regex.Replace, found out that it does not accept call by name. Instead i added new REGEX_REPLACE_HANDLER so we can at least try to mark these. There's still leftover global procs that do not use GLOBAL_PROC_REF but they functionally equivalent so that's for later. I don't see any reasonable way to grep for this. But if you got any ideas please share.
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
|
|
*/
|
|
```
|