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

385 lines
No EOL
34 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.components.holder &#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.components.listing" href="evennia.contrib.base_systems.components.listing.html" />
<link rel="prev" title="evennia.contrib.base_systems.components.exceptions" href="evennia.contrib.base_systems.components.exceptions.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.components.listing.html" title="evennia.contrib.base_systems.components.listing"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.base_systems.components.exceptions.html" title="evennia.contrib.base_systems.components.exceptions"
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.components.html" accesskey="U">evennia.contrib.base_systems.components</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.base_systems.components.holder</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.components.holder">
<span id="evennia-contrib-base-systems-components-holder"></span><h1>evennia.contrib.base_systems.components.holder<a class="headerlink" href="#module-evennia.contrib.base_systems.components.holder" title="Link to this heading"></a></h1>
<p>Components - ChrisLR 2022</p>
<p>This file contains the classes that allow a typeclass to use components.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentProperty">
<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.components.holder.</span></span><span class="sig-name descname"><span class="pre">ComponentProperty</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <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/components/holder.html#ComponentProperty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentProperty" 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>This allows you to register a component on a typeclass.
Components registered with this property are automatically added
to any instance of this typeclass.</p>
<p>Defaults can be overridden for this typeclass by passing kwargs</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentProperty.__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">name</span></span></em>, <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/components/holder.html#ComponentProperty.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentProperty.__init__" title="Link to this definition"></a></dt>
<dd><p>Initializes the descriptor</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>name</strong> (<em>str</em>) The name of the component</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Key=Values overriding default values of the component</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler">
<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.components.holder.</span></span><span class="sig-name descname"><span class="pre">ComponentHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler" 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>This is the handler that will be added to any typeclass that inherits from ComponentHolder.
It lets you add or remove components and will load components as needed.
It stores the list of registered components on the host .db with component_names as key.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.__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">host</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.__init__" 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.components.holder.ComponentHandler.add">
<span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">component</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component" title="evennia.contrib.base_systems.components.component.Component"><span class="pre">Component</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.add" title="Link to this definition"></a></dt>
<dd><p>Method to add a Component to a host.
It caches the loaded component and appends its name to the hosts component name list.
It will also call the components at_added method, passing its host.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>component</strong> (<em>object</em>) The loaded component instance to add.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.add_default">
<span class="sig-name descname"><span class="pre">add_default</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.add_default"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.add_default" title="Link to this definition"></a></dt>
<dd><p>Method to add a Component initialized to default values on a host.
It will retrieve the proper component and instantiate it with default_create.
It will cache this new component and add it to its list.
It will also call the components at_added method, passing its host.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) The name of the component class to add.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.remove">
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">component</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component" title="evennia.contrib.base_systems.components.component.Component"><span class="pre">Component</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.remove" title="Link to this definition"></a></dt>
<dd><p>Method to remove a component instance from a host.
It removes the component from the cache and listing.
It will call the components at_removed method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>component</strong> (<em>object</em>) The component instance to remove.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.remove_by_name">
<span class="sig-name descname"><span class="pre">remove_by_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.remove_by_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.remove_by_name" title="Link to this definition"></a></dt>
<dd><p>Method to remove a component instance from a host.
It removes the component from the cache and listing.
It will call the components at_removed method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) The name of the component to remove or its slot.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.get">
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component" title="evennia.contrib.base_systems.components.component.Component"><span class="pre">Component</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.get" 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.components.holder.ComponentHandler.has">
<span class="sig-name descname"><span class="pre">has</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.has"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.has" title="Link to this definition"></a></dt>
<dd><p>Method to check if a component is registered and ready.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) The name of the component or the slot.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.initialize">
<span class="sig-name descname"><span class="pre">initialize</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.initialize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.initialize" title="Link to this definition"></a></dt>
<dd><p>Method that loads and caches each component currently registered on the host.
It retrieves the names from the registered listing and calls load on each
prototype class that can be found from this listing.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHandler.db_names">
<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">db_names</span></span><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.db_names" title="Link to this definition"></a></dt>
<dd><p>Property shortcut to retrieve the registered component keys</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>component_names (iterable)</em> The name of each component that is registered</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHolderMixin">
<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.components.holder.</span></span><span class="sig-name descname"><span class="pre">ComponentHolderMixin</span></span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin" 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>Mixin to add component support to a typeclass</p>
<p>Components are set on objects using the component.name as an object attribute.
All registered components are initialized on the typeclass.
They will be of None value if not present in the class components or runtime components.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_init">
<span class="sig-name descname"><span class="pre">at_init</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin.at_init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_init" title="Link to this definition"></a></dt>
<dd><p>Method that initializes the ComponentHandler.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_puppet">
<span class="sig-name descname"><span class="pre">at_post_puppet</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">args</span></span></em>, <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/components/holder.html#ComponentHolderMixin.at_post_puppet"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_puppet" 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.components.holder.ComponentHolderMixin.at_post_unpuppet">
<span class="sig-name descname"><span class="pre">at_post_unpuppet</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">args</span></span></em>, <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/components/holder.html#ComponentHolderMixin.at_post_unpuppet"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_unpuppet" 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.components.holder.ComponentHolderMixin.basetype_setup">
<span class="sig-name descname"><span class="pre">basetype_setup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin.basetype_setup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.basetype_setup" title="Link to this definition"></a></dt>
<dd><p>Method that initializes the ComponentHandler, creates and registers all
components that were set on the typeclass using ComponentProperty.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHolderMixin.components">
<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">components</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler" title="evennia.contrib.base_systems.components.holder.ComponentHandler"><span class="pre">ComponentHandler</span></a></em><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.components" title="Link to this definition"></a></dt>
<dd><p>Property getter to retrieve the component_handler.
:returns: <em>ComponentHandler</em> This Hosts ComponentHandler</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHolderMixin.cmp">
<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">cmp</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler" title="evennia.contrib.base_systems.components.holder.ComponentHandler"><span class="pre">ComponentHandler</span></a></em><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.cmp" title="Link to this definition"></a></dt>
<dd><p>Shortcut Property getter to retrieve the component_handler.
:returns: <em>ComponentHandler</em> This Hosts ComponentHandler</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.base_systems.components.holder.ComponentHolderMixin.signals">
<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">signals</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="evennia.contrib.base_systems.components.signals.html#evennia.contrib.base_systems.components.signals.SignalsHandler" title="evennia.contrib.base_systems.components.signals.SignalsHandler"><span class="pre">SignalsHandler</span></a></em><a class="headerlink" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.signals" 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.components.holder</a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentProperty"><code class="docutils literal notranslate"><span class="pre">ComponentProperty</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentProperty.__init__"><code class="docutils literal notranslate"><span class="pre">ComponentProperty.__init__()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler"><code class="docutils literal notranslate"><span class="pre">ComponentHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.__init__"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.add"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.add()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.add_default"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.add_default()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.remove"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.remove_by_name"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.remove_by_name()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.get"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.get()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.has"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.has()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.initialize"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.initialize()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHandler.db_names"><code class="docutils literal notranslate"><span class="pre">ComponentHandler.db_names</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_init"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.at_init()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_puppet"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.at_post_puppet()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_unpuppet"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.at_post_unpuppet()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.basetype_setup"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.basetype_setup()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.components"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.components</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.cmp"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.cmp</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.signals"><code class="docutils literal notranslate"><span class="pre">ComponentHolderMixin.signals</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.base_systems.components.exceptions.html"
title="previous chapter">evennia.contrib.base_systems.components.exceptions</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.base_systems.components.listing.html"
title="next chapter">evennia.contrib.base_systems.components.listing</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.components.holder.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.components.listing.html" title="evennia.contrib.base_systems.components.listing"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.base_systems.components.exceptions.html" title="evennia.contrib.base_systems.components.exceptions"
>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.components.html" >evennia.contrib.base_systems.components</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.base_systems.components.holder</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>