diff --git a/evennia/__init__.py b/evennia/__init__.py index 966002ae35..3aabc97c50 100644 --- a/evennia/__init__.py +++ b/evennia/__init__.py @@ -114,6 +114,16 @@ CHANNEL_HANDLER = None GLOBAL_SCRIPTS = None OPTION_CLASSES = None +# typeclasses +BASE_ACCOUNT_TYPECLASS = None +BASE_OBJECT_TYPECLASS = None +BASE_CHARACTER_TYPECLASS = None +BASE_ROOM_TYPECLASS = None +BASE_EXIT_TYPECLASS = None +BASE_CHANNEL_TYPECLASS = None +BASE_SCRIPT_TYPECLASS = None +BASE_GUEST_TYPECLASS = None + def _create_version(): """ @@ -165,6 +175,10 @@ def _init(): global EvMenu, EvTable, EvForm, EvMore, EvEditor global ANSIString + global BASE_ACCOUNT_TYPECLASS, BASE_OBJECT_TYPECLASS, BASE_CHARACTER_TYPECLASS + global BASE_ROOM_TYPECLASS, BASE_EXIT_TYPECLASS, BASE_CHANNEL_TYPECLASS + global BASE_SCRIPT_TYPECLASS, BASE_GUEST_TYPECLASS + from .accounts.accounts import DefaultAccount from .accounts.accounts import DefaultGuest from .objects.objects import DefaultObject @@ -227,6 +241,17 @@ def _init(): from .utils.containers import GLOBAL_SCRIPTS from .utils.containers import OPTION_CLASSES + # typeclases + from .utils.utils import class_from_module + BASE_ACCOUNT_TYPECLASS = class_from_module(settings.BASE_ACCOUNT_TYPECLASS) + BASE_OBJECT_TYPECLASS = class_from_module(settings.BASE_OBJECT_TYPECLASS) + BASE_CHARACTER_TYPECLASS = class_from_module(settings.BASE_CHARACTER_TYPECLASS) + BASE_ROOM_TYPECLASS = class_from_module(settings.BASE_ROOM_TYPECLASS) + BASE_EXIT_TYPECLASS = class_from_module(settings.BASE_EXIT_TYPECLASS) + BASE_CHANNEL_TYPECLASS = class_from_module(settings.BASE_CHANNEL_TYPECLASS) + BASE_SCRIPT_TYPECLASS = class_from_module(settings.BASE_SCRIPT_TYPECLASS) + BASE_GUEST_TYPECLASS = class_from_module(settings.BASE_GUEST_TYPECLASS) + # initialize the doc string global __doc__ __doc__ = ansi.parse_ansi(DOCSTRING)