rename to at_object_post_spawn and add prototype keyword

This commit is contained in:
Cal 2024-08-26 17:50:04 -06:00
parent 958cdd4b10
commit 0b45e483e2
2 changed files with 8 additions and 5 deletions

View file

@ -310,7 +310,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
False, deletion is aborted. Note that all objects
inside a deleted object are automatically moved
to their <home>, they don't need to be removed here.
at_object_spawn() - called when object is spawned from a prototype or updated
at_object_post_spawn() - called when object is spawned from a prototype or updated
by the spawner to apply prototype changes.
at_init() - called whenever typeclass is cached from memory,
at least once every server restart/reload
@ -2050,10 +2050,13 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase):
"""
return True
def at_object_spawn(self):
def at_object_post_spawn(self, prototype=None):
"""
Called when this object is spawned or updated from a prototype, after all other
hooks have been run.
Keyword Args:
prototype (dict): The prototype that was used to spawn or update this object.
"""
pass

View file

@ -803,8 +803,8 @@ def batch_update_objects_with_prototype(
if do_save:
changed += 1
obj.save()
if spawn_hook := getattr(obj, "at_object_spawn", None):
spawn_hook()
if spawn_hook := getattr(obj, "at_object_post_spawn", None):
spawn_hook(prototype=prototype)
return changed
@ -872,7 +872,7 @@ def batch_create_object(*objparams):
if code:
exec(code, {}, {"evennia": evennia, "obj": obj})
# run the spawned hook
if spawn_hook := getattr(obj, "at_object_spawn", None):
if spawn_hook := getattr(obj, "at_object_post_spawn", None):
spawn_hook()
objs.append(obj)
return objs