mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
103 lines
3.7 KiB
Python
103 lines
3.7 KiB
Python
"""
|
|
|
|
Central API for Evennia MUD/MUX/MU* system.
|
|
|
|
Import this from ./manage.py shell or set DJANGO_SETTINGS_MODULE manually for proper
|
|
functionality.
|
|
|
|
This module tries to group the most commonly useful modules in a flat(ter) structure.
|
|
Some notes:
|
|
|
|
1) db_* are shortcuts to initiated versions of Evennia's django database managers (e.g.
|
|
db_objects is an alias for ObjectDB.objects). These allows for exploring the database in
|
|
various ways. Please note that
|
|
the evennia-specific methods in the managers return typeclasses (or lists of
|
|
typeclasses), whereas the default django ones (filter etc) return database objects.
|
|
You can convert between the two easily via dbobj.typeclass and typeclass.dbobj, but
|
|
it's worth to remember.
|
|
2) You -have- to use the methods of the "create" module to create new Typeclassed game
|
|
entities (Objects, Scripts or Players). Just initializing e.g. the Player class will
|
|
-not- set up Typeclasses correctly and will lead to errors. Other types of database objects
|
|
can be created normally, but the "create" module offers convenient methods for those too.
|
|
3) The API accesses all relevant methods/classes, but might not always include all helper-methods
|
|
referenced from each such entity. To get to those, access the modules in src/ directly. You
|
|
can always do this anyway, if you do not want to go through this API.
|
|
|
|
Philosophy is to keep the API as flat as possible, so as to not have to remember which nested
|
|
packages to traverse. Most of the important stuff should be made visible from this module.
|
|
|
|
As said, one can of course still import from src/ directly should one prefer!
|
|
|
|
"""
|
|
|
|
# Stop erroneous direct run (would give a traceback since django is
|
|
# not yet initialized)
|
|
|
|
if __name__ == "__main__":
|
|
print \
|
|
"""
|
|
This module gives access to Evennia's programming API.
|
|
It should not be run on its own, but be imported and accessed as you develop your game.
|
|
To start the server, see game/manage.py and game/evennia.py.
|
|
More help can be found at http://www.evennia.com.
|
|
"""
|
|
import sys
|
|
sys.exit()
|
|
|
|
|
|
# Start Evennia API (easiest is to import this module interactively to explore it)
|
|
|
|
# help entries
|
|
from src.help.models import HelpEntry
|
|
db_helpentries = HelpEntry.objects
|
|
|
|
# players
|
|
from src.players.player import Player
|
|
from src.players.models import PlayerDB, PlayerAttribute, PlayerNick
|
|
db_players = PlayerDB.objects
|
|
db_playerattrs = PlayerAttribute.objects
|
|
db_playernicks = PlayerNick.objects
|
|
del PlayerDB, PlayerAttribute, PlayerNick
|
|
|
|
# commands
|
|
from src.commands.command import Command
|
|
from src.commands.cmdset import CmdSet
|
|
from src.commands import default as default_cmds
|
|
|
|
# locks
|
|
from src.locks import lockfuncs
|
|
|
|
# scripts
|
|
from src.scripts.scripts import Script
|
|
from src.scripts.models import ScriptDB, ScriptAttribute
|
|
db_scripts = ScriptDB.objects
|
|
db_scriptattrs = ScriptAttribute.objects
|
|
del ScriptDB, ScriptAttribute
|
|
|
|
# comms
|
|
from src.comms.models import Msg, Channel, PlayerChannelConnection, ExternalChannelConnection
|
|
db_msgs = Msg.objects
|
|
db_channels = Channel.objects
|
|
db_connections = PlayerChannelConnection.objects
|
|
db_externalconnections = ExternalChannelConnection.objects
|
|
|
|
# objects
|
|
from src.objects.objects import Object, Character, Room, Exit
|
|
from src.objects.models import ObjAttribute, Alias, ObjectNick, ObjectDB
|
|
db_objects = ObjectDB.objects
|
|
db_aliases = Alias.objects
|
|
db_objnicks = ObjectNick.objects
|
|
db_objattrs = ObjAttribute.objects
|
|
del ObjAttribute, Alias, ObjectNick, ObjectDB
|
|
|
|
# server
|
|
from src.server.models import ServerConfig
|
|
db_serverconfs = ServerConfig.objects
|
|
del ServerConfig
|
|
|
|
# utils
|
|
from src.utils import search
|
|
from src.utils import logger
|
|
from src.utils import create
|
|
from src.utils import utils
|
|
|