From 7c017dbb290ffe36923c4b086dfbe34a41796e1b Mon Sep 17 00:00:00 2001 From: lunacb Date: Thu, 5 Jan 2023 23:58:14 -0500 Subject: [PATCH] added contrib code building_menu color_markups mail multidescer ingame_map_display simpledoor rpsystem gendersub --- commands/default_cmdsets.py | 25 ++++++ server/conf/settings.py | 16 ++++ typeclasses/characters.py | 28 +------ typeclasses/objects.py | 151 +----------------------------------- typeclasses/rooms.py | 10 +-- 5 files changed, 50 insertions(+), 180 deletions(-) diff --git a/commands/default_cmdsets.py b/commands/default_cmdsets.py index fee80c7..ecae458 100644 --- a/commands/default_cmdsets.py +++ b/commands/default_cmdsets.py @@ -16,6 +16,13 @@ own cmdsets by inheriting from them or directly from `evennia.CmdSet`. from evennia import default_cmds +from evennia.contrib.base_systems.building_menu import GenericBuildingCmd +from evennia.contrib.game_systems import mail +from evennia.contrib.game_systems.multidescer import CmdMultiDesc +from evennia.contrib.grid.ingame_map_display import MapDisplayCmdSet +from evennia.contrib.grid import simpledoor +from evennia.contrib.rpg.rpsystem import RPSystemCmdSet + class CharacterCmdSet(default_cmds.CharacterCmdSet): """ @@ -35,6 +42,24 @@ class CharacterCmdSet(default_cmds.CharacterCmdSet): # any commands you add below will overload the default ones. # + # building_menu + self.add(GenericBuildingCmd()) + + # mail + self.add(mail.CmdMail()) + self.add(mail.CmdMailCharacter()) + + # multidescer + self.add(CmdMultiDesc()) + + # ingame_map_display + self.add(MapDisplayCmdSet) + + # simpledoor + self.add(simpledoor.SimpleDoorCmdSet) + + # rpsystem + self.add(RPSystemCmdSet()) class AccountCmdSet(default_cmds.AccountCmdSet): """ diff --git a/server/conf/settings.py b/server/conf/settings.py index 311e93d..769b0af 100644 --- a/server/conf/settings.py +++ b/server/conf/settings.py @@ -27,6 +27,8 @@ put secret game- or server-specific settings in secret_settings.py. # Use the defaults from Evennia unless explicitly overridden from evennia.settings_default import * +from evennia.contrib.base_systems import color_markups + ###################################################################### # Evennia base server config ###################################################################### @@ -79,3 +81,17 @@ try: from server.conf.secret_settings import * except ImportError: print("secret_settings.py file not found or failed to import.") + +# color_markups +COLOR_ANSI_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_EXTRA_MAP + \ + color_markups.MUX_COLOR_ANSI_EXTRA_MAP +COLOR_XTERM256_EXTRA_FG = color_markups.CURLY_COLOR_XTERM256_EXTRA_FG + \ + color_markups.MUX_COLOR_XTERM256_EXTRA_FG +COLOR_XTERM256_EXTRA_BG = color_markups.CURLY_COLOR_XTERM256_EXTRA_BG + \ + color_markups.MUX_COLOR_XTERM256_EXTRA_BG +COLOR_XTERM256_EXTRA_GFG = color_markups.CURLY_COLOR_XTERM256_EXTRA_GFG + \ + color_markups.MUX_COLOR_XTERM256_EXTRA_GFG +COLOR_XTERM256_EXTRA_GBG = color_markups.CURLY_COLOR_XTERM256_EXTRA_GBG + \ + color_markups.MUX_COLOR_XTERM256_EXTRA_GBG +COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP + \ + color_markups.MUX_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP diff --git a/typeclasses/characters.py b/typeclasses/characters.py index fd5d219..ee7d215 100644 --- a/typeclasses/characters.py +++ b/typeclasses/characters.py @@ -7,30 +7,8 @@ is setup to be the "default" character type created by the default creation commands. """ -from evennia.objects.objects import DefaultCharacter - -from .objects import ObjectParent - - -class Character(ObjectParent, DefaultCharacter): - """ - The Character defaults to reimplementing some of base Object's hook methods with the - following functionality: - - at_basetype_setup - always assigns the DefaultCmdSet to this object type - (important!)sets locks so character cannot be picked up - and its commands only be called by itself, not anyone else. - (to change things, use at_object_creation() instead). - at_post_move(source_location) - Launches the "look" command after every move. - at_post_unpuppet(account) - when Account disconnects from the Character, we - store the current location in the pre_logout_location Attribute and - move it to a None-location so the "unpuppeted" character - object does not need to stay on grid. Echoes "Account has disconnected" - to the room. - at_pre_puppet - Just before Account re-connects, retrieves the character's - pre_logout_location Attribute and move it back on the grid. - at_post_puppet - Echoes "AccountName has entered the game" to the room. - - """ +from evennia.contrib.rpg.rpsystem import ContribRPCharacter +# rpsystem +class Character(ContribRPCharacter): pass diff --git a/typeclasses/objects.py b/typeclasses/objects.py index b8aab3e..af07af5 100644 --- a/typeclasses/objects.py +++ b/typeclasses/objects.py @@ -10,7 +10,7 @@ the other types, you can do so by adding this as a multiple inheritance. """ -from evennia.objects.objects import DefaultObject +from evennia.contrib.rpg.rpsystem import ContribRPObject class ObjectParent: @@ -24,151 +24,6 @@ class ObjectParent: """ - -class Object(ObjectParent, DefaultObject): - """ - This is the root typeclass object, implementing an in-game Evennia - game object, such as having a location, being able to be - manipulated or looked at, etc. If you create a new typeclass, it - must always inherit from this object (or any of the other objects - in this file, since they all actually inherit from BaseObject, as - seen in src.object.objects). - - The BaseObject class implements several hooks tying into the game - engine. By re-implementing these hooks you can control the - system. You should never need to re-implement special Python - methods, such as __init__ and especially never __getattribute__ and - __setattr__ since these are used heavily by the typeclass system - of Evennia and messing with them might well break things for you. - - - * Base properties defined/available on all Objects - - key (string) - name of object - name (string)- same as key - dbref (int, read-only) - unique #id-number. Also "id" can be used. - date_created (string) - time stamp of object creation - - account (Account) - controlling account (if any, only set together with - sessid below) - sessid (int, read-only) - session id (if any, only set together with - account above). Use `sessions` handler to get the - Sessions directly. - location (Object) - current location. Is None if this is a room - home (Object) - safety start-location - has_account (bool, read-only)- will only return *connected* accounts - contents (list of Objects, read-only) - returns all objects inside this - object (including exits) - exits (list of Objects, read-only) - returns all exits from this - object, if any - destination (Object) - only set if this object is an exit. - is_superuser (bool, read-only) - True/False if this user is a superuser - - * Handlers available - - aliases - alias-handler: use aliases.add/remove/get() to use. - permissions - permission-handler: use permissions.add/remove() to - add/remove new perms. - locks - lock-handler: use locks.add() to add new lock strings - scripts - script-handler. Add new scripts to object with scripts.add() - cmdset - cmdset-handler. Use cmdset.add() to add new cmdsets to object - nicks - nick-handler. New nicks with nicks.add(). - sessions - sessions-handler. Get Sessions connected to this - object with sessions.get() - attributes - attribute-handler. Use attributes.add/remove/get. - db - attribute-handler: Shortcut for attribute-handler. Store/retrieve - database attributes using self.db.myattr=val, val=self.db.myattr - ndb - non-persistent attribute handler: same as db but does not create - a database entry when storing data - - * Helper methods (see src.objects.objects.py for full headers) - - search(ostring, global_search=False, attribute_name=None, - use_nicks=False, location=None, ignore_errors=False, account=False) - execute_cmd(raw_string) - msg(text=None, **kwargs) - msg_contents(message, exclude=None, from_obj=None, **kwargs) - move_to(destination, quiet=False, emit_to_obj=None, use_destination=True) - copy(new_key=None) - delete() - is_typeclass(typeclass, exact=False) - swap_typeclass(new_typeclass, clean_attributes=False, no_default=True) - access(accessing_obj, access_type='read', default=False) - check_permstring(permstring) - - * Hooks (these are class methods, so args should start with self): - - basetype_setup() - only called once, used for behind-the-scenes - setup. Normally not modified. - basetype_posthook_setup() - customization in basetype, after the object - has been created; Normally not modified. - - at_object_creation() - only called once, when object is first created. - Object customizations go here. - at_object_delete() - called just before deleting an object. If returning - False, deletion is aborted. Note that all objects - inside a deleted object are automatically moved - to their , they don't need to be removed here. - - at_init() - called whenever typeclass is cached from memory, - at least once every server restart/reload - at_cmdset_get(**kwargs) - this is called just before the command handler - requests a cmdset from this object. The kwargs are - not normally used unless the cmdset is created - dynamically (see e.g. Exits). - at_pre_puppet(account)- (account-controlled objects only) called just - before puppeting - at_post_puppet() - (account-controlled objects only) called just - after completing connection account<->object - at_pre_unpuppet() - (account-controlled objects only) called just - before un-puppeting - at_post_unpuppet(account) - (account-controlled objects only) called just - after disconnecting account<->object link - at_server_reload() - called before server is reloaded - at_server_shutdown() - called just before server is fully shut down - - at_access(result, accessing_obj, access_type) - called with the result - of a lock access check on this object. Return value - does not affect check result. - - at_pre_move(destination) - called just before moving object - to the destination. If returns False, move is cancelled. - announce_move_from(destination) - called in old location, just - before move, if obj.move_to() has quiet=False - announce_move_to(source_location) - called in new location, just - after move, if obj.move_to() has quiet=False - at_post_move(source_location) - always called after a move has - been successfully performed. - at_object_leave(obj, target_location) - called when an object leaves - this object in any fashion - at_object_receive(obj, source_location) - called when this object receives - another object - - at_traverse(traversing_object, source_loc) - (exit-objects only) - handles all moving across the exit, including - calling the other exit hooks. Use super() to retain - the default functionality. - at_post_traverse(traversing_object, source_location) - (exit-objects only) - called just after a traversal has happened. - at_failed_traverse(traversing_object) - (exit-objects only) called if - traversal fails and property err_traverse is not defined. - - at_msg_receive(self, msg, from_obj=None, **kwargs) - called when a message - (via self.msg()) is sent to this obj. - If returns false, aborts send. - at_msg_send(self, msg, to_obj=None, **kwargs) - called when this objects - sends a message to someone via self.msg(). - - return_appearance(looker) - describes this object. Used by "look" - command by default - at_desc(looker=None) - called by 'look' whenever the - appearance is requested. - at_get(getter) - called after object has been picked up. - Does not stop pickup. - at_drop(dropper) - called when this object has been dropped. - at_say(speaker, message) - by default, called if an object inside this - object speaks - - """ - +# rpsystem +class Object(ContribRPObject): pass diff --git a/typeclasses/rooms.py b/typeclasses/rooms.py index 321183e..d342d8d 100644 --- a/typeclasses/rooms.py +++ b/typeclasses/rooms.py @@ -4,12 +4,8 @@ Room Rooms are simple containers that has no location of their own. """ +from evennia.contrib.rpg.rpsystem import ContribRPRoom -from evennia.objects.objects import DefaultRoom - -from .objects import ObjectParent - - -class Room(ObjectParent, DefaultRoom): - +# rpsystem +class Room(ContribRPRoom): pass