From 0b45e483e2b2bb021f879e11147c8c81652d8f20 Mon Sep 17 00:00:00 2001 From: Cal Date: Mon, 26 Aug 2024 17:50:04 -0600 Subject: [PATCH] rename to at_object_post_spawn and add prototype keyword --- evennia/objects/objects.py | 7 +++++-- evennia/prototypes/spawner.py | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index f87eb620f5..bd1b509395 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -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 , 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 diff --git a/evennia/prototypes/spawner.py b/evennia/prototypes/spawner.py index 166c591b6b..5e8897b6dd 100644 --- a/evennia/prototypes/spawner.py +++ b/evennia/prototypes/spawner.py @@ -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