Broke ExitCommand out for easier override.
This commit is contained in:
parent
e35a42c9fd
commit
c6be8b4a66
1 changed files with 40 additions and 33 deletions
|
|
@ -1440,6 +1440,35 @@ class DefaultRoom(DefaultObject):
|
||||||
self.location = None
|
self.location = None
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Default Exit command, used by the base exit object
|
||||||
|
#
|
||||||
|
|
||||||
|
class ExitCommand(command.Command):
|
||||||
|
"""
|
||||||
|
This is a command that simply cause the caller to traverse
|
||||||
|
the object it is attached to.
|
||||||
|
|
||||||
|
"""
|
||||||
|
obj = None
|
||||||
|
|
||||||
|
def func(self):
|
||||||
|
"""
|
||||||
|
Default exit traverse if no syscommand is defined.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if self.obj.access(self.caller, 'traverse'):
|
||||||
|
# we may traverse the exit.
|
||||||
|
self.obj.at_traverse(self.caller, self.obj.destination)
|
||||||
|
else:
|
||||||
|
# exit is locked
|
||||||
|
if self.obj.db.err_traverse:
|
||||||
|
# if exit has a better error message, let's use it.
|
||||||
|
self.caller.msg(self.obj.db.err_traverse)
|
||||||
|
else:
|
||||||
|
# No shorthand error message. Call hook.
|
||||||
|
self.obj.at_failed_traverse(self.caller)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Base Exit object
|
# Base Exit object
|
||||||
#
|
#
|
||||||
|
|
@ -1456,6 +1485,8 @@ class DefaultExit(DefaultObject):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
exit_command = ExitCommand
|
||||||
|
priority = 101
|
||||||
# Helper classes and methods to implement the Exit. These need not
|
# Helper classes and methods to implement the Exit. These need not
|
||||||
# be overloaded unless one want to change the foundation for how
|
# be overloaded unless one want to change the foundation for how
|
||||||
# Exits work. See the end of the class for hook methods to overload.
|
# Exits work. See the end of the class for hook methods to overload.
|
||||||
|
|
@ -1472,45 +1503,21 @@ class DefaultExit(DefaultObject):
|
||||||
exiddobj (Object): The DefaultExit object to base the command on.
|
exiddobj (Object): The DefaultExit object to base the command on.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
class ExitCommand(command.Command):
|
|
||||||
"""
|
|
||||||
This is a command that simply cause the caller to traverse
|
|
||||||
the object it is attached to.
|
|
||||||
|
|
||||||
"""
|
|
||||||
obj = None
|
|
||||||
|
|
||||||
def func(self):
|
|
||||||
"""
|
|
||||||
Default exit traverse if no syscommand is defined.
|
|
||||||
"""
|
|
||||||
|
|
||||||
if self.obj.access(self.caller, 'traverse'):
|
|
||||||
# we may traverse the exit.
|
|
||||||
self.obj.at_traverse(self.caller, self.obj.destination)
|
|
||||||
else:
|
|
||||||
# exit is locked
|
|
||||||
if self.obj.db.err_traverse:
|
|
||||||
# if exit has a better error message, let's use it.
|
|
||||||
self.caller.msg(self.obj.db.err_traverse)
|
|
||||||
else:
|
|
||||||
# No shorthand error message. Call hook.
|
|
||||||
self.obj.at_failed_traverse(self.caller)
|
|
||||||
|
|
||||||
# create an exit command. We give the properties here,
|
# create an exit command. We give the properties here,
|
||||||
# to always trigger metaclass preparations
|
# to always trigger metaclass preparations
|
||||||
cmd = ExitCommand(key=exidbobj.db_key.strip().lower(),
|
cmd = self.exit_command(key=exidbobj.db_key.strip().lower(),
|
||||||
aliases=exidbobj.aliases.all(),
|
aliases=exidbobj.aliases.all(),
|
||||||
locks=str(exidbobj.locks),
|
locks=str(exidbobj.locks),
|
||||||
auto_help=False,
|
auto_help=False,
|
||||||
destination=exidbobj.db_destination,
|
destination=exidbobj.db_destination,
|
||||||
arg_regex=r"^$",
|
arg_regex=r"^$",
|
||||||
is_exit=True,
|
is_exit=True,
|
||||||
obj=exidbobj)
|
obj=exidbobj)
|
||||||
# create a cmdset
|
# create a cmdset
|
||||||
exit_cmdset = cmdset.CmdSet(None)
|
exit_cmdset = cmdset.CmdSet(None)
|
||||||
exit_cmdset.key = '_exitset'
|
exit_cmdset.key = '_exitset'
|
||||||
exit_cmdset.priority = 101
|
exit_cmdset.priority = self.priority
|
||||||
exit_cmdset.duplicates = True
|
exit_cmdset.duplicates = True
|
||||||
# add command to cmdset
|
# add command to cmdset
|
||||||
exit_cmdset.add(cmd)
|
exit_cmdset.add(cmd)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue