photosynth component for traits and species (#17712)

This commit is contained in:
Will
2025-05-15 22:14:10 -07:00
committed by GitHub
parent 7e16d2d441
commit 9d8ec7454b
5 changed files with 30 additions and 8 deletions
@@ -0,0 +1,28 @@
// If a mob has this component, every life tick it will gain nutrition if it's standing in light up to nutrition_max.
// Extremely good tutorial component if you need an example with no special bells and whistles, and no "gotcha" behaviors.
/datum/component/photosynth
var/mob/living/owner
var/nutrition_max = 1000
/datum/component/photosynth/Initialize()
if(!isliving(parent))
return COMPONENT_INCOMPATIBLE
owner = parent
RegisterSignal(owner, COMSIG_LIVING_LIFE, PROC_REF(process_component))
/datum/component/photosynth/proc/process_component()
if(QDELETED(parent))
return
if(owner.stat == DEAD)
return
if(!isturf(owner.loc))
return
if(owner.nutrition >= nutrition_max)
return
var/turf/T = owner.loc
owner.adjust_nutrition(T.get_lumcount() / 10)
/datum/component/photosynth/Destroy(force = FALSE)
UnregisterSignal(owner, COMSIG_LIVING_LIFE)
owner = null
. = ..()