From 2ff534c56af2938a6b072535c9e0c127895d5d2a Mon Sep 17 00:00:00 2001 From: ChrisLR Date: Tue, 2 Jan 2024 10:26:04 -0500 Subject: [PATCH] Fix ComponentProperty --- evennia/contrib/base_systems/components/holder.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/evennia/contrib/base_systems/components/holder.py b/evennia/contrib/base_systems/components/holder.py index f4f4f7f03..e4dbc3ef7 100644 --- a/evennia/contrib/base_systems/components/holder.py +++ b/evennia/contrib/base_systems/components/holder.py @@ -5,7 +5,7 @@ This file contains the classes that allow a typeclass to use components. """ from evennia.contrib.base_systems import components -from evennia.contrib.base_systems.components import signals, exceptions +from evennia.contrib.base_systems.components import signals, exceptions, get_component_class class ComponentProperty: @@ -27,9 +27,16 @@ class ComponentProperty: """ self.name = name self.values = kwargs + self.component_class = None + self.slot_name = None def __get__(self, instance, owner): - component = instance.components.get(self.name) + if not self.component_class: + component_class = get_component_class(self.name) + self.component_class = component_class + self.slot_name = component_class.slot or component_class.name + + component = instance.components.get(self.slot_name) return component def __set__(self, instance, value):