From 8ded9e79147fc747d64b755a9aeff7937ddf887a Mon Sep 17 00:00:00 2001 From: ChrisLR Date: Mon, 13 May 2024 17:34:50 -0400 Subject: [PATCH] Include parents --- evennia/contrib/base_systems/components/component.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/evennia/contrib/base_systems/components/component.py b/evennia/contrib/base_systems/components/component.py index 900092ed13..edcf21de78 100644 --- a/evennia/contrib/base_systems/components/component.py +++ b/evennia/contrib/base_systems/components/component.py @@ -21,7 +21,15 @@ class BaseComponent(type): as a component in the Component Listing using its name. All of them require a unique name. """ - attrs['_fields'] = {} + attrs_name = attrs.get('name') + if attrs_name and not COMPONENT_LISTING.get(attrs_name): + new_fields = {} + attrs['_fields'] = new_fields + for parent in parents: + _parent_fields = getattr(parent, "_fields") + if _parent_fields: + new_fields.update(_parent_fields) + new_type = super().__new__(cls, name, parents, attrs) if new_type.__base__ == object: return new_type