evennia/docs/latest/api/evennia.contrib.base_systems.building_menu.building_menu.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

1102 lines
No EOL
110 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.contrib.base_systems.building_menu.building_menu &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.contrib.base_systems.building_menu.tests" href="evennia.contrib.base_systems.building_menu.tests.html" />
<link rel="prev" title="evennia.contrib.base_systems.building_menu" href="evennia.contrib.base_systems.building_menu.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.base_systems.building_menu.tests.html" title="evennia.contrib.base_systems.building_menu.tests"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.base_systems.building_menu.html" title="evennia.contrib.base_systems.building_menu"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.base_systems.html" >evennia.contrib.base_systems</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.base_systems.building_menu.html" accesskey="U">evennia.contrib.base_systems.building_menu</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.base_systems.building_menu.building_menu</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.base_systems.building_menu.building_menu">
<span id="evennia-contrib-base-systems-building-menu-building-menu"></span><h1>evennia.contrib.base_systems.building_menu.building_menu<a class="headerlink" href="#module-evennia.contrib.base_systems.building_menu.building_menu" title="Link to this heading"></a></h1>
<p>Module containing the building menu system.</p>
<p>Evennia contributor: vincent-lg 2018</p>
<p>Building menus are in-game menus, not unlike <strong>EvMenu</strong> though using a
different approach. Building menus have been specifically designed to edit
information as a builder. Creating a building menu in a command allows
builders quick-editing of a given object, like a room. If you follow the
steps below to add the contrib, you will have access to an <strong>&#64;edit</strong> command
that will edit any default object offering to change its key and description.</p>
<ol class="arabic">
<li><p>Import the <strong>GenericBuildingCmd</strong> class from this contrib in your
<strong>mygame/commands/default_cmdset.py</strong> file:</p>
<blockquote>
<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">evennia.contrib.base_systems.building_menu</span><span class="w"> </span><span class="kn">import</span> <span class="n">GenericBuildingCmd</span>
</pre></div>
</div>
</div></blockquote>
</li>
<li><p>Below, add the command in the <strong>CharacterCmdSet</strong>:</p>
<blockquote>
<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># ... These lines should exist in the file</span>
<span class="k">class</span><span class="w"> </span><span class="nc">CharacterCmdSet</span><span class="p">(</span><span class="n">default_cmds</span><span class="o">.</span><span class="n">CharacterCmdSet</span><span class="p">):</span>
<span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;DefaultCharacter&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="nf">at_cmdset_creation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">at_cmdset_creation</span><span class="p">()</span>
<span class="c1"># ... add the line below</span>
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">GenericBuildingCmd</span><span class="p">())</span>
</pre></div>
</div>
</div></blockquote>
</li>
</ol>
<p>The <strong>&#64;edit</strong> command will allow you to edit any object. You will need to
specify the object name or ID as an argument. For instance: <strong>&#64;edit here</strong>
will edit the current room. However, building menus can perform much more
than this very simple example, read on for more details.</p>
<p>Building menus can be set to edit about anything. Here is an example of
output you could obtain when editing the room:</p>
<blockquote>
<div><p>Editing the room: Limbo(#2)</p>
<p>[T]itle: the limbo room
[D]escription</p>
<blockquote>
<div><p>This is the limbo room. You can easily change this default description,
either by using the <a href="#id1"><span class="problematic" id="id2">|</span></a><a class="reference external" href="mailto:y&#37;&#52;&#48;desc/edit|n">y<span>&#64;</span>desc/edit|n</a> command, or simply by entering this
menu (enter <a href="#id3"><span class="problematic" id="id4">|</span></a>yd|n).</p>
</div></blockquote>
<dl class="simple">
<dt>[E]xits:</dt><dd><p>north to A parking(#4)</p>
</dd>
</dl>
<p>[Q]uit this menu</p>
</div></blockquote>
<p>From there, you can open the title choice by pressing t. You can then
change the room title by simply entering text, and go back to the
main menu entering &#64; (all this is customizable). Press q to quit this menu.</p>
<p>The first thing to do is to create a new module and place a class
inheriting from <strong>BuildingMenu</strong> in it.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">evennia.contrib.base_systems.building_menu.building_menu</span><span class="w"> </span><span class="kn">import</span> <span class="n">BuildingMenu</span>
<span class="k">class</span><span class="w"> </span><span class="nc">RoomBuildingMenu</span><span class="p">(</span><span class="n">BuildingMenu</span><span class="p">):</span>
<span class="c1"># ...</span>
</pre></div>
</div>
<p>Next, override the <strong>init</strong> method. You can add choices (like the title,
description, and exits choices as seen above) by using the <strong>add_choice</strong>
method.</p>
<dl class="simple">
<dt>class RoomBuildingMenu(BuildingMenu):</dt><dd><dl class="simple">
<dt>def init(self, room):</dt><dd><p>self.add_choice(“title”, “t”, attr=”key”)</p>
</dd>
</dl>
</dd>
</dl>
<p>That will create the first choice, the title choice. If one opens your menu
and enter t, she will be in the title choice. She can change the title
(it will write in the rooms <strong>key</strong> attribute) and then go back to the
main menu using <strong>&#64;</strong>.</p>
<p><strong>add_choice</strong> has a lot of arguments and offers a great deal of
flexibility. The most useful ones is probably the usage of callbacks,
as you can set almost any argument in <strong>add_choice</strong> to be a callback, a
function that you have defined above in your module. This function will be
called when the menu element is triggered.</p>
<p>Notice that in order to edit a description, the best method to call isnt
<strong>add_choice</strong>, but <strong>add_choice_edit</strong>. This is a convenient shortcut
which is available to quickly open an <strong>EvEditor</strong> when entering this choice
and going back to the menu when the editor closes.</p>
<dl class="simple">
<dt>class RoomBuildingMenu(BuildingMenu):</dt><dd><dl class="simple">
<dt>def init(self, room):</dt><dd><p>self.add_choice(“title”, “t”, attr=”key”)
self.add_choice_edit(“description”, key=”d”, attr=”db.desc”)</p>
</dd>
</dl>
</dd>
</dl>
<p>When you wish to create a building menu, you just need to import your
class, create it specifying your intended caller and object to edit,
then call <strong>open</strong>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="o">&lt;</span><span class="n">wherever</span><span class="o">&gt;</span> <span class="kn">import</span><span class="w"> </span><span class="nn">RoomBuildingMenu</span>
<span class="k">class</span><span class="w"> </span><span class="nc">CmdEdit</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
<span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;redit&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">menu</span> <span class="o">=</span> <span class="n">RoomBuildingMenu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">)</span>
<span class="n">menu</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
</pre></div>
</div>
<p>This is a very short introduction. For more details, see the online tutorial
(<a class="reference external" href="https://github.com/evennia/evennia/wiki/Building-menus">https://github.com/evennia/evennia/wiki/Building-menus</a>) or read the
heavily-documented code below.</p>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.menu_setattr">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">menu_setattr</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">menu</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">choice</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#menu_setattr"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.menu_setattr" title="Link to this definition"></a></dt>
<dd><p>Set the value at the specified attribute.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>menu</strong> (<a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu" title="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu"><em>BuildingMenu</em></a>) the menu object.</p></li>
<li><p><strong>choice</strong> (<em>Chocie</em>) the specific choice.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) the object to modify.</p></li>
<li><p><strong>string</strong> (<em>str</em>) the string with the new value.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This function is supposed to be used as a default to
<strong>BuildingMenu.add_choice</strong>, when an attribute name is specified
(in the <strong>attr</strong> argument) but no function <strong>on_nomatch</strong> is defined.</p>
</div>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.menu_quit">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">menu_quit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">menu</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#menu_quit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.menu_quit" title="Link to this definition"></a></dt>
<dd><p>Quit the menu, closing the CmdSet.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<em>Account</em><em> or </em><em>Object</em>) the caller.</p></li>
<li><p><strong>menu</strong> (<a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu" title="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu"><em>BuildingMenu</em></a>) the building menu to close.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This callback is used by default when using the
<strong>BuildingMenu.add_choice_quit</strong> method. This method is called
automatically if the menu has no parent.</p>
</div>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.menu_edit">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">menu_edit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">choice</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#menu_edit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.menu_edit" title="Link to this definition"></a></dt>
<dd><p>Open the EvEditor to edit a specified attribute.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<em>Account</em><em> or </em><em>Object</em>) the caller.</p></li>
<li><p><strong>choice</strong> (<a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice" title="evennia.contrib.base_systems.building_menu.building_menu.Choice"><em>Choice</em></a>) the choice object.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) the object to edit.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">CmdNoInput</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#CmdNoInput"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">Command</span></code></a></p>
<p>No input has been found.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'__noinput_command'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#CmdNoInput.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.__init__" title="Link to this definition"></a></dt>
<dd><p>The lockhandler works the same as for objects.
optional kwargs will be set as properties on the Command at runtime,
overloading evential same-named class properties.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#CmdNoInput.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.func" title="Link to this definition"></a></dt>
<dd><p>Display the menu or choice text.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'general'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'',</span> <span class="pre">'category':</span> <span class="pre">'general',</span> <span class="pre">'key':</span> <span class="pre">'__noinput_command',</span> <span class="pre">'no_prefix':</span> <span class="pre">'</span> <span class="pre">',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">'No</span> <span class="pre">input</span> <span class="pre">has</span> <span class="pre">been</span> <span class="pre">found.'}</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">CmdNoMatch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#CmdNoMatch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">Command</span></code></a></p>
<p>No input has been found.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'__nomatch_command'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#CmdNoMatch.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.__init__" title="Link to this definition"></a></dt>
<dd><p>The lockhandler works the same as for objects.
optional kwargs will be set as properties on the Command at runtime,
overloading evential same-named class properties.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#CmdNoMatch.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.func" title="Link to this definition"></a></dt>
<dd><p>Call the proper menu or redirect to nomatch.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'general'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'',</span> <span class="pre">'category':</span> <span class="pre">'general',</span> <span class="pre">'key':</span> <span class="pre">'__nomatch_command',</span> <span class="pre">'no_prefix':</span> <span class="pre">'</span> <span class="pre">',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">'No</span> <span class="pre">input</span> <span class="pre">has</span> <span class="pre">been</span> <span class="pre">found.'}</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">BuildingMenuCmdSet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cmdsetobj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenuCmdSet"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">CmdSet</span></code></a></p>
<p>Building menu CmdSet.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'building_menu'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.priority">
<span class="sig-name descname"><span class="pre">priority</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.priority" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.mergetype">
<span class="sig-name descname"><span class="pre">mergetype</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'Replace'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.mergetype" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.at_cmdset_creation">
<span class="sig-name descname"><span class="pre">at_cmdset_creation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenuCmdSet.at_cmdset_creation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.at_cmdset_creation" title="Link to this definition"></a></dt>
<dd><p>Populates the cmdset with commands.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.path">
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">Choice</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">title</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aliases</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">glance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_enter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_nomatch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_leave</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">menu</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">caller</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#Choice"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>A choice object, created by <strong>add_choice</strong>.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">title</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aliases</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">glance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_enter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_nomatch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_leave</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">menu</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">caller</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#Choice.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.__init__" title="Link to this definition"></a></dt>
<dd><p>Constructor.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>title</strong> (<em>str</em>) the choices title.</p></li>
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) the key of the letters to type to access
the choice. If not set, try to guess it based on the title.</p></li>
<li><p><strong>aliases</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) the allowed aliases for this choice.</p></li>
<li><p><strong>attr</strong> (<em>str</em><em>, </em><em>optional</em>) the name of the attribute of obj to set.</p></li>
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>callable</em><em>, </em><em>optional</em>) a text to be displayed for this
choice. It can be a callable.</p></li>
<li><p><strong>glance</strong> (<em>str</em><em> or </em><em>callable</em><em>, </em><em>optional</em>) an at-a-glance summary of the
sub-menu shown in the main menu. It can be set to
display the current value of the attribute in the
main menu itself.</p></li>
<li><p><strong>menu</strong> (<a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu" title="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu"><em>BuildingMenu</em></a><em>, </em><em>optional</em>) the parent building menu.</p></li>
<li><p><strong>on_enter</strong> (<em>callable</em><em>, </em><em>optional</em>) a callable to call when the
caller enters into the choice.</p></li>
<li><p><strong>on_nomatch</strong> (<em>callable</em><em>, </em><em>optional</em>) a callable to call when no
match is entered in the choice.</p></li>
<li><p><strong>on_leave</strong> (<em>callable</em><em>, </em><em>optional</em>) a callable to call when the caller
leaves the choice.</p></li>
<li><p><strong>caller</strong> (<em>Account</em><em> or </em><em>Object</em><em>, </em><em>optional</em>) the caller.</p></li>
<li><p><strong>obj</strong> (<em>Object</em><em>, </em><em>optional</em>) the object to edit.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice.keys">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">keys</span></span><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.keys" title="Link to this definition"></a></dt>
<dd><p>Return a tuple of keys separated by <strong>sep_keys</strong>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice.format_text">
<span class="sig-name descname"><span class="pre">format_text</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#Choice.format_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.format_text" title="Link to this definition"></a></dt>
<dd><p>Format the choice text and return it, or an empty string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice.enter">
<span class="sig-name descname"><span class="pre">enter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#Choice.enter"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.enter" title="Link to this definition"></a></dt>
<dd><p>Called when the user opens the choice.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>string</strong> (<em>str</em>) the entered string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice.nomatch">
<span class="sig-name descname"><span class="pre">nomatch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#Choice.nomatch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.nomatch" title="Link to this definition"></a></dt>
<dd><p>Called when the user entered something in the choice.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>string</strong> (<em>str</em>) the entered string.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>to_display (bool)</em> The return value of <strong>nomatch</strong> if set or
<strong>True</strong>. The rule is that if <strong>no_match</strong> returns <strong>True</strong>,
then the choice or menu is displayed.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.Choice.leave">
<span class="sig-name descname"><span class="pre">leave</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#Choice.leave"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.leave" title="Link to this definition"></a></dt>
<dd><p>Called when the user closes the choice.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>string</strong> (<em>str</em>) the entered string.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">BuildingMenu</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Building</span> <span class="pre">menu:</span> <span class="pre">{obj}'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parents</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">persistent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Class allowing to create and set building menus to edit specific objects.</p>
<p>A building menu is somewhat similar to <strong>EvMenu</strong>, but designed to edit
objects by builders, although it can be used for players in some contexts.
You could, for instance, create a building menu to edit a room with a
sub-menu for the rooms key, another for the rooms description,
another for the rooms exits, and so on.</p>
<p>To add choices (simple sub-menus), you should call <strong>add_choice</strong> (see the
full documentation of this method). With most arguments, you can
specify either a plain string or a callback. This callback will be
called when the operation is to be performed.</p>
<p>Some methods are provided for frequent needs (see the <strong>add_choice_*</strong>
methods). Some helper functions are defined at the top of this
module in order to be used as arguments to <strong>add_choice</strong>
in frequent cases.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.keys_go_back">
<span class="sig-name descname"><span class="pre">keys_go_back</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['&#64;']</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.keys_go_back" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.sep_keys">
<span class="sig-name descname"><span class="pre">sep_keys</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'.'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.sep_keys" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.joker_key">
<span class="sig-name descname"><span class="pre">joker_key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'*'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.joker_key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.min_shortcut">
<span class="sig-name descname"><span class="pre">min_shortcut</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.min_shortcut" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Building</span> <span class="pre">menu:</span> <span class="pre">{obj}'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parents</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">persistent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.__init__" title="Link to this definition"></a></dt>
<dd><p>Constructor, you shouldnt override. See <strong>init</strong> instead.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<em>Account</em><em> or </em><em>Object</em>) the caller.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) the object to be edited, like a room.</p></li>
<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) the menu title.</p></li>
<li><p><strong>keys</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) the starting menu keys (None
to start from the first level).</p></li>
<li><p><strong>parents</strong> (<em>tuple</em><em>, </em><em>optional</em>) information for parent menus,
automatically supplied.</p></li>
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) should this building menu
survive a reload/restart?</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If some of these options have to be changed, it is
preferable to do so in the <strong>init</strong> method and not to
override <strong>__init__</strong>. For instance:</p>
<blockquote>
<div><dl class="simple">
<dt>class RoomBuildingMenu(BuildingMenu):</dt><dd><dl class="simple">
<dt>def init(self, room):</dt><dd><p>self.title = “Menu for room: {obj.key}(#{obj.id})”
# …</p>
</dd>
</dl>
</dd>
</dl>
</div></blockquote>
</div>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.current_choice">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">current_choice</span></span><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.current_choice" title="Link to this definition"></a></dt>
<dd><p>Return the current choice or None.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>choice (Choice)</em> the current choice or None.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>We use the menu keys to identify the current position of
the caller in the menu. The menu <strong>keys</strong> hold a list of
keys that should match a choice to be usable.</p>
</div>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.relevant_choices">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">relevant_choices</span></span><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.relevant_choices" title="Link to this definition"></a></dt>
<dd><p>Only return the relevant choices according to the current meny key.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>relevant (list of Choice object)</em> the relevant choices.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>We use the menu keys to identify the current position of
the caller in the menu. The menu <strong>keys</strong> hold a list of
keys that should match a choice to be usable.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.init">
<span class="sig-name descname"><span class="pre">init</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.init" title="Link to this definition"></a></dt>
<dd><p>Create the sub-menu to edit the specified object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) the object to edit.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method is probably to be overridden in your subclasses.
Use <strong>add_choice</strong> and its variants to create menu choices.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice">
<span class="sig-name descname"><span class="pre">add_choice</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">title</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aliases</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">glance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_enter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_nomatch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_leave</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.add_choice"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice" title="Link to this definition"></a></dt>
<dd><p>Add a choice, a valid sub-menu, in the current builder menu.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>title</strong> (<em>str</em>) the choices title.</p></li>
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) the key of the letters to type to access
the sub-neu. If not set, try to guess it based on the
choice title.</p></li>
<li><p><strong>aliases</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) the aliases for this choice.</p></li>
<li><p><strong>attr</strong> (<em>str</em><em>, </em><em>optional</em>) the name of the attribute of obj to set.
This is really useful if you want to edit an
attribute of the object (thats a frequent need). If
you dont want to do so, just use the <strong>on_*</strong> arguments.</p></li>
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>callable</em><em>, </em><em>optional</em>) a text to be displayed when
the menu is opened It can be a callable.</p></li>
<li><p><strong>glance</strong> (<em>str</em><em> or </em><em>callable</em><em>, </em><em>optional</em>) an at-a-glance summary of the
sub-menu shown in the main menu. It can be set to
display the current value of the attribute in the
main menu itself.</p></li>
<li><p><strong>on_enter</strong> (<em>callable</em><em>, </em><em>optional</em>) a callable to call when the
caller enters into this choice.</p></li>
<li><p><strong>on_nomatch</strong> (<em>callable</em><em>, </em><em>optional</em>) a callable to call when
the caller enters something in this choice. If you
dont set this argument but you have specified
<strong>attr</strong>, then <strong>obj</strong>.**attr** will be set with the value
entered by the user.</p></li>
<li><p><strong>on_leave</strong> (<em>callable</em><em>, </em><em>optional</em>) a callable to call when the
caller leaves the choice.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>choice (Choice)</em> the newly-created choice.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>ValueError if the choice cannot be added.</strong> </p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Most arguments can be callables, like functions. This has the
advantage of allowing great flexibility. If you specify
a callable in most of the arguments, the callable should return
the value expected by the argument (a str more often than
not). For instance, you could set a function to be called
to get the menu text, which allows for some filtering:</p>
<blockquote>
<div><dl class="simple">
<dt>def text_exits(menu):</dt><dd><p>return “Some text to display”</p>
</dd>
<dt>class RoomBuildingMenu(BuildingMenu):</dt><dd><dl class="simple">
<dt>def init(self):</dt><dd><p>self.add_choice(“exits”, key=”x”, text=text_exits)</p>
</dd>
</dl>
</dd>
</dl>
</div></blockquote>
<p>The allowed arguments in a callable are specific to the
argument names (they are not sensitive to orders, not all
arguments have to be present). For more information, see
<strong>_call_or_get</strong>.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice_edit">
<span class="sig-name descname"><span class="pre">add_choice_edit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'description'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'d'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aliases</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'db.desc'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">glance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\n</span>&#160;&#160; <span class="pre">{obj.db.desc}'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_enter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.add_choice_edit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice_edit" title="Link to this definition"></a></dt>
<dd><p>Add a simple choice to edit a given attribute in the EvEditor.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) the choices title.</p></li>
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) the choices key.</p></li>
<li><p><strong>aliases</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) the choices aliases.</p></li>
<li><p><strong>glance</strong> (<em>str</em><em> or </em><em>callable</em><em>, </em><em>optional</em>) the at-a-glance description.</p></li>
<li><p><strong>on_enter</strong> (<em>callable</em><em>, </em><em>optional</em>) a different callable to edit
the attribute.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>choice (Choice)</em> the newly-created choice.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This is just a shortcut method, calling <strong>add_choice</strong>.
If <strong>on_enter</strong> is not set, use <strong>menu_edit</strong> which opens
an EvEditor to edit the specified attribute.
When the caller closes the editor (with :q), the menu
will be re-opened.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice_quit">
<span class="sig-name descname"><span class="pre">add_choice_quit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'quit</span> <span class="pre">the</span> <span class="pre">menu'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'q'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aliases</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_enter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.add_choice_quit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice_quit" title="Link to this definition"></a></dt>
<dd><p>Add a simple choice just to quit the building menu.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) the choices title.</p></li>
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) the choices key.</p></li>
<li><p><strong>aliases</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) the choices aliases.</p></li>
<li><p><strong>on_enter</strong> (<em>callable</em><em>, </em><em>optional</em>) a different callable
to quit the building menu.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This is just a shortcut method, calling <strong>add_choice</strong>.
If <strong>on_enter</strong> is not set, use <strong>menu_quit</strong> which simply
closes the menu and displays a message. It also
removes the CmdSet from the caller. If you supply
another callable instead, make sure to do the same.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open">
<span class="sig-name descname"><span class="pre">open</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.open"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open" title="Link to this definition"></a></dt>
<dd><p>Open the building menu for the caller.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method should be called once when the building menu
has been instanciated. From there, the building menu will
be re-created automatically when the server
reloads/restarts, assuming <strong>persistent</strong> is set to <strong>True</strong>.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open_parent_menu">
<span class="sig-name descname"><span class="pre">open_parent_menu</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.open_parent_menu"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open_parent_menu" title="Link to this definition"></a></dt>
<dd><p>Open the parent menu, using <strong>self.parents</strong>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You probably dont need to call this method directly,
since the caller can go back to the parent menu using the
<strong>keys_go_back</strong> automatically.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open_submenu">
<span class="sig-name descname"><span class="pre">open_submenu</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">submenu_class</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">submenu_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent_keys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.open_submenu"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open_submenu" title="Link to this definition"></a></dt>
<dd><p>Open a sub-menu, closing the current menu and opening the new one.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>submenu_class</strong> (<em>str</em>) the submenu class as a Python path.</p></li>
<li><p><strong>submenu_obj</strong> (<em>Object</em>) the object to give to the submenu.</p></li>
<li><p><strong>parent_keys</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) the parent keys when
the submenu is closed.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>When the user enters <strong>&#64;</strong> in the submenu, she will go back to
the current menu, with the <strong>parent_keys</strong> set as its keys.
Therefore, you should set it on the keys of the choice that
should be opened when the user leaves the submenu.</p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>new_menu (BuildingMenu)</em> the new building menu or None.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.move">
<span class="sig-name descname"><span class="pre">move</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">back</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quiet</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">string</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.move"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.move" title="Link to this definition"></a></dt>
<dd><p>Move inside the menu.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>any</em>) the portion of the key to add to the current
menu keys. If you wish to go back in the menu
tree, dont provide a <strong>key</strong>, just set <strong>back</strong> to <strong>True</strong>.</p></li>
<li><p><strong>back</strong> (<em>bool</em><em>, </em><em>optional</em>) go back in the menu (<strong>False</strong> by default).</p></li>
<li><p><strong>quiet</strong> (<em>bool</em><em>, </em><em>optional</em>) should the menu or choice be
displayed afterward?</p></li>
<li><p><strong>string</strong> (<em>str</em><em>, </em><em>optional</em>) the string sent by the caller to move.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method will need to be called directly should you
use more than two levels in your menu. For instance,
in your room menu, if you want to have an “exits”
option, and then be able to enter “north” in this
choice to edit an exit. The specific exit choice
could be a different menu (with a different class), but
it could also be an additional level in your original menu.
If thats the case, you will need to use this method.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.close">
<span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.close"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.close" title="Link to this definition"></a></dt>
<dd><p>Close the building menu, removing the CmdSet.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display_title">
<span class="sig-name descname"><span class="pre">display_title</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.display_title"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display_title" title="Link to this definition"></a></dt>
<dd><p>Return the menu title to be displayed.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display_choice">
<span class="sig-name descname"><span class="pre">display_choice</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">choice</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.display_choice"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display_choice" title="Link to this definition"></a></dt>
<dd><p>Display the specified choice.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>choice</strong> (<a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice" title="evennia.contrib.base_systems.building_menu.building_menu.Choice"><em>Choice</em></a>) the menu choice.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display">
<span class="sig-name descname"><span class="pre">display</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.display"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display" title="Link to this definition"></a></dt>
<dd><p>Display the entire menu or a single choice, depending on the keys.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.restore">
<em class="property"><span class="k"><span class="pre">static</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">restore</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#BuildingMenu.restore"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.restore" title="Link to this definition"></a></dt>
<dd><p>Restore the building menu for the caller.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>caller</strong> (<em>Account</em><em> or </em><em>Object</em>) the caller.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method should be automatically called if a menu is
saved in the caller, but the object itself cannot be found.</p>
</div>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingMenu">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">GenericBuildingMenu</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Building</span> <span class="pre">menu:</span> <span class="pre">{obj}'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parents</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">persistent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#GenericBuildingMenu"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingMenu" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu" title="evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu"><code class="xref py py-class docutils literal notranslate"><span class="pre">BuildingMenu</span></code></a></p>
<p>A generic building menu, allowing to edit any object.</p>
<p>This is more a demonstration menu. By default, it allows to edit the
object key and description. Nevertheless, it will be useful to demonstrate
how building menus are meant to be used.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingMenu.init">
<span class="sig-name descname"><span class="pre">init</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#GenericBuildingMenu.init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingMenu.init" title="Link to this definition"></a></dt>
<dd><p>Build the meny, adding the key and description choices.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) any object to be edited, like a character or room.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The quit choice will be automatically added, though you can
call <strong>add_choice_quit</strong> to add this choice with different options.</p>
</div>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.base_systems.building_menu.building_menu.</span></span><span class="sig-name descname"><span class="pre">GenericBuildingCmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#GenericBuildingCmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">Command</span></code></a></p>
<p>Generic building command.</p>
<dl class="simple">
<dt>Syntax:</dt><dd><p>&#64;edit [object]</p>
</dd>
</dl>
<p>Open a building menu to edit the specified object. This menu allows to
change the objects key and description.</p>
<p class="rubric">Examples</p>
<p>&#64;edit here
&#64;edit self
&#64;edit #142</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'&#64;edit'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'building'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/building_menu/building_menu.html#GenericBuildingCmd.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.func" title="Link to this definition"></a></dt>
<dd><p>This is the actual executing part of the command. It is
called directly after self.parse(). See the docstring of this
module for which object properties are available (beyond those
set in self.parse())</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all();'</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'',</span> <span class="pre">'category':</span> <span class="pre">'building',</span> <span class="pre">'key':</span> <span class="pre">'&#64;edit',</span> <span class="pre">'no_prefix':</span> <span class="pre">'edit</span> <span class="pre">',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">&quot;\nGeneric</span> <span class="pre">building</span> <span class="pre">command.\n\nSyntax:\n</span>&#160; <span class="pre">&#64;edit</span> <span class="pre">[object]\n\nOpen</span> <span class="pre">a</span> <span class="pre">building</span> <span class="pre">menu</span> <span class="pre">to</span> <span class="pre">edit</span> <span class="pre">the</span> <span class="pre">specified</span> <span class="pre">object.</span>&#160; <span class="pre">This</span> <span class="pre">menu</span> <span class="pre">allows</span> <span class="pre">to\nchange</span> <span class="pre">the</span> <span class="pre">object's</span> <span class="pre">key</span> <span class="pre">and</span> <span class="pre">description.\n\nExamples:\n</span>&#160; <span class="pre">&#64;edit</span> <span class="pre">here\n</span>&#160; <span class="pre">&#64;edit</span> <span class="pre">self\n</span>&#160; <span class="pre">&#64;edit</span> <span class="pre">#142\n\n&quot;}</span></em><a class="headerlink" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.base_systems.building_menu.building_menu</a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.menu_setattr"><code class="docutils literal notranslate"><span class="pre">menu_setattr()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.menu_quit"><code class="docutils literal notranslate"><span class="pre">menu_quit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.menu_edit"><code class="docutils literal notranslate"><span class="pre">menu_edit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput"><code class="docutils literal notranslate"><span class="pre">CmdNoInput</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.key"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.locks"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.__init__"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.func"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.func()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.aliases"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.help_category"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoInput.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdNoInput.search_index_entry</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.key"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.locks"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.__init__"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.func"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.func()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.aliases"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.help_category"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.CmdNoMatch.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdNoMatch.search_index_entry</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet"><code class="docutils literal notranslate"><span class="pre">BuildingMenuCmdSet</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.key"><code class="docutils literal notranslate"><span class="pre">BuildingMenuCmdSet.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.priority"><code class="docutils literal notranslate"><span class="pre">BuildingMenuCmdSet.priority</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.mergetype"><code class="docutils literal notranslate"><span class="pre">BuildingMenuCmdSet.mergetype</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.at_cmdset_creation"><code class="docutils literal notranslate"><span class="pre">BuildingMenuCmdSet.at_cmdset_creation()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenuCmdSet.path"><code class="docutils literal notranslate"><span class="pre">BuildingMenuCmdSet.path</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice"><code class="docutils literal notranslate"><span class="pre">Choice</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.__init__"><code class="docutils literal notranslate"><span class="pre">Choice.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.keys"><code class="docutils literal notranslate"><span class="pre">Choice.keys</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.format_text"><code class="docutils literal notranslate"><span class="pre">Choice.format_text()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.enter"><code class="docutils literal notranslate"><span class="pre">Choice.enter()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.nomatch"><code class="docutils literal notranslate"><span class="pre">Choice.nomatch()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.Choice.leave"><code class="docutils literal notranslate"><span class="pre">Choice.leave()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu"><code class="docutils literal notranslate"><span class="pre">BuildingMenu</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.keys_go_back"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.keys_go_back</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.sep_keys"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.sep_keys</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.joker_key"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.joker_key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.min_shortcut"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.min_shortcut</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.__init__"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.current_choice"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.current_choice</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.relevant_choices"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.relevant_choices</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.init"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.init()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.add_choice()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice_edit"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.add_choice_edit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.add_choice_quit"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.add_choice_quit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.open()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open_parent_menu"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.open_parent_menu()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.open_submenu"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.open_submenu()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.move"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.move()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.close"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.close()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display_title"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.display_title()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display_choice"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.display_choice()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.display"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.display()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.BuildingMenu.restore"><code class="docutils literal notranslate"><span class="pre">BuildingMenu.restore()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingMenu"><code class="docutils literal notranslate"><span class="pre">GenericBuildingMenu</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingMenu.init"><code class="docutils literal notranslate"><span class="pre">GenericBuildingMenu.init()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.key"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.help_category"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.func"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd.func()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.aliases"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.lock_storage"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.building_menu.building_menu.GenericBuildingCmd.search_index_entry"><code class="docutils literal notranslate"><span class="pre">GenericBuildingCmd.search_index_entry</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.base_systems.building_menu.html"
title="previous chapter">evennia.contrib.base_systems.building_menu</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.base_systems.building_menu.tests.html"
title="next chapter">evennia.contrib.base_systems.building_menu.tests</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.base_systems.building_menu.building_menu.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.base_systems.building_menu.tests.html" title="evennia.contrib.base_systems.building_menu.tests"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.base_systems.building_menu.html" title="evennia.contrib.base_systems.building_menu"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.base_systems.html" >evennia.contrib.base_systems</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.base_systems.building_menu.html" >evennia.contrib.base_systems.building_menu</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.base_systems.building_menu.building_menu</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>