Relocate activate_avatar menu functions
authorJeremy Stanley <fungi@yuggoth.org>
Wed, 25 Dec 2019 20:02:41 +0000 (20:02 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Mon, 30 Dec 2019 02:17:10 +0000 (02:17 +0000)
Move the action and create logic for the activate_avatar state from
their respective facets to the menu module, hiding them behind
consistently-named entry points.

mudpy/menu.py
share/menu.yaml

index a1d18f7..1bdccb0 100644 (file)
@@ -3,3 +3,19 @@
 # Copyright (c) 2019 mudpy authors. Permission to use, copy,
 # modify, and distribute this software is granted under terms
 # provided in the LICENSE file distributed with this software.
+
+
+def activate_avatar_action(user):
+    """Activate the selected avatar in the activate_avatar state."""
+    return user.activate_avatar_by_index(int(user.choice) - 1)
+
+
+def activate_avatar_action_a(user):
+    """Abort selection by doing nothing."""
+    return True
+
+
+def activate_avatar_create(user):
+    """List available avatars as choices for the activate_avatar state."""
+    return dict(
+        [(str(x + 1), y) for x, y in enumerate(user.list_avatar_names())])
index 3350e8f..fd8199c 100644 (file)
@@ -7,12 +7,11 @@ _desc: This is the standard library of menu definitions.
 
 _lock: true
 
-menu.activate_avatar.action: user.activate_avatar_by_index(int(user.choice)-1)
-menu.activate_avatar.action_a: pass
+menu.activate_avatar.action: mudpy.menu.activate_avatar_action(user)
+menu.activate_avatar.action_a: mudpy.menu.activate_avatar_action_a(user)
 menu.activate_avatar.branch_a: main_utility
 menu.activate_avatar.choice_a: abort selection
-menu.activate_avatar.create: dict([(str(x+1),y) for x,y in
-    enumerate(user.list_avatar_names())])
+menu.activate_avatar.create: mudpy.menu.activate_avatar_create(user)
 menu.activate_avatar.default: "1"
 menu.activate_avatar.description: This is the list of avatars available for you
     to awaken.