Fix ComponentProperty
This commit is contained in:
parent
74f8715d5a
commit
2ff534c56a
1 changed files with 9 additions and 2 deletions
|
|
@ -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 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:
|
class ComponentProperty:
|
||||||
|
|
@ -27,9 +27,16 @@ class ComponentProperty:
|
||||||
"""
|
"""
|
||||||
self.name = name
|
self.name = name
|
||||||
self.values = kwargs
|
self.values = kwargs
|
||||||
|
self.component_class = None
|
||||||
|
self.slot_name = None
|
||||||
|
|
||||||
def __get__(self, instance, owner):
|
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
|
return component
|
||||||
|
|
||||||
def __set__(self, instance, value):
|
def __set__(self, instance, value):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue