141 lines
4 KiB
Python
141 lines
4 KiB
Python
"""
|
|
Command sets
|
|
|
|
All commands in the game must be grouped in a cmdset. A given command
|
|
can be part of any number of cmdsets and cmdsets can be added/removed
|
|
and merged onto entities at runtime.
|
|
|
|
To create new commands to populate the cmdset, see
|
|
`commands/command.py`.
|
|
|
|
This module wraps the default command sets of Evennia; overloads them
|
|
to add/remove commands from the default lineup. You can create your
|
|
own cmdsets by inheriting from them or directly from `evennia.CmdSet`.
|
|
|
|
"""
|
|
|
|
from evennia import default_cmds
|
|
from commands.command import CmdCharacter
|
|
from commands.command import CmdLook
|
|
from commands.command import CmdGet
|
|
from commands.command import CmdDrop
|
|
from commands.command import CmdLight
|
|
from commands.command import CmdTestPy
|
|
from commands.command import CmdSearch
|
|
from commands.command import CmdEquip
|
|
from commands.command import CmdInventory
|
|
from commands.command import CmdPut
|
|
from commands.command import CmdOpenCloseDoor
|
|
|
|
from commands.builder import CmdUpdateLightState
|
|
from commands.builder import CmdOpen
|
|
from commands.builder import CmdDescDoor
|
|
from commands.builder import CmdZone
|
|
from commands.builder import CmdAddToZone
|
|
from commands.builder import CmdPopen
|
|
|
|
from commands.unloggedin import CmdUnconnectedLook
|
|
|
|
from utils.crafting import CraftingCmdSet
|
|
from utils.spells import CastingCmdSet
|
|
|
|
|
|
class CharacterCmdSet(default_cmds.CharacterCmdSet):
|
|
"""
|
|
The `CharacterCmdSet` contains general in-game commands like `look`,
|
|
`get`, etc available on in-game Character objects. It is merged with
|
|
the `AccountCmdSet` when an Account puppets a Character.
|
|
"""
|
|
|
|
key = "DefaultCharacter"
|
|
|
|
def at_cmdset_creation(self):
|
|
"""
|
|
Populates the cmdset
|
|
"""
|
|
super().at_cmdset_creation()
|
|
#
|
|
# any commands you add below will overload the default ones.
|
|
#
|
|
self.add(CmdCharacter())
|
|
self.add(CmdLook())
|
|
self.add(CmdGet())
|
|
self.add(CmdDrop())
|
|
self.add(CmdTestPy())
|
|
self.add(CmdLight())
|
|
self.add(CmdSearch())
|
|
self.add(CmdEquip())
|
|
self.add(CmdInventory())
|
|
self.add(CmdPut())
|
|
self.add(CmdOpenCloseDoor())
|
|
|
|
self.add(CmdUpdateLightState())
|
|
self.add(CmdOpen())
|
|
self.add(CmdDescDoor())
|
|
self.add(CmdZone())
|
|
self.add(CmdAddToZone())
|
|
self.add(CmdPopen())
|
|
|
|
self.add(CraftingCmdSet())
|
|
self.add(CastingCmdSet())
|
|
|
|
|
|
class AccountCmdSet(default_cmds.AccountCmdSet):
|
|
"""
|
|
This is the cmdset available to the Account at all times. It is
|
|
combined with the `CharacterCmdSet` when the Account puppets a
|
|
Character. It holds game-account-specific commands, channel
|
|
commands, etc.
|
|
"""
|
|
|
|
key = "DefaultAccount"
|
|
|
|
def at_cmdset_creation(self):
|
|
"""
|
|
Populates the cmdset
|
|
"""
|
|
super().at_cmdset_creation()
|
|
#
|
|
# any commands you add below will overload the default ones.
|
|
#
|
|
|
|
|
|
class UnloggedinCmdSet(default_cmds.UnloggedinCmdSet):
|
|
"""
|
|
Command set available to the Session before being logged in. This
|
|
holds commands like creating a new account, logging in, etc.
|
|
"""
|
|
|
|
key = "DefaultUnloggedin"
|
|
|
|
def at_cmdset_creation(self):
|
|
"""
|
|
Populates the cmdset
|
|
"""
|
|
super().at_cmdset_creation()
|
|
#
|
|
# any commands you add below will overload the default ones.
|
|
#
|
|
self.add(CmdUnconnectedLook())
|
|
|
|
|
|
class SessionCmdSet(default_cmds.SessionCmdSet):
|
|
"""
|
|
This cmdset is made available on Session level once logged in. It
|
|
is empty by default.
|
|
"""
|
|
|
|
key = "DefaultSession"
|
|
|
|
def at_cmdset_creation(self):
|
|
"""
|
|
This is the only method defined in a cmdset, called during
|
|
its creation. It should populate the set with command instances.
|
|
|
|
As and example we just add the empty base `Command` object.
|
|
It prints some info.
|
|
"""
|
|
super().at_cmdset_creation()
|
|
#
|
|
# any commands you add below will overload the default ones.
|
|
#
|