<spanid="evennia-contrib-base-systems-components-holder"></span><h1>evennia.contrib.base_systems.components.holder<aclass="headerlink"href="#module-evennia.contrib.base_systems.components.holder"title="Permalink to this headline">¶</a></h1>
<p>Components - ChrisLR 2022</p>
<p>This file contains the classes that allow a typeclass to use components.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.holder.</code><codeclass="sig-name descname">ComponentProperty</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentProperty"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentProperty"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentProperty.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentProperty.__init__"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.holder.</code><codeclass="sig-name descname">ComponentHandler</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">add</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span><spanclass="p">:</span><spanclass="n"><aclass="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">evennia.contrib.base_systems.components.component.Component</a></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.add"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.add"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">add_default</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.add_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.add_default"title="Permalink to this definition">¶</a></dt>
<dd><p>Method to add a Component initialized to default values on a host.
<codeclass="sig-name descname">remove</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span><spanclass="p">:</span><spanclass="n"><aclass="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">evennia.contrib.base_systems.components.component.Component</a></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.remove"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.remove"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">remove_by_name</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.remove_by_name"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.remove_by_name"title="Permalink 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 component’s ‘at_removed’ method.</p>
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span><spanclass="p">:</span><spanclass="n">str</span></em><spanclass="sig-paren">)</span>→ evennia.contrib.base_systems.components.component.Component | None<aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">has</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span><spanclass="p">:</span><spanclass="n">str</span></em><spanclass="sig-paren">)</span>→ bool<aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.has"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.has"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">initialize</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHandler.initialize"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.initialize"title="Permalink 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>
<emclass="property">property </em><codeclass="sig-name descname">db_names</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHandler.db_names"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.holder.</code><codeclass="sig-name descname">ComponentHolderMixin</code><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_init</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin.at_init"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_init"title="Permalink to this definition">¶</a></dt>
<dd><p>Method that initializes the ComponentHandler.</p>
<codeclass="sig-name descname">at_post_puppet</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin.at_post_puppet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_puppet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_post_unpuppet</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin.at_post_unpuppet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.at_post_unpuppet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basetype_setup</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/holder.html#ComponentHolderMixin.basetype_setup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.basetype_setup"title="Permalink 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>
<emclass="property">property </em><codeclass="sig-name descname">components</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.components"title="Permalink to this definition">¶</a></dt>
<dd><p>Property getter to retrieve the component_handler.
:returns: <em>ComponentHandler</em>– This Host’s ComponentHandler</p>
<emclass="property">property </em><codeclass="sig-name descname">cmp</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.cmp"title="Permalink to this definition">¶</a></dt>
<dd><p>Shortcut Property getter to retrieve the component_handler.
:returns: <em>ComponentHandler</em>– This Host’s ComponentHandler</p>
<emclass="property">property </em><codeclass="sig-name descname">signals</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.holder.ComponentHolderMixin.signals"title="Permalink to this definition">¶</a></dt>